Tartalomjegyzék:
- 1. lépés: Hardver és szoftver specifikáció
- 2. lépés: Vezeték nélküli nyomás- és hőmérséklet -érzékelők
- 3. lépés: Csatlakozás a WiFi -hez
- 4. lépés: Az UbiDots beállítása az ESP32 rendszeren
- 5. lépés: Az érzékelői leolvasások közzététele az UbiDots rendszerben
- 6. lépés: Az adatok megjelenítése
- 7. lépés: Általános kód
Videó: Vezeték nélküli nyomásérzékelő adatok közzététele az MQTT használatával: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Az ESP32 és az ESP 8266 nagyon jól ismert SoC az IoT területén. Ezek egyfajta áldás az IoT projektek számára. Az ESP 32 egy olyan eszköz, amely integrált WiFi -vel és BLE -vel rendelkezik. Csak adja meg SSID -jét, jelszavát és IP -konfigurációit, és integrálja a dolgokat a felhőbe. Itt, ebben az oktatható útmutatóban átgondoljuk az IoT alapvető feltételeit, például az IoT platformot, az MQTT -t, a fogságba esett portálokat stb.
- Az IoT architektúra nagyon egyszerű szavakkal egy beágyazott eszközből és egy IoT platformból áll, amely az eszközt a felhőbe helyezi. Itt az UbiDots IoT platformot használjuk az érzékelő adatok megjelenítésére.
- Az IP -beállítások és a felhasználói hitelesítő adatok kezelése fejtörést okozhat a felhasználónak. Mi a teendő, ha a felhasználó módosítani szeretné a WiFi hitelesítő adatait? Mi a teendő, ha a felhasználó meg akarja változtatni a DHCP/statikus IP -beállításokat? Az ESP32 mindenkori villogása nem megbízható, és nem is megoldás ezekre a problémákra. Tehát átmegyünk a fogságban lévő portálon a WiFi hitelesítő adatok és más konfigurációk mentéséhez.
- Az MQTT ma már nagyon gyakori kifejezéssé válik az IoT világában. felülbírálta a közzététel és a feliratkozás kéréseit és válaszát (HTTP) a gyors, robusztus és karcsú architektúra miatt.
Itt, ebben az oktatóanyagban, demonstrálni fogunk.
- WiFi és MQTT hitelesítő adatok megadása a Captive Portal használatával.
- Több érzékelő adatainak közzététele és előfizetése az UbiDots rendszerre.
- Az érzékelő adatainak beolvasása a vezeték nélküli nyomás- és hőmérsékletérzékelőből
- Webes űrlap tárolása az ESP32 -ből.
- Olvasás és írás SPIFFS ESP32 -ből.
1. lépés: Hardver és szoftver specifikáció
Hardver specifikáció
- ESP32 WiFi/BLE
- Vezeték nélküli nyomás- és hőmérsékletérzékelő
Szoftver specifikáció
- Arduino IDE
- XCTU
- Labview segédprogram
2. lépés: Vezeték nélküli nyomás- és hőmérséklet -érzékelők
Jellemzők
- Ipari fokozatú érzékelő nagy hatótávolságú vezeték nélküli nyomáshőmérséklet -érzékelő
- Működési tartomány: 0 -14000 mbar -40 ° - +85 ° C (-40 ° -185 ° F)
- Konfigurálható belső számítási nyomásfelbontás 0,012-0,065 mbar
- Konfigurálható belső számítási hőmérséklet felbontás 0,002-0,012 ° C
- Pontosság ± 2,5 mbar, ± 2 ° C
- Abszolút nyomás, relatív nyomás és relatív magasságváltozás kimenetek
- 2 mérföldes látótávolság fedélzeti antennával
- Kiváló, akár 28 mérföldes LOS tartomány nagy erősítésű antennákkal
- Interfész a Raspberry Pi, a Microsoft® Azure®, az Arduino és a többivel
- Vezeték nélküli Mesh hálózat DigiMesh® használatával
A vezeték nélküli nyomás- és hőmérsékletérzékelő beállítása a Labview Utility és az XCTU segítségével
Az érzékelő két üzemmódban működik
- Konfigurációs mód: Konfigurálja a Pan azonosítót, késleltetést, az újbóli próbálkozások számát stb. Erről bővebben az utasítás nem terjed ki, és ezt a következő utasításban ismertetjük.
- Futtatás mód: Futtatás üzemmódban futtatjuk az eszközt. Ezen értékek elemzéséhez pedig a Labview segédprogramot használjuk
Ez a Labview felhasználói felület szép grafikonokon mutatja az értékeket. Mutatja a jelenlegi és a korábbi értékeket. Erre a linkre kattintva letöltheti a Labview felhasználói felületét. kattintson a Futtatás ikonra a céloldal menüjében, hogy futási módba lépjen.
3. lépés: Csatlakozás a WiFi -hez
A rögzített portált használjuk a WiFi hitelesítő adatok mentésére és az IP -beállítások lebegésére. A Capture Portal részletes bevezetéséhez olvassa el az alábbi utasításokat.
A rögzített portál lehetőséget kínál a statikus és a DHCP beállítások közötti választásra. Csak adja meg a hitelesítő adatokat, például a statikus IP -t, az alhálózati maszkot, az átjárót és a vezeték nélküli érzékelő átjárót az adott IP -címen.
Egy weboldal található, ahol az elérhető WiFi hálózatok és az RSSI listája látható. Válassza ki a WiFi hálózatot és a jelszót, majd írja be a Küldés gombot. A hitelesítő adatok az EEPROM -ba kerülnek mentésre, az IP -beállítás pedig a SPIFFS -be. Erről bővebben ebben az oktatóanyagban olvashat.
4. lépés: Az UbiDots beállítása az ESP32 rendszeren
Itt vezeték nélküli nyomás- és hőmérsékletérzékelőket használunk az ESP 32 készülékkel a hőmérséklet- és páratartalom -adatok lekéréséhez. Az adatokat az UbiDots -nak küldjük az MQTT protokoll használatával. Az MQTT egy közzétételi és feliratkozási mechanizmust követ, nem pedig ezt a kérést és választ. Gyorsabb és megbízhatóbb, mint a HTTP. Ez a következőképpen működik.
- A Feladatütemezőt használjuk a feladat ütemezéséhez, mint például adatok lekérése az érzékelőkből, Az érzékelő leolvasásának közzététele, Feliratkozás az MQTT témára.
- Először is tartalmazza a Feladatütemező fejlécfájljait, a példányt és a feladatok ütemezését.
- Két feladatot ütemeztünk, amelyek két különböző vezérlési műveletre vonatkoznak.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Feladatok ------------ // Task tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL és & taskSensorDisable); TWiFi feladat (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL és & taskWiFiDisable);
- Az 1. feladat az érzékelő értékének leolvasására szolgál, ez a feladat 1 másodpercig fut, amíg el nem éri a 10 másodperces időtúllépést.
- Amikor a Task1 eléri a határidőt Csatlakozunk a helyi Wifi és MQTT brókerhez.
- Most a 2. feladat engedélyezve van, és letiltjuk az 1. feladatot
- A 2. feladat az érzékelőadatok közzététele az UbiDots MQTT brókernek, ez a feladat 20 másodpercig fut, amíg el nem éri a 20 másodperces időt
- Amikor a 2. feladat eléri az időtúllépést, az 1. feladat ismét engedélyezve van, és a 2. feladat le van tiltva. Itt is megkapjuk a frissített értéket, és a folyamat folytatódik.
Az I2C érzékelő adatainak beolvasása
29 bájtos keretet kapunk a vezeték nélküli hőmérséklet- és páratartalom-érzékelőktől. Ezt a keretet manipulálják a tényleges hőmérséklet- és páratartalom -adatok lekérésére
ha (Serial1.available ())
{adatok [0] = Sorozat1.olvasás (); késleltetés (k); if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Sorozat1.olvasás (); késleltetés (1); } if (data [15] == 0x7F) ///////, hogy ellenőrizze, hogy a recive adatok helyesek -e {if (data [22] == 0x06) //////// győződjön meg arról, hogy az érzékelő típusa helyes {int cTemp = (((([adatok [24]) * 256) + adatok [25])); int16_t abszorpció = (((((uint16_t) (adatok [26]) << 8) | adatok [27])*0,001); int rlt_nyomás = (((([adatok [28]) * 256) + adatok [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (adatok [30]) << 8) | adatok [31])*0,01); úszó akkumulátor = ((adatok [18] * 256) + adatok [19]); úszó feszültség = 0,00322 * akkumulátor; Serial.print ("Érzékelő száma"); Serial.println (adatok [16]); Serial.print ("Érzékelő típusa"); Serial.println (adatok [22]); Serial.print ("Firmware verzió"); Serial.println (adatok [17]); Serial.print ("Hőmérséklet Celsius -ban:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Abszolút nyomás:"); Soros.println (abszolútnyomás); Serial.print ("mbar"); Serial.print ("Relatív nyomás:"); Soros.println (rlt_nyomás); Serial.print ("mbar"); Serial.print ("Delta magasság:"); Soros.println (delta_alt); Soros.nyomtatás ("méter"); Serial.print ("ADC érték:"); Soros.println (akkumulátor); Serial.print ("Akkumulátor feszültsége:"); Soros.nyomat (feszültség); Serial.println ("\ n"); if (feszültség <1) {Serial.println ("Az akkumulátor cseréjének ideje"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); késleltetés (1); }}}}
Csatlakozás az UbiDots MQTT API -hoz
Tartalmazza a fejlécfájlt az MQTT folyamathoz
#befoglalni
definiáljon más változókat az MQTT számára, például az ügyfél nevét, a bróker címét, a token azonosítóját
#define TOKEN "BBFF-***********************************" // Az Ubidotok TOKEN#define MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
szén hasznos terhelés [100]; char téma [150]; // változó létrehozása a token ID toke tárolásához
5. lépés: Az érzékelői leolvasások közzététele az UbiDots rendszerben
Hozzon létre változókat a különböző érzékelőadatok tárolásához, és hozzon létre egy char változót a téma tárolásához
#define VARIABLE_LABEL_TEMPF "tempF" // A változó címke hozzárendelése #define VARIABLE_LABEL_TEMPC "tempC" // A változócímke hozzárendelése #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "nedves címke" // Assing
char topic1 [100];
char topic2 [100]; char topic3 [100];
tegye közzé az adatokat az említett MQTT témában, a hasznos terhelés így fog kinézni: "tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (hasznos teher, "%s", ""); // Megtisztítja a hasznos terhelést sprintf (hasznos terhelés, "{"%s / ":", VARIABLE_LABEL_TEMPC); // hozzáadja a sprintf értéket (hasznos terhelés, "%s {" érték / ":%s}", hasznos terhelés, str_cTemp); // hozzáadja a sprintf értéket (hasznos terhelés, "%s}", hasznos terhelés); // Bezárja a szótár zárójeleit Serial.println (hasznos terhelés); Serial.println (kliens.publish (topic1, hasznos terhelés)? "Published": "notpublished"); // Ugyanezt tegye más témában is
A client.publish () közzéteszi az adatokat az UbiDots rendszerben
6. lépés: Az adatok megjelenítése
- Lépjen az Ubidots oldalra, és jelentkezzen be fiókjába.
- Navigáljon az Irányítópulthoz az adatlap tetején.
- Most kattintson a "+" ikonra az új modulok hozzáadásához.
- Válasszon ki egy widgetet a listából, és adjon hozzá egy változót és eszközöket.
- Az érzékelőadatok különböző widgetek segítségével megjeleníthetők a műszerfalon.
7. lépés: Általános kód
A HTML és az ESP32 Over kódja megtalálható ebben a GitHub adattárban.
Hitelek
- ncd ESP32 kitörő tábla.
- ncd vezeték nélküli nyomás- és hőmérsékletérzékelők
- pubsubclient
- UbiDots
- Feladat ütemező
Ajánlott:
IOT - Adatok közzététele a dolgok beszédében az ESP8266 használatával: 3 lépés
IOT | Adatok közzététele a dolgokba az ESP8266 használatával: Napjainkban az IoT trendszerű, és sok gép rendelkezik adatokkal, amelyeket felhő felett lehet feltölteni és elemezni az adatokat. A kis érzékelők frissítik az adatokat a felhőben, és a másik oldalon lévő működtetőelem hat rá. Elmagyarázom az IoT egyik példáját. Én ezt a cikket és
Vezeték nélküli rezgés- és hőmérsékletérzékelő adatok a MySQL-hez Node-RED használatával: 40 lépés
Vezeték nélküli rezgés- és hőmérsékletérzékelő adatok a MySQL-hez a Node-RED használatával: Bemutatjuk az NCD nagy hatótávolságú IoT ipari vezeték nélküli rezgés- és hőmérséklet-érzékelőjét, amely akár 2 mérföldes hatótávolsággal büszkélkedhet a vezeték nélküli hálószerkezet használatával. A precíziós 16 bites rezgés- és hőmérséklet-érzékelőt magában foglaló eszköz
Vezeték nélküli rezgés- és hőmérsékletérzékelő adatok küldése Excelbe a Node-RED használatával: 25 lépés
Vezeték nélküli rezgés- és hőmérsékletérzékelő adatok küldése Excelbe a Node-RED használatával: Bemutatjuk az NCD nagy hatótávolságú IoT ipari vezeték nélküli rezgés- és hőmérséklet-érzékelőjét, amely akár 2 mérföldes hatótávolsággal büszkélkedhet a vezeték nélküli hálószerkezet használatával. A precíziós 16 bites rezgés- és hőmérséklet-érzékelőt magában foglaló eszköz
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: 7 lépés
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: Hé srácok, üdv újra. Korábbi hozzászólásomban elmagyaráztam, hogy mi az a H -híd áramkör, az L293D motorvezérlő IC, a malackalapú L293D motorvezérlő IC a nagyáramú motorvezérlők vezetéséhez, és hogyan tervezheti meg és készítheti el saját L293D motorvezérlő tábláját
Távirányítású autó - Vezeték nélküli vezeték nélküli Xbox 360 vezérlővel: 5 lépés
Távirányítású autó - vezérelhető a vezeték nélküli Xbox 360 vezérlő használatával: Ezek az utasítások saját távirányítású autó létrehozásához, vezeték nélküli Xbox 360 vezérlővel vezérelhetők