Obsah:
- Krok 1: Špecifikácia hardvéru a softvéru
- Krok 2: Vytvorenie portálu pre vlastnú potrebu
- Krok 3: Poskytnutie poverení WiFi a UbiDots
- Krok 4: Publikovanie nameraných hodnôt senzora do UbiDots
- Krok 5: Vizualizácia údajov
- Krok 6: Celkový kód
Video: UbiDots-Pripojenie ESP32 a publikovanie údajov z viacerých senzorov: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
ESP32 a ESP 8266 sú veľmi dobre známe SoC v oblasti IoT. Toto sú akési výhody pre projekty internetu vecí. ESP 32 je zariadenie s integrovaným WiFi a BLE. Stačí zadať konfiguráciu SSID, heslo a IP a integrovať veci do cloudu. Tu v tomto návode sa zamyslíme nad niektorými základnými pojmami IoT, ako sú platforma IoT, MQTT, portály pre vlastnú potrebu atď. Poďme si to teda prejsť.
- Architektúra IoT veľmi jednoduchými slovami pozostáva z vstavaného zariadenia a platformy IoT na umiestnenie zariadenia do cloudu. Tu používame platformu UbiDots IoT na vizualizáciu údajov zo senzorov.
- Správa nastavení IP a poverení používateľa môže byť pre používateľa bolesť hlavy. Čo keď chce používateľ zmeniť poverenia WiFi? Čo keď chce používateľ zmeniť nastavenia DHCP/statickej IP? Blikanie ESP32 vždy nie je spoľahlivé a dokonca ani riešenie týchto problémov. Prejdeme teda portálom na uchovanie, aby sme uložili poverenia WiFi a ďalšie konfigurácie.
- MQTT sa teraz stáva veľmi bežným pojmom vo svete internetu vecí. vďaka rýchlej, robustnej a štíhlej architektúre prekonal požiadavky na publikovanie a predplatné (HTTP).
Tu v tomto návode budeme demonštrovať.
- Poskytovanie poverení WiFi a MQTT pomocou portálu pre vlastnú potrebu.
- Publikovanie a predplatné viacerých údajov senzorov do UbiDots.
- Čítanie údajov zo senzorov z bezdrôtových snímačov teploty a vlhkosti.
- Hostenie webového formulára z ESP32.
- Čítanie a zápis z SPIFFS ESP32.
Krok 1: Špecifikácia hardvéru a softvéru
- ESP32 WiFi/BLE
- Bezdrôtový snímač teploty a vlhkosti
Špecifikácia softvéru
Arduino IDE
Krok 2: Vytvorenie portálu pre vlastnú potrebu
Portál na prihlásenie do vlastníctva je webová stránka, ktorá sa zobrazuje novo pripojeným používateľom predtým, ako im bude poskytnutý širší prístup k sieťovým zdrojom. Tu ponúkame tri webové stránky na výber medzi nastaveniami DHCP a statickej IP. môžeme definovať IP adresu pre ESP dvoma spôsobmi.
- Adresa IP DHCP- je to spôsob, ako dynamicky priradiť adresu IP zariadeniu. Predvolená adresa IP ESP je 192.168.4.1
- Statická adresa IP- priradenie trvalej adresy IP nášmu sieťovému zariadeniu. Aby sme zariadeniu poskytli statickú IP, musíme definovať IP adresu, adresu brány a masku podsiete.
Prvá webová stránka je hostovaná na adrese 192.168.1.77. Tu sú používateľovi k dispozícii prepínače na výber medzi nastaveniami DHCP a Static IP. Na ďalšej webovej stránke musíme poskytnúť informácie súvisiace s IP, aby sme mohli pokračovať ďalej.
HTML kód
HTML kód pre webové stránky nájdete v tomto úložisku Github. Na vytváranie webových stránok HTML môžete použiť akékoľvek IDE alebo textový editor, ako napríklad Sublime alebo notepad ++.
- Najprv vytvorte webovú stránku HTML obsahujúcu dva prepínače na výber medzi nastaveniami DHCP a statickej IP.
- Teraz vytvorte tlačidlo na odoslanie odpovede
- Pomenujte prepínače.
- Trieda webového servera ESP bude brať tieto názvy ako argumenty a pomocou týchto argumentov dostane odpoveď na prepínače
- Teraz vložte tlačidlo „ODOSLAŤ“na odoslanie odpovede do zariadenia. Na ostatných webových stránkach máme textové polia.
- Do textového poľa zadajte hodnotu názvu a typ vstupu a pridajte tlačidlo „Odoslať“na odoslanie odpovede.
- Vytvorte tlačidlo „RESET“na resetovanie obsahu textového poľa.
Krok 3: Poskytnutie poverení WiFi a UbiDots
Hlavný problém nastáva pri správe poverení WiFi. Aj keď na to máme knižnicu WiFiMulti, v ktorej môžeme zariadeniu poskytnúť viacero SSID a hesiel a zariadenie sa pripojí k dostupnej sieti. Ale čo keď dostupná sieť nie je v zozname WiFiMulti. Neustále blikanie zariadenia ESP32 nie je spoľahlivé riešenie.
Na vyriešenie tohto problému hostíme webovú stránku, na ktorej môže používateľ odoslať SSID a heslo dostupnej siete. Funguje to nasledovne.
- Webová stránka je hostená na statickej IP alebo DHCP IP podľa výberu používateľa z portálu na prihlásenie do siete
- Táto webová stránka obsahuje textové polia na zadanie SSID, hesla a ID tokenu UBIDOTS na pripojenie zariadenia k UbiDots.
- Do vstupných polí zadajte SSID a heslo miestnej WiFi, zadajte ID tokenu UbiDot a zadajte SUBMIT
- Tieto poverenia sú uložené v EEPROM ESP32
- Po 60 sekundách sa zariadenie automaticky odpojí od prístupového bodu
- Keď používateľ najbližšie zapne zariadenie, nemusí tento postup nasledovať. Zariadenie automaticky vyzdvihne prihlasovacie údaje používateľa z pamäte EEPROM a bude pokračovať v publikovaní hodnôt senzorov do UbiDots.
Krok 4: Publikovanie nameraných hodnôt senzora do UbiDots
Tu na získanie údajov o teplote a vlhkosti používame bezdrôtové snímače teploty a vlhkosti so zariadením ESP 32. Údaje odosielame do UbiDots pomocou protokolu MQTT. MQTT sa riadi mechanizmom publikovania a prihlásenia na odber, a nie požiadavkou a odpoveďou. Je rýchlejší a spoľahlivejší ako HTTP. Funguje to nasledovne.
- Plánovač úloh používame na naplánovanie úlohy, ako je načítanie údajov zo senzorov, publikovanie nameraných hodnôt zo senzorov, Prihlásenie sa na tému MQTT.
- Najprv zahrňte hlavičkové súbory Plánovača úloh, sú to inštancie a naplánuje úlohy.
- Naplánovali sme dve úlohy týkajúce sa dvoch rôznych riadiacich operácií.
#define _TASK_TIMEOUT#include
Plánovač ts;
// --------- Úlohy ------------ // Úloha tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Úloha tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
Úloha 1 je na prečítanie hodnoty senzora. Táto úloha trvá 1 sekundu, kým nedosiahne časový limit 10 sekúnd
- Akonáhle úloha 1 vyprší, pripájame sa k miestnemu brokerovi Wifi a MQTT.
- Teraz je úloha 2 povolená a úlohu 1 deaktivujeme
-
Úloha 2 je na publikovanie údajov zo senzorov maklérovi UbiDots MQTT. Táto úloha trvá 20 sekúnd, kým nedosiahne časový limit 20 sekúnd.
- Akonáhle úloha 2 uplynie, úloha 1 je znova povolená a úloha 2 je zakázaná. Opäť tu dostávame aktualizovanú hodnotu a proces pokračuje.
Čítanie údajov senzora I2C
Z bezdrôtových snímačov teploty a vlhkosti získavame 29-bajtový rámec. S týmto rámcom sa manipuluje, aby sa získali údaje o skutočnej teplote a vlhkosti
uint8_t údaje [29];
údaje [0] = Serial1.read (); oneskorenie (k); // chck pre štartovací bajt if (údaje [0] == 0x7E) {while (! Serial1.available ()); pre (i = 1; i <29; i ++) {údaje = Serial1.read (); oneskorenie (1); } if (data [15] == 0x7F) /////// a skontroluje správnosť prijatých údajov {if (data [22] == 1) //////// uistite sa, že je typ snímača je správne {
vlhkosť = ((((údaje [24]) * 256) + údaje [25]) /100,0); vlhkosť /=10,0; cTempint = ((((uint16_t) (data [26]) << 8) | data [27]); cTemp = (float) cTempint /100.0; cTemp /= 10,0; fTemp = cTemp * 1,8 + 32; fTemp /= 10,0; batéria = náhodná (100, 327); napätie = batéria/100; nodeId = údaje [16];}
Pripojenie k rozhraniu UbiDots MQTT API
Zahrňte súbor hlavičky pre proces MQTT
#zahrnúť
definovať ďalšie premenné pre MQTT, ako je meno klienta, adresa makléra, ID tokenu (načítavame ID tokenu z EEPROM)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
užitočné zaťaženie znakov [100]; téma témy [150];
// vytvorenie premennej na uloženie ID tokenu
Reťazec tokenId;
Vytvorte premenné na ukladanie rôznych údajov zo senzorov a vytvorte premennú char na ukladanie tém
#define VARIABLE_LABEL_TEMPF "tempF" // Assing the variable label #define VARIABLE_LABEL_TEMPC "tempC" // Assing the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assing the variable label
char topic1 [100]; char topic2 [100]; char topic3 [100];
publikovať údaje do uvedenej témy MQTT, užitočné zaťaženie bude vyzerať {{tempc ": {value:" tempData "}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (užitočné zaťaženie, "%s", ""); // Čistí sprintf užitočného zaťaženia (užitočné zaťaženie, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Pridá hodnotu sprintf (užitočné zaťaženie, "%s {" hodnota / ":%s}", užitočné zaťaženie, str_cTemp); // Pridá hodnotu sprintf (užitočné zaťaženie, "%s}", užitočné zaťaženie); // Zatvorí slovníky v zátvorkách Serial.println (užitočné zaťaženie); Serial.println (client.publish (topic1, užitočné zaťaženie)? "Publikované": "nezverejnené");
// Urobte to isté aj pre inú tému
client.publish () publikuje údaje do UbiDots
Krok 5: Vizualizácia údajov
- Prejdite na stránku Ubidots a prihláste sa do svojho účtu.
- Prejdite na informačný panel na karte Údaje v hornej časti.
- Teraz kliknite na ikonu „+“a pridajte nové miniaplikácie.
- Vyberte miniaplikáciu zo zoznamu a pridajte premennú a zariadenia.
- Údaje senzora je možné vizualizovať na palubnej doske pomocou rôznych miniaplikácií.
Krok 6: Celkový kód
Nadmerný kód pre HTML a ESP32 nájdete v tomto úložisku GitHub.
Kredity
- ncd ESP32 oddeľovacia doska.
- ncd Bezdrôtové snímače teploty a vlhkosti.
- pubsubclient
- UbiDots
- Plánovač úloh
Odporúča:
Odstráňte pozadie viacerých obrázkov pomocou Photoshopu 2020: 5 krokov
Odstránenie pozadia z viacerých obrázkov pomocou Photoshopu 2020: Odstránenie pozadia z obrázku je teraz veľmi jednoduché! Takto môžete pomocou programu Adobe Photoshop 2020 odstrániť pozadie viacerých (dávkových) obrázkov pomocou jednoduchého skriptu
Ako vytvoriť hru pre viacerých hráčov s ovládačmi Arduino: 6 krokov
Ako vytvoriť hru pre viacerých hráčov s ovládačmi Arduino: Zaujímalo vás niekedy, ako vývojári hier vytvárajú úžasné hry, ktoré si ľudia na celom svete radi zahrajú? Dnes vám k tomu dám len malú nápovedu tým, že vytvorím malú hru pre viacerých hráčov, ktorú bude ovládať buď ovládanie Arduino
Publikovanie údajov senzora bezdrôtového tlaku pomocou MQTT: 7 krokov
Publikovanie údajov senzora bezdrôtového tlaku pomocou MQTT: ESP32 a ESP 8266 sú v oblasti IoT veľmi známym SoC. Toto sú akési výhody pre projekty internetu vecí. ESP 32 je zariadenie s integrovaným WiFi a BLE. Stačí zadať konfiguráciu SSID, heslo a IP a integrovať veci do
IoT zjednodušené: Monitorovanie viacerých senzorov: 7 krokov
Jednoduché IoT: Monitorovanie viacerých senzorov: Pred niekoľkými týždňami som tu publikoval návod na monitorovanie teploty pomocou digitálneho senzora DS18B20, ktorý komunikuje po 1-Wire zbernici a odosiela dáta cez internet pomocou NodeMCU a Blynk: IoT Made Simple : Monitorovanie teploty kdekoľvekBu
Centrum zberu údajov senzorov povolené s IoT s ESP8266 a PubNub: 9 krokov (s obrázkami)
Centrum zberu údajov zo senzorov povolených pre IoT s ESP8266 a PubNub: Väčšina výukových programov k systému ESP8266 je buď na úrovni nováčika (diaľkovo bliká LED dióda), alebo je príliš zložitá pre niekoho, kto hľadá niečo, čo by mohol zlepšiť a vylepšiť podľa svojich schopností blikať pomocou LED. Toto inštruovateľné ciele majú preklenúť túto priepasť a vytvoriť