Tartalomjegyzék:
- 1. lépés: Előkészítés
- 2. lépés: Csatlakozási grafikon
- 3. lépés: Kód
- 4. lépés: Az MQTT ügyfél beállításai
Videó: NodeMCU MQTT Iot Project - Kapcsológomb: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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
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
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
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:
IoT NodeMCU és MQTT segítségével: 4 lépés
IoT NodeMCU-val és MQTT-vel: [En] Egy ipari alkalmazáshoz 8 száraz érintkezővel rendelkező PCB-t kellett készítenem, kicsit játszottam az MQTT-vel, és úgy döntöttem, hogy a NodeMCU esp-f v4 használatával dolgozom. Annak érdekében, hogy egyszerű módja legyen az olcsó otthoni automatizálásnak. [Pt-Br] Cert
IoT School Project Philips Hue: 19 lépés
IoT School Project Philips Hue: Ez egy kézikönyv, amelyet az iskolának kellett megírnom. Ez nem teljes, és nem vagyok benne biztos, hogy tudja -e használni. Az API ismereteim a minimum. Szerettünk volna egy interaktív tükröt készíteni, a hátlapján lévő fényekkel, amelyek reagáltak az időjárásra, a
Idő megszerzése az Internetről az ESP8266 használatával - NTP Clock Project ESP8266 Nodemcu segítségével: 5 lépés
Idő megszerzése az Internetről az ESP8266 használatával | NTP Clock Project ESP8266 Nodemcu segítségével: Ebben az oktatóanyagban megtudjuk, hogyan juthat időhöz az ESP8266/nodemcu használatával az Arduino IDE segítségével. Az idő megszerzése különösen hasznos az adatok naplózásában, hogy időbélyegezze a mért értékeket. Ha az ESP8266 projektje rendelkezik internet -hozzáféréssel, időt nyerhet a Network T
Totoro Project - IoT & MQTT & ESP01: 7 lépés (képekkel)
Totoro Project - IoT & MQTT & ESP01: A Totoro Project egy szép IoT projekt, amelyet sok más formában is másolhat. Az ESP01 táblával az MQTT protokollal közölheti a gomb állapotát az MQTT Brokerrel (a eset AdafruitIO). Hasznos útmutató az MQTT és az Ad
ESP8266 NODEMCU BLYNK IOT bemutató - Esp8266 IOT Blunk és Arduino IDE - használatával LED -ek vezérlése az interneten keresztül: 6 lépés
ESP8266 NODEMCU BLYNK IOT bemutató | Esp8266 IOT Blunk és Arduino IDE | használatával LED -ek vezérlése az interneten keresztül: Sziasztok, srácok, ebben az útmutatóban megtanuljuk az IOT használatát az ESP8266 vagy Nodemcu készülékkel. Ehhez a blynk alkalmazást fogjuk használni. Tehát az esp8266/nodemcu -t használjuk a LED -ek interneten keresztüli vezérlésére. Tehát a Blynk alkalmazás csatlakozik az esp8266 vagy a Nodemcu