Cuprins:

NodeMCU MQTT Iot Project - Buton de comutare: 4 pași
NodeMCU MQTT Iot Project - Buton de comutare: 4 pași

Video: NodeMCU MQTT Iot Project - Buton de comutare: 4 pași

Video: NodeMCU MQTT Iot Project - Buton de comutare: 4 pași
Video: ESP8266 Smart Light Switch with Servo Motor 2024, Iulie
Anonim
Image
Image

Kitul de pornire OSOYOO NodeMCU IOT

Vă rugăm să ne urmăriți pe Facebook, să găsiți noul nostru articol lansat și să ne împărtășiți ideea și videoclipul despre modul de utilizare creativă a produselor noastre. Puteți primi bani înapoi sau cadouri de la noi! Facebook:

Youtube:

În această lecție, vom conecta un buton de comutare la NodeMCU și vom trimite starea comutatorului către un broker MQTT. Când butonul este apăsat, NodeMCU va publica starea butonului „apăsat” către brokerul MQTT, iar clientul MQTT se va abona la aceste mesaje. Când butonul este eliberat, va fi trimis „nu este apăsat”.

Pasul 1: Pregătirea

Grafic de conexiune
Grafic de conexiune

Hardware:

Placă NodeMCU x 1

Butonul de comutare x 1

1K rezistor x 1

Placă de pâine x 1

Sârme de jumper

Software:

Arduino IDE (versiunea 1.6.4+)

Pachetul de placă ESP8266 și driverul portului serial

Client MQTT (MQTTBox aici)

Biblioteca Arduino: PubSubClient

Pasul 2: Grafic de conexiune

În această lecție, folosim D2 (GPIO4) pentru a controla comutatorul, vă rugăm să configurați hardware-ul conform graficului de conexiune.

Notă: rezistorul 1k folosește ca rezistență de tragere, într-un astfel de circuit, când comutatorul este închis, intrarea NodeMCU are o valoare logică ridicată, dar când comutatorul este deschis, rezistența de tragere trage tensiunea de intrare până la sol (valoare zero logică), prevenind o stare nedefinită la intrare.

Pasul 3: Cod

Cod
Cod
Cod
Cod

Copiați codul de mai jos în Arduino IDE:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / * | | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _ / (_ / / _ / / _ | / _ / / _ (_) _) _ / | _ | _ | _ | * (_ / * Utilizați NodeMCU trimite starea butonului de comutare către clientul MQTT prin WiFi * URL tutorial: * CopyRight www.osoyoo.com * / #include #include

int BUTTON_PIN = D2; // butonul este conectat la pinul GPIO D1

// Actualizați-le cu valori potrivite pentru rețeaua dvs. const char * ssid = "********"; // pune aici ssid-ul tău wifi const char * password = "********"; // pune aici parola wifi. const char * mqtt_server = "broker.mqttdashboard.com"; // const char * mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

Clientul PubSubClient (espClient); long lastMsg = 0; char msg [50];

void setup_wifi () {

întârziere (100); // Începem prin conectarea la o rețea WiFi Serial.print („Conectarea la”); Serial.println (ssid); WiFi.begin (ssid, parolă); while (WiFi.status ()! = WL_CONNECTED) {întârziere (500); Serial.print ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi conectat"); Serial.println ("adresa IP:"); Serial.println (WiFi.localIP ()); }

apel invers nul (char * topic, octet * sarcină utilă, lungime int nesemnată)

{} // încheie apelul invers

void reconnect () {

// Buclați până când suntem reconectați în timp ce (! Client.connected ()) {Serial.print („Se încearcă conexiunea MQTT …”); // Creați un ID de client aleatoriu String clientId = "ESP8266Client-"; clientId + = String (random (0xffff), HEX); // Încercați să vă conectați // dacă brokerul dvs. MQTT are clientID, nume de utilizator și parolă // vă rugăm să schimbați următoarea linie în if (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println („conectat”); // odată conectat la brokerul MQTT, comanda subscribe dacă vreun client.subscribe ("OsoyooCommand"); } else {Serial.print ("nereușit, rc ="); Serial.print (client.state ()); Serial.println („încercați din nou în 5 secunde”); // Așteptați 5 secunde înainte de a reîncerca întârzierea (5000); }}} // sfârșitul reconectării ()

configurare nulă () {

Serial.begin (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (apel invers); pinMode (BUTTON_PIN, INPUT); }

bucla nulă () {

if (! client.connected ()) {reconnect (); } client.loop (); lung acum = millis (); statutul int; // trimite mesaj la fiecare 2 secunde if (now - lastMsg> 2000) {lastMsg = now; status = DigitalRead (BUTTON_PIN); String msg = "Starea butonului:"; if (status == HIGH) {msg = msg + "Pressed"; mesaj char [58]; msg.toCharArray (mesaj, 58); Serial.println (mesaj); // publică datele senzorului în brokerul MQTT client.publish („OsoyooData”, mesaj); } else {msg = msg + "Not Press"; mesaj char [58]; msg.toCharArray (mesaj, 58); Serial.println (mesaj); // publică datele senzorului în brokerul MQTT client.publish („OsoyooData”, mesaj); }}}

Editați codul pentru a se potrivi propriilor setări WiFi și MQTT, după cum urmează: 1) Configurare hotspot: Găsiți mai jos linia de cod, puneți propriul ssid și parola acolo.

const char * ssid = „your_hotspot_ssid”; const char * password = „your_hotspot_password”;

2) Setarea adresei serverului MQTT: Puteți utiliza propriul URL broker MQTT sau adresa IP pentru a seta deasupra valorii mqtt_server. De asemenea, puteți utiliza un server MQTT celebru gratuit pentru a testa proiectul, cum ar fi „broker.mqtt-dashboard.com”, „iot.eclipse.org” etc.

const char * mqtt_server = “broker.mqtt-dashboard.com”;

3) Setări client MQTT Dacă brokerul dvs. MQTT necesită autentificare ID client, nume de utilizator și parolă, trebuie să modificați

if (client.connect (clientId.c_str ()))

La

if (client.connect (clientId, userName, passWord)) // puneți clientId / userName / passWord aici

Dacă nu, pur și simplu păstrați-le ca implicite. După aceasta, alegeți tipul de placă corespondentă și tipul de port ca mai jos, apoi încărcați schița pe NodeMCU.

  • Placă: „NodeMCU 0.9 (modul ESP-12)”
  • Frecvența procesorului:”80MHz” Dimensiunea blițului:”
  • 4M (3M SPIFFS)”
  • Viteza de încărcare: „115200 ″
  • Port: alegeți propriul port serial pentru NodeMCU

Pasul 4: Setări client MQTT

Setări client MQTT
Setări client MQTT
Setări client MQTT
Setări client MQTT

Dacă nu știți cum să configurați clientul MQTT, vă rugăm să vizitați ultimul nostru articol:

Setări Subiecte: Subiect de publicat: OsoyooCommand

Subiect de abonat: OsoyooData

Rezultatul alergării

Odată ce încărcarea a fost efectuată, dacă setarea numelui și parolei hotspot wifi este ok și brokerul MQTT este conectat, deschideți monitorul serial, veți vedea următorul rezultat: Continuați să apăsați acest buton, monitorul serial va afișa „Starea butonului: apăsat” la fiecare 2 secunde; după ce eliberați acest buton, monitorul serial va afișa „Starea butonului: nu este apăsat” la fiecare 2 secunde.

Recomandat: