Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Tato lekce ukáže základní využití protokolu MQTT na desce NodeMCU. MQTTBox zde používáme jako klienta MQTT a NodeMCU použijeme k provedení následujících operací:
Každé dvě sekundy publikujte „ahoj svět“k tématu „outTopic“. Přihlaste se k odběru tématu „inTopic“, vytiskněte si všechny přijaté zprávy. Předpokládá, že přijatá užitečná zatížení jsou řetězce, nikoli binární soubory. Pokud je odebíraná zpráva „1“, rozsviťte integrovaná LED. Vypněte integrovanou LED, pokud je zpráva k odběru „0“.
Příprava: Osoyoo NodeMCU x1
USB kabel x1
PC x1
Arduino IDE (verze 1.6.4+)
Připojte NodeMCU k počítači pomocí kabelu USB.
Krok 1: Instalace knihovny
Nainstalujte PubSubClientlibrary
Ke komunikaci s brokerem MQTT potřebujeme nainstalovat knihovnu koncových bodů MQTT (PubSubClient), stáhněte si knihovnu z následujícího odkazu:
Rozbalte výše uvedený soubor, přesuňte rozbalenou složku do složky knihovny Arduino IDE.
Otevřete Arduino IED, ve sloupci „Příklady“najdete „pubsubclient“.
Nainstalujte klienta MQTT:
použijeme MQTTBox jako klienta MQTT. stáhněte si prosím z:
Krok 2: Kód
otevřete Arduino IDE–> Soubor–> Příklad–> pubsubclient–> mqtt esp8266, dostanete ukázkový kód.
Upravte kód tak, aby odpovídal vašemu vlastnímu nastavení WiFi a MQTT, následujícími operacemi: 1) Konfigurace hotspotu: Najděte níže řádek kódu, vložte tam svůj vlastní ssid a heslo.
const char* ssid = „your_hotspot_ssid“; const char* heslo = „your_hotspot_password“;
2) Nastavení adresy serveru MQTT, zde používáme bezplatného brokera MQTT „broker.mqtt-dashboard.com“. K nastavení výše hodnoty mqtt_server můžete použít svoji vlastní URL nebo IP adresu brokera MQTT. K testování projektu můžete také použít nějaký slavný bezplatný server MQTT, například „broker.mqtt-dashboard.com“, „iot.eclipse.org“atd.
const char* mqtt_server = „broker.mqtt-dashboard.com“;
3) Nastavení klienta MQTT Pokud váš broker MQTT vyžaduje ověření ID klienta, uživatelského jména a hesla, musíte
změna
if (client.connect (clientId.c_str ()))
Na
if (client.connect (clientId, userName, passWord)) // sem vložte clientId/userName/passWord
Pokud tomu tak není, ponechte je jako výchozí. Poté proveďte výběr odpovídajícího typu desky a typu portu, jak je uvedeno níže, a poté nahrajte skicu na NodeMCU.
- Deska: „NodeMCU 0.9 (modul ESP-12)“
- Frekvence CPU: „80MHz“Velikost blesku: „4M (3M SPIFFS)“
- Rychlost nahrávání: "115200"
- Port: Vyberte si vlastní sériový port pro váš NodeMCU
Krok 3: Konfigurace klienta MQTT (MQTTBOX)
V tomto kroku si ukážeme, jak vytvořit klienta MQTT na MQTTBox.
Otevřete svůj MQTTBox a kliknutím na modré tlačítko přidejte nového klienta MQTT.
NASTAVENÍ KLIENTA MQTT nakonfigurujte následujícím způsobem:
- Jméno klienta MQTT - vyberte libovolné jméno, které se vám líbí
- Protokol - vyberte „mqtt/tcp“
- Hostitel - Do tohoto sloupce zadejte svůj „mqtt_server“, ujistěte se, že je stejný jako váš náčrtek. (Zde používáme „broker.mqtt-dashboard.com“)
- Ponechat ostatní nastavení jako výchozí
- Kliknutím na uložíte změny.
Poté automaticky zadáte novou stránku. Pokud je výše uvedená konfigurace správná, „Nepřipojeno“se změní na „Připojeno“, v horní části této stránky se zobrazí vaše jméno klienta MQTT a název hostitele.
Nastavení tématu: Ujistěte se, že vaše téma publikování klienta MQTT je stejné jako vaše téma přihlášení k odběru skici Arduino (inTopic zde). Ujistěte se, že vaše téma přihlášení k odběru klienta MQTT je stejné jako téma publikování skici Arduino (outTopic zde).
Krok 4: Výsledek spuštění programu
Po dokončení nahrávání, pokud je název a heslo hotspotu wifi v pořádku a je připojen broker MQTT, otevřete Serial Monitor, na sériovém monitoru se zobrazí zpráva „Hello world“.
Poté otevřete klienta MQTT a publikujte užitečné zatížení „1“k tématu, tento NodeMCU bude přijímat tyto zprávy přihlášením k odběru „inTopic“a LED bude svítit.
Publikovat užitečné zatížení „0“k tomuto tématu, LED dioda NodeMCU zhasne.