2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
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
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
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
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:
Jucării adaptabile la comutare: o jucărie cu tren cu aburi făcută accesibilă: 7 pași (cu imagini)
Jucării Switch-Adapt: o jucărie cu tren cu aburi făcută accesibilă: adaptarea jucăriilor deschide noi căi și soluții personalizate pentru a permite copiilor cu abilități motorii limitate sau cu dizabilități de dezvoltare să interacționeze independent cu jucăriile. În multe cazuri, copiii care au nevoie de jucăriile adaptate nu pot să
Jucării adaptabile la comutare: Dragonul de mers care respira apa, făcut accesibil !: 7 pași (cu imagini)
Jucării adaptabile la comutare: Dragonul de mers pe jos care respira apa: accesibil !: Adaptarea jucăriilor deschide noi căi și soluții personalizate pentru a permite copiilor cu abilități motorii limitate sau cu dizabilități de dezvoltare să interacționeze independent cu jucăriile. În multe cazuri, copiii care au nevoie de jucăriile adaptate nu pot să
Panou de comutare DIY Flight Sim: 7 pași (cu imagini)
DIY Flight Sim Switch Panel: După ce am petrecut mulți ani în comunitatea de sim de zbor și m-am implicat în avioane din ce în ce mai complicate, m-am trezit dorind abilitatea de a ține mâinile pe întrerupătoare fizice în loc să încerc să zbor cu mâna dreaptă în timp ce folosesc m
Jucării pentru comutare: Luditek LED Party Light: 7 pași
Jucării adaptabile la comutare: Luditek LED Party Light: Adaptarea jucăriilor deschide noi căi și soluții personalizate pentru a permite copiilor cu abilități motorii limitate sau cu dizabilități de dezvoltare să interacționeze cu jucăriile în mod independent. În multe cazuri, copiii care au nevoie de jucăriile adaptate nu pot să
Office alimentat de baterie. Sistem solar cu comutare automată a panourilor solare est / vest și turbină eoliană: 11 pași (cu imagini)
Office alimentat de baterie. Sistem solar cu panouri solare de comutare automată est / vest și turbină eoliană: proiectul: un birou de 200 de metri pătrați trebuie să fie alimentat cu baterie. Biroul trebuie să conțină, de asemenea, toate controlerele, bateriile și componentele necesare pentru acest sistem. Energia solară și eoliană vor încărca bateriile. Există o mică problemă de numai