Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Ta lekcija bo prikazala osnovno uporabo protokola MQTT na plošči NodeMCU. Tukaj uporabljamo MQTTBox kot odjemalca MQTT, NodeMCU pa bomo uporabili za dokončanje naslednjih operacij:
Vsake dve sekundi objavite "hello world" na temo "outTopic". Naročite se na temo "inTopic", natisnite vsa prejeta sporočila. Predvideva se, da so prejeti tovori nizi in ne binarni. Če je naročeno sporočilo "1", prižgite vgrajena LED. Izklopite vgrajeno LED, če je sporočilo za naročanje “0”.
Priprava: Osoyoo NodeMCU x1
USB kabel x1
PC x1
Arduino IDE (Versin 1.6.4+)
NodeMCU povežite z računalnikom prek kabla USB.
1. korak: Namestitev knjižnice
Namestite PubSubClientlibrary
Za komunikacijo s posrednikom MQTT potrebujemo namestitev knjižnice končnih točk MQTT (PubSubClient). Knjižnico prenesite s te povezave:
Razpakirajte zgornjo datoteko, premaknite nezapakirano mapo v mapo knjižnice Arduino IDE.
Odprite Arduino IED, v stolpcu »Primeri« najdete »pubsubclient«.
Namestite odjemalca MQTT:
kot odjemalca MQTT bomo uporabili MQTTBox. prosim prenesite s spletnega mesta:
2. korak: Koda
odprite Arduino IDE–> Datoteka–> Primer–> pubsubclient–> mqtt esp8266, dobili boste vzorčno kodo.
Kodo uredite tako, da ustreza vašim lastnim nastavitvam WiFi in MQTT, na naslednji način: 1) Konfiguracija vroče točke: Poiščite spodnjo vrstico kode, vnesite svoj ssid in geslo.
const char* ssid = “your_hotspot_ssid”; const char* password = “your_hotspot_password”;
2) Nastavitev naslova strežnika MQTT, tukaj uporabljamo brezplačnega posrednika MQTT "broker.mqtt-dashboard.com". Za nastavitev vrednosti mqtt_server lahko uporabite svoj URL posrednika ali naslov IP posrednika MQTT. Za preizkus projekta lahko uporabite tudi kakšen znani brezplačni strežnik MQTT, na primer “broker.mqtt-dashboard.com”, “iot.eclipse.org” itd.
const char* mqtt_server = “broker.mqtt-dashboard.com”;
3) Nastavitve odjemalca MQTT Če vaš posrednik MQTT zahteva identifikacijo odjemalca, uporabniško ime in geslo, morate
spremeniti
if (client.connect (clientId.c_str ()))
Za
if (client.connect (clientId, userName, passWord)) // tukaj vnesite vaš clientId/userName/passWord
Če ne, jih obdržite kot privzete. Po tem izberite ustrezno vrsto plošče in vrsto vrat, kot je prikazano spodaj, nato naložite skico v NodeMCU.
- Plošča: "NodeMCU 0,9 (modul ESP-12)"
- Frekvenca procesorja:”80MHz” Velikost bliskavice:”4M (3M SPIFFS)”
- Hitrost nalaganja:”115200 ″
- Vrata: Izberite svoja serijska vrata za svoj NodeMCU
3. korak: Konfigurirajte odjemalca MQTT (MQTTBOX)
V tem koraku bomo pokazali, kako ustvariti odjemalca MQTT na polju MQTTBox.
Odprite svoj MQTTBox in kliknite modri gumb, da dodate novega odjemalca MQTT.
Konfigurirajte nastavitve stranke MQTT, kot je opisano spodaj:
- Ime odjemalca MQTT - izberite poljubno ime
- Protokol - izberite »mqtt/tcp«
- Gostitelj - vnesite stolpec »mqtt_server« v ta stolpec in se prepričajte, da je enak vaši skici. (Tukaj uporabljamo »broker.mqtt-dashboard.com«)
- Druge nastavitve naj bodo privzete
- Kliknite, da shranite spremembe.
Nato boste samodejno vstopili na novo stran. Če je vsa zgoraj navedena konfiguracija pravilna, se »Not Connected« spremeni v »Connected«, ime odjemalca MQTT in ime gostitelja bosta prikazana na vrhu te strani.
Nastavitev teme: Poskrbite, da bo vaša tema za objavo odjemalca MQTT enaka vaši temi za naročanje na skico Arduino (inTopic tukaj). Prepričajte se, da je vaša naročniška tema odjemalca MQTT enaka temi objave skice Arduino (OutTopic tukaj).
4. korak: Rezultat izvajanja programa
Ko je nalaganje končano, če sta ime in geslo dostopne točke Wi -Fi v redu in je posrednik MQTT povezan, odprite Serijski monitor, na serijskem monitorju boste videli sporočilo o objavi »hello world«.
Nato odprite odjemalca MQTT in objavite koristno obremenitev »1« za temo, ta NodeMCU bo prejela ta sporočila, če se naročite na »inTopic«, in LED bo zasvetila.
Ob objavi koristne obremenitve »0« na to temo, LED NodeMCU se izklopi.