Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky mësim do të tregojë përdorimin bazë të protokollit MQTT në tabelën NodeMCU. Ne përdorim MQTTBox si klient MQTT këtu, dhe ne do të përdorim NodeMCU për të përfunduar operacionet e mëposhtme:
Publikoni "përshëndetje botë" në temën "jashtë temës" çdo dy sekonda. Regjistrohuni në temën "inTopic", printoni çdo mesazh të marrë. Supozon se ngarkesat e marra janë vargje jo binare. Nëse mesazhi i regjistruar është "1", ndizni LED në bord. Fikni LED -in në bord nëse mesazhi për t'u abonuar është "0".
Përgatitja: Osoyoo NodeMCU x1
Kabllo USB x1
PC x1
Arduino IDE (Version 1.6.4+)
Lidhni NodeMCU me PC përmes kabllit USB.
Hapi 1: Instalimi i bibliotekës
Instaloni PubSubClientlibrary
Ne kemi nevojë të instalojmë bibliotekën e pikave përfundimtare MQTT (PubSubClient) për të komunikuar me ndërmjetësin MQTT, ju lutemi shkarkoni bibliotekën nga lidhja e mëposhtme:
Zbërtheni skedarin e mësipërm, zhvendoseni dosjen e pa zinxhizuar në dosjen e bibliotekës Arduino IDE.
Hapni IED Arduino, mund të gjeni "pubsubclient" në kolonën "Shembuj".
Instaloni klientin MQTT:
ne do të përdorim MQTTBox si klient MQTT. ju lutemi shkarkoni nga:
Hapi 2: Kodi
hapni Arduino IDE–> File–> Shembull–> pubsubclient–> mqtt esp8266, do të merrni kodin shembull.
Ndryshoni kodin për t'iu përshtatur cilësimeve tuaja WiFi dhe MQTT si operacionet e mëposhtme: 1) Konfigurimi i Hotspot: Gjeni linjën e kodit më poshtë, vendosni ssid -in dhe fjalëkalimin tuaj atje.
const char* ssid = "your_hotspot_ssid"; const char* password = "your_hotspot_password";
2) Vendosja e adresës së serverit MQTT, këtu ne përdorim ndërmjetësin falas MQTT "broker.mqtt-dashboard.com". Ju mund të përdorni URL -në tuaj të ndërmjetësit MQTT ose adresën IP për të vendosur mbi vlerën e serverit mqtt_server. Ju gjithashtu mund të përdorni disa serverë të famshëm falas MQTT për të testuar projektin siç janë "broker.mqtt-dashboard.com", "iot.eclipse.org" etj.
const char* mqtt_server = "ndërmjetësi.mqtt-dashboard.com";
3) Cilësimet e klientit MQTT Nëse ndërmjetësi juaj MQTT kërkon identifikimin e klientit, emrin e përdoruesit dhe fjalëkalimin, duhet të
ndryshim
nëse (client.connect (clientId.c_str ()))
Te
nëse (client.connect (clientId, userName, passWord)) // vendosni klientin tuaj ID/userName/passWord këtu
Nëse jo, thjesht mbajini ato si parazgjedhje. Pasi ta bëni këtë, zgjidhni llojin dhe llojin e portës përkatëse si më poshtë, pastaj ngarkoni skicën në NodeMCU.
- Bordi:”NodeMCU 0.9 (Moduli ESP-12)”
- Frekuenca e CPU: "80MHz" Madhësia e blicit: "4M (3M SPIFFS)"
- Shpejtësia e Ngarkimit:”115200
- Port: Zgjidhni Portin tuaj Serial për NodeMCU tuaj
Hapi 3: Konfiguro klientin MQTT (MQTTBOX)
Në këtë hap, ne do të tregojmë se si të krijojmë një klient MQTT në MQTTBox.
Hapni MQTTBox -in tuaj dhe klikoni butonin blu për të shtuar një klient të ri MQTT.
Konfiguroni cilësimet e klientëve MQTT si më poshtë:
- Emri i Klientit MQTT - Zgjidhni çdo emër që ju pëlqen
- Protokolli - Zgjidhni "mqtt/tcp"
- Pritësi - Shkruani "mqtt_server" tuaj në këtë kolonë, sigurohuni që është i njëjtë me skicën tuaj. (Ne përdorim "broker.mqtt-dashboard.com" këtu)
- Mbani cilësimet e tjera si parazgjedhje
- Klikoni për të ruajtur ndryshimet tuaja.
Tjetra, do të futeni automatikisht në faqen e re. Nëse e gjithë konfigurimi i mësipërm është i saktë, "Jo i lidhur" do të ndryshojë në "Lidhur", emri i klientit tuaj MQTT dhe emri i hostit do të shfaqen në krye të kësaj faqe.
Vendosja e temës: Sigurohuni që tema e publikimit të klientit tuaj MQTT të jetë e njëjtë me temën tuaj të abonimit të skicës Arduino (inTopic këtu. Sigurohuni që tema e abonimit të klientit tuaj MQTT është e njëjtë me temën tuaj të publikimit të skicës Arduino (jashtëTema këtu.
Hapi 4: Rezultati i ekzekutimit të programit
Pasi të përfundojë ngarkimi, nëse emri i Wi -Fi dhe cilësimi i fjalëkalimit është në rregull, dhe ndërmjetësi MQTT është i lidhur, hapni Monitor Serial, do të shihni mesazhin e publikimit "përshëndetje botë" në monitorin serik.
Pastaj hapni klientin MQTT dhe publikoni ngarkesën "1" në temë, ky NodeMCU do t'i marrë këto mesazhe duke u regjistruar në "inTopic" dhe LED do të ndizet.
Publikoni ngarkesën "0" në këtë temë, LED NodeMCU do të fiket.