Obsah:
- Krok 1: Špecifikácia hardvéru a softvéru
- Krok 2: Bezdrôtové snímače tlaku a teploty
- Krok 3: Pripojenie k WiFi
- Krok 4: Nastavenie UbiDots na ESP32
- Krok 5: Publikovanie nameraných hodnôt senzora do UbiDots
- Krok 6: Vizualizácia údajov
- Krok 7: Celkový kód
Video: Publikovanie údajov senzora bezdrôtového tlaku pomocou MQTT: 7 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
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 senzora z bezdrôtového snímača tlaku a teploty
- Hostenie webového formulára z ESP32.
- Čítanie a zápis z SPIFFS ESP32.
Krok 1: Špecifikácia hardvéru a softvéru
Špecifikácia hardvéru
- ESP32 WiFi/BLE
- Bezdrôtový snímač tlaku a teploty
Špecifikácia softvéru
- Arduino IDE
- XCTU
- Nástroj Labview
Krok 2: Bezdrôtové snímače tlaku a teploty
Vlastnosti
- Priemyselný snímač bezdrôtového snímača teploty s dlhým dosahom
- Prevádzkový rozsah 0 až 14 000 mbar -40 ° až +85 ° C (-40 ° až 185 ° F)
- Konfigurovateľné rozlíšenie interného výpočtu tlaku 0,012 až 0,065 mbar
- Konfigurovateľné rozlíšenie vnútornej teploty výpočtu 0,002 až 0,012 ° C
- Presnosť ± 2,5 mbar, ± 2 ° C
- Výstupy absolútneho tlaku, relatívneho tlaku a relatívnej nadmorskej výšky
- 2 míľový dosah s integrovanou anténou
- Vynikajúci dosah LOS až 28 míľ s anténami s vysokým ziskom
- Rozhranie k Raspberry Pi, Microsoft® Azure®, Arduino a ďalším
- Bezdrôtová sieťová sieť pomocou DigiMesh®
Konfigurácia bezdrôtového snímača tlaku a teploty pomocou Labview Utility a XCTU
Senzor pracuje v dvoch režimoch
- Konfiguračný režim: Nakonfigurujte Pan ID, oneskorenie, počet opakovaní atď. Viac o tomto je nad rámec tohto pokynu a bude vysvetlené v nasledujúcom návode.
- Režim spustenia: Zariadenie používame v režime spustenia. A na analýzu týchto hodnôt používame nástroj Labview Utility
Toto používateľské rozhranie Labview zobrazuje hodnoty v pekných grafoch. Zobrazuje aktuálne aj minulé hodnoty. Na tento odkaz si môžete stiahnuť používateľské rozhranie Labview. kliknutím na ikonu Spustiť v ponuke vstupnej stránky prejdete do režimu spustenia.
Krok 3: Pripojenie k WiFi
Portál na prihlásenie používame na ukladanie poverení WiFi a na pohyb v nastaveniach IP. Podrobný úvod do portálu na zajatie nájdete v nasledujúcom návode.
Portál pre vlastnú potrebu nám dáva možnosť vybrať si medzi statickým a DHCP nastavením. Stačí zadať prihlasovacie údaje, ako sú statická adresa IP, maska podsiete, brána a bezdrôtová senzorová brána sa na tejto adrese IP nakonfigurujú.
Je hostiteľom webovej stránky so zoznamom dostupných sietí WiFi a RSSI. Vyberte sieť WiFi a heslo a zadajte príkaz na odoslanie. Poverenia sa uložia do EEPROM a nastavenie IP sa uloží do SPIFFS. Viac o tom nájdete v tomto návode.
Krok 4: Nastavenie UbiDots na ESP32
Tu používame bezdrôtové snímače tlaku a teploty so zariadením ESP 32 na získanie údajov o teplote a vlhkosti. Ú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
ak (Serial1.available ())
{data [0] = Serial1.read (); oneskorenie (k); if (data [0] == 0x7E) {while (! Serial1.available ()); pre (i = 1; i <36; i ++) {údaje = Serial1.read (); oneskorenie (1); } if (data [15] == 0x7F) /////// a skontroluje správnosť prijatých údajov {if (data [22] == 0x06) //////// uistite sa, že je typ snímača je správne {int cTemp = (((((data [24]) * 256) + data [25])); int16_t abs_pressure = (((((uint16_t) (data [26]) << 8) | data [27])*0,001); int rlt_pressure = (((((data [28]) * 256) + data [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (data [30]) << 8) | data [31])*0,01); plávajúca batéria = ((údaje [18] * 256) + údaje [19]); plávajúce napätie = 0,00322 * batéria; Serial.print („číslo senzora“); Serial.println (údaje [16]); Serial.print ("Typ snímača"); Serial.println (údaje [22]); Serial.print („Verzia firmvéru“); Serial.println (údaje [17]); Serial.print ("Teplota v stupňoch Celzia:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absolútny tlak:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("relatívny tlak:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("meter"); Serial.print ("hodnota ADC:"); Serial.println (batéria); Serial.print ("Napätie batérie:"); Serial.print (napätie); Serial.println ("\ n"); if (napätie <1) {Serial.println ("Čas na výmenu batérie"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); oneskorenie (1); }}}}
Pripojenie k rozhraniu UbiDots MQTT API
Zahrňte súbor hlavičky pre proces MQTT
#zahrnúť
definujte pre MQTT ďalšie premenné, ako sú meno klienta, adresa makléra, ID tokenu
#define TOKEN "BBFF-*************************************" // // Vaše Ubidots TOKEN#definovať MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
užitočné zaťaženie znakov [100]; char téma [150]; // vytvorenie premennej na uloženie záznamu ID tokenu
Krok 5: Publikovanie nameraných hodnôt senzora do UbiDots
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 6: 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 7: 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 tlaku a teploty
- pubsubclient
- UbiDots
- Plánovač úloh
Odporúča:
Údaje bezdrôtového senzora vibrácií a teploty do MySQL pomocou Node-RED: 40 krokov
Údaje o bezdrôtovom senzore vibrácií a teploty do MySQL pomocou Node-RED: Predstavujeme priemyselný bezdrôtový snímač vibrácií a teploty IoT s dlhým dosahom NCD, ktorý sa môže pochváliť až 2-mílovým dosahom použitím štruktúry bezdrôtovej sieťovej siete. Toto zariadenie obsahuje presný 16-bitový snímač vibrácií a teploty a
Odosielanie údajov bezdrôtového senzora vibrácií a teploty do Excelu pomocou Node-RED: 25 krokov
Odosielanie údajov bezdrôtového vibračného a teplotného senzora do Excelu pomocou Node-RED: Predstavujeme priemyselný bezdrôtový vibračný a teplotný senzor NCD s dlhým dosahom IoT od spoločnosti NCD, ktorý sa môže pochváliť využitím bezdrôtovej sieťovej štruktúry až na 2 míle. Toto zariadenie obsahuje presný 16-bitový snímač vibrácií a teploty a
Odosielanie údajov bezdrôtového senzora teploty a vlhkosti IoT s dlhým dosahom do Tabuľky Google: 39 krokov
Odosielanie údajov o bezdrôtovom senzore teploty a vlhkosti IoT s dlhým dosahom do Tabuľky Google: Používame tu snímač teploty a vlhkosti NCD, ale tieto kroky zostávajú rovnaké pre akýkoľvek produkt ncd, takže ak máte ďalšie bezdrôtové snímače ncd, môžete pozorovať vedľa seba. Na konci tohto textu musíte
UbiDots-Pripojenie ESP32 a publikovanie údajov z viacerých senzorov: 6 krokov
UbiDots-Pripojenie ESP32 a publikovanie údajov z viacerých senzorov: 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
Vizualizácia údajov bezdrôtového senzora pomocou grafov Google: 6 krokov
Vizualizácia údajov bezdrôtového senzora pomocou grafov Google: Prediktívna analýza strojov je veľmi potrebná, aby sa minimalizovali prestoje stroja. Pravidelná kontrola pomáha predĺžiť dobu prevádzky stroja a naopak zvyšuje jeho odolnosť voči poruchám. Bezdrôtový snímač vibrácií a teploty