Tartalomjegyzék:

NodeMCU MQTT Iot Project - Kapcsológomb: 4 lépés
NodeMCU MQTT Iot Project - Kapcsológomb: 4 lépés

Videó: NodeMCU MQTT Iot Project - Kapcsológomb: 4 lépés

Videó: NodeMCU MQTT Iot Project - Kapcsológomb: 4 lépés
Videó: MQTT Protocol with NodeMCU ESP8266 Tutorial 2024, November
Anonim
Image
Image

OSOYOO NodeMCU IOT indító készlet

Kérjük, kövessen minket a facebookon, keresse meg új kiadott cikkünket, és ossza meg ötleteit és videóit termékeink kreatív használatáról. Visszakaphat pénzt vagy ajándékot tőlünk! Facebook:

Youtube:

Ebben a leckében egy kapcsológombot csatlakoztatunk a NodeMCU -hoz, és elküldjük a kapcsoló állapotát egy MQTT brókernek. Amikor megnyomja a gombot, a NodeMCU közzéteszi a gomb megnyomásának állapotát az MQTT brókernek, és az MQTT kliens előfizet ezekre az üzenetekre. Amikor elengedi a nyomógombot, a „nincs megnyomva” üzenet jelenik meg.

1. lépés: Előkészítés

Kapcsolati grafikon
Kapcsolati grafikon

Hardver:

NodeMCU kártya x 1

Kapcsoló gomb x 1

1K ellenállás x 1

Kenyérlap x 1

Jumper vezetékek

Szoftver:

Arduino IDE (1.6.4+ verzió)

ESP8266 kártya csomag és a soros port illesztőprogramja

MQTT kliens (MQTTBox itt)

Arduino könyvtár: PubSubClient

2. lépés: Csatlakozási grafikon

Ebben a leckében a D2 -t (GPIO4) használjuk a kapcsoló vezérléséhez, kérjük, állítsa be a hardvert a csatlakozási grafikonnak megfelelően.

Megjegyzés: az 1k ellenállás lehúzható ellenállásként működik le a földre (logikai nulla érték), megakadályozva a bemenet meghatározatlan állapotát.

3. lépés: Kód

Kód
Kód
Kód
Kód

Másolja az alábbi kódot az Arduino IDE -be:

/ * _ _ _ _ _ _ _ _ _ _ * / _ / / _) / _ / | | | | / _ / / _ / / _) _ / | / *| | _ | | _ | | _ | | | _ | | | _ | | | _ | ((_ | | _ | | | | | * / _/ (_/ / _/ / _ | / _/ / _ (_) _) _/ | _ | _ | _ | * (_/ * Használja a A NodeMCU WiFi -n keresztül küldi a kapcsológomb állapotát az MQTT ügyfélnek * Oktató URL -címe: * CopyRight www.osoyoo.com */ #include #include

int BUTTON_PIN = D2; // gomb csatlakozik a GPIO D1 tűhöz

// Frissítse ezeket a hálózatának megfelelő értékekkel. const char*ssid = "********"; // tegye ide a wifi -ssid -jét const char*password = "********"; // ide írja be a wifi jelszavát. const char* mqtt_server = "bróker.mqttdashboard.com"; // const char* mqtt_server = "iot.eclipse.org";

WiFiClient espClient;

PubSubClient kliens (espClient); hosszú lastMsg = 0; char msg [50];

void setup_wifi () {

késleltetés (100); // Kezdjük azzal, hogy csatlakozunk egy WiFi hálózathoz Serial.print ("Connecting to"); Soros.println (ssid); WiFi.begin (ssid, jelszó); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } randomSeed (micros ()); Serial.println (""); Serial.println ("WiFi csatlakoztatva"); Serial.println ("IP -cím:"); Serial.println (WiFi.localIP ()); }

érvénytelen visszahívás (char* téma, byte* hasznos terhelés, előjel nélküli int hossz)

{} // visszahívás befejezése

void reconnect () {

// Loop, amíg újra nem kapcsolódunk, amíg (! Client.connected ()) {Serial.print ("MQTT kapcsolat megkísérlése…"); // Véletlen ügyfél-azonosító létrehozása String clientId = "ESP8266Client-"; clientId += Karakterlánc (véletlenszerű (0xffff), HEX); // Csatlakozási kísérlet // ha az MQTT bróker rendelkezik ügyfél -azonosítóval, felhasználónévvel és jelszóval //, kérjük, változtassa meg a következő sort if -re (client.connect (clientId, userName, passWord)) if (client.connect (clientId.c_str ())) {Serial.println ("csatlakoztatva"); // ha csatlakozik az MQTT brókerhez, akkor feliratkozik a parancsra, ha van kliens.subscribe ("OsoyooCommand"); } else {Serial.print ("nem sikerült, rc ="); Serial.print (kliens.állapot ()); Serial.println ("próbálja újra 5 másodperc múlva"); // Várjon 5 másodpercet a késleltetés újrapróbálása előtt (5000); }}} // vége az újracsatlakozásnak ()

void setup () {

Sorozat.kezdet (115200); setup_wifi (); client.setServer (mqtt_server, 1883); client.setCallback (visszahívás); pinMode (BUTTON_PIN, INPUT); }

void loop () {

if (! client.connected ()) {reconnect (); } client.loop (); hosszú most = millis (); int állapot; // 2 másodpercenként küldjön üzenetet, ha (most - lastMsg> 2000) {lastMsg = now; állapot = digitalRead (BUTTON_PIN); String msg = "Gomb állapota:"; if (állapot == MAGAS) {msg = msg+ "Nyomva"; char üzenet [58]; msg.toCharArray (üzenet, 58); Serial.println (üzenet); // érzékelőadatok közzététele az MQTT broker client.publish ("OsoyooData", üzenet); } else {msg = msg+ "Not Press"; char üzenet [58]; msg.toCharArray (üzenet, 58); Serial.println (üzenet); // érzékelőadatok közzététele az MQTT broker client.publish ("OsoyooData", üzenet); }}}

Szerkessze a kódot, hogy illeszkedjen a saját WiFi és MQTT beállításaihoz a következő műveletek szerint: 1) Hotspot konfiguráció: Keresse meg az alábbi kód sort, írja be a saját SSID -jét és jelszavát.

const char* ssid = “saját_hotspot_ssid”; const char* jelszó = “your_hotspot_password”;

2) MQTT szerver cím beállítása: Saját MQTT bróker URL vagy IP cím segítségével állíthatja be az mqtt_server értéket. Használhat néhány híres ingyenes MQTT szervert is a projekt tesztelésére, például „broker.mqtt-dashboard.com”, „iot.eclipse.org” stb.

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

3) MQTT ügyfél beállítások

if (kliens.csatlakozás (ügyfél -azonosító.c_str ()))

Nak nek

if (client.connect (clientId, userName, passWord)) // ide tedd a clientId/userName/passWord

Ha nem, akkor hagyja őket alapértelmezettként. Ezt követően válassza ki a megfelelő tábla típusát és port típusát az alábbiak szerint, majd töltse fel a vázlatot a NodeMCU -ba.

  • Tábla: "NodeMCU 0.9 (ESP-12 modul)"
  • CPU frekvencia: "80MHz" Flash méret:
  • 4 millió (3 millió SPIFFS)”
  • Feltöltési sebesség: "115200"
  • Port: Válassza ki saját soros portját a NodeMCU számára

4. lépés: Az MQTT ügyfél beállításai

MQTT kliens beállítások
MQTT kliens beállítások
MQTT kliens beállítások
MQTT kliens beállítások

Ha nem tudja, hogyan kell konfigurálni az MQTT klienst, kérjük, látogassa meg utolsó cikkünket:

Témák beállításai: Közzétételre kerülő téma: OsoyooCommand

Előfizetendő téma: OsoyooData

Futási eredmény

Ha a feltöltés befejeződött, ha a wifi hotspot név és jelszó beállítása rendben van, és az MQTT broker csatlakoztatva van, nyissa meg a soros monitort, és a következő eredményt fogja látni: Tartsa lenyomva ezt a gombot, a soros monitor 2 másodpercenként „Gombállapot: Nyomva” jelzést ad ki; miután elengedte ezt a gombot, a soros monitor 2 másodpercenként „Gombállapot: Nincs megnyomva” jelzést ad.

Ajánlott: