Sisukord:
- Samm: riistvara ja tarkvara spetsifikatsioon
- Samm: traadita rõhu- ja temperatuuriandurid
- Samm: WiFi -ga ühenduse loomine
- Samm: seadistage UbiDots ESP32 -le
- Samm: andurite näitude avaldamine UbiDotsis
- 6. samm: andmete visualiseerimine
- Samm 7: üldine kood
Video: Traadita rõhuanduri andmete avaldamine MQTT abil: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
ESP32 ja ESP 8266 on IoT valdkonnas väga tuttavad SoC. Need on IoT -projektide jaoks omamoodi õnnistused. ESP 32 on integreeritud WiFi ja BLE -ga seade. Andke lihtsalt oma SSID, parool ja IP -konfiguratsioonid ning integreerige asjad pilve. Siin, selles juhendis, kaalume mõningaid IoT põhitermineid, nagu IoT platvorm, MQTT, vangistatud portaalid jne. Nii et vaatame selle läbi
- Väga lihtsate sõnadega IoT -arhitektuur koosneb sisseehitatud seadmest ja IoT -platvormist, mis asetab seadme pilve. Siin kasutame andurite andmete visualiseerimiseks UbiDots IoT platvormi.
- IP -seadete ja kasutaja mandaatide haldamine võib kasutajale peavalu valmistada. Mis saab siis, kui kasutaja soovib muuta WiFi mandaati? Mis saab siis, kui kasutaja soovib muuta DHCP/staatilise IP seadeid? ESP32 igakordne vilkumine ei ole usaldusväärne ega ole isegi nende probleemide lahendus. Nii et me läheme läbi suletud portaali, et salvestada WiFi volikirjad ja muud konfiguratsioonid.
- MQTT on nüüd muutumas IoT maailmas väga levinud terminiks. see on kiire, jõulise ja lahja arhitektuuri tõttu ületanud avaldamise ja tellimise taotlused ja vastused (HTTP).
Siin selles juhendatavas me demonstreerime.
- WiFi ja MQTT mandaadi andmine Captive Portali abil.
- Mitme anduri andmete avaldamine ja tellimine UbiDotsi.
- Andmeandmete lugemine traadita rõhu- ja temperatuuriandurilt
- Veebivormi hostimine ESP32 -st.
- Lugemine ja kirjutamine SPIFFS ESP32 -st.
Samm: riistvara ja tarkvara spetsifikatsioon
Riistvara spetsifikatsioon
- ESP32 WiFi/BLE
- Juhtmevaba rõhu- ja temperatuuriandur
Tarkvara spetsifikatsioon
- Arduino IDE
- XCTU
- Labview Utility
Samm: traadita rõhu- ja temperatuuriandurid
Funktsioonid
- Tööstusliku astme andur pikaajaline traadita rõhu temperatuuriandur
- Tööpiirkond 0 kuni 14000 mbar -40 ° kuni +85 ° C (-40 ° kuni 185 ° F)
- Seadistatav sisemine arvutusrõhu eraldusvõime 0,012 kuni 0,065 mbar
- Konfigureeritav sisemise arvutuse temperatuuri eraldusvõime 0,002 kuni 0,012 ° C
- Täpsus ± 2,5 mbar, ± 2 ° C
- Absoluutse rõhu, suhtelise rõhu ja suhtelise kõrguse muutmise väljundid
- 2 miili kaugus vaateväljast koos pardaantenniga
- Suurepärane LOS-vahemik kuni 28 miili suure võimendusega antennidega
- Liides Raspberry Pi, Microsoft® Azure®, Arduino ja teistega
- Juhtmevaba võrguühendus DigiMesh® -i abil
Traadita rõhu- ja temperatuurianduri seadistamine Labview Utility ja XCTU abil
Andur töötab kahes režiimis
- Konfiguratsioonirežiim: seadistage pan -ID, viivitus, korduskatete arv jne. Lisateave selle juhendi reguleerimisalast välja ja seda selgitatakse järgmises juhendis.
- Käivitusrežiim: Käitame seadme töörežiimis. Nende väärtuste analüüsimiseks kasutame Labview Utility
See Labview kasutajaliides näitab väärtusi kenades graafikutes. See näitab praeguseid ja mineviku väärtusi. Sellelt lingilt saate alla laadida Labview kasutajaliidese. käivitusrežiimi minemiseks klõpsake sihtlehe menüüst ikooni Käivita.
Samm: WiFi -ga ühenduse loomine
Me kasutame suletud portaali WiFi mandaatide salvestamiseks ja IP -seadete hõljumiseks. Suletud portaali üksikasjaliku tutvustuse jaoks saate läbi vaadata järgmise juhendi.
Suletud portaal annab meile võimaluse valida staatiliste ja DHCP -seadete vahel. Sisestage lihtsalt sellised volikirjad nagu staatiline IP, alamvõrgumask, lüüs ja traadita anduri lüüs konfigureeritakse sellel IP -l.
Hostitakse veebilehte, kus on loetelu saadaolevatest WiFi -võrkudest ja seal RSSI. Valige WiFi -võrk ja parool ning sisestage Esita. Volitused salvestatakse EEPROM -i ja IP -sätted salvestatakse SPIFFS -i. Lisateavet selle kohta leiate sellest juhendist.
Samm: seadistage UbiDots ESP32 -le
Siin kasutame temperatuuri ja niiskuse andmete saamiseks ESP 32 seadmega traadita rõhu- ja temperatuuriandureid. Saadame andmed UbiDotsile, kasutades MQTT protokolli. MQTT järgib avaldamise ja tellimise mehhanismi, mitte seda taotlust ja vastust. See on kiirem ja usaldusväärsem kui HTTP. See toimib järgmiselt.
- Me kasutame ülesannete ajastamiseks ülesannete planeerijat, näiteks andmete andmete toomist, andurite näitude avaldamist, MQTT -i tellimist.
- Esiteks lisage ülesannete ajastamise päisefailid, see on eksemplar ja ajakava.
- Oleme kavandanud kaks ülesannet, mis viitavad kahele erinevale juhtimistoimingule.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Ülesanded ------------ // Ülesanne tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL ja & taskSensorDisable); Ülesanne tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL ja & taskWiFiDisable);
- Ülesanne 1 on anduri väärtuse lugemiseks, see ülesanne kestab 1 sekund, kuni see jõuab 10 sekundi aegumiseni.
- Kui ülesanne1 saab oma aja, loome ühenduse kohaliku Wifi ja MQTT maakleriga.
- Nüüd on ülesanne 2 lubatud ja me keelame ülesande 1
- Ülesanne 2 on andurite andmete avaldamiseks UbiDots MQTT maaklerile, see ülesanne kestab 20 sekundit, kuni see jõuab 20 sekundi aegumiseni
- Kui ülesanne 2 saab oma aja, on ülesanne 1 uuesti lubatud ja ülesanne 2 keelatud. Jällegi saame värskendatud väärtuse ja protsess läheb edasi.
I2C anduri andmete lugemine
Me saame traadita temperatuuri ja niiskuse anduritelt 29-baidise kaadri. Seda raami töödeldakse, et saada tegelikke temperatuuri ja niiskuse andmeid
kui (Serial1.available ())
{andmed [0] = Seriaal1.lugemine (); viivitus (k); if (andmed [0] == 0x7E) {while (! Serial1.available ()); jaoks (i = 1; i <36; i ++) {data = Serial1.read (); viivitus (1); } if (andmed [15] == 0x7F) ///////, et kontrollida, kas tagasivõtmisandmed on õiged {if (andmed [22] == 0x06) //////// veenduge, et anduri tüüp on õige {int cTemp = ((((andmed [24]) * 256) + andmed [25])); int16_t abs_pressure = (((((uint16_t) (andmed [26]) << 8) | andmed [27])*0,001); int rlt_pressure = ((((andmed [28]) * 256) + andmed [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (andmed [30]) << 8) | andmed [31])*0,01); ujukpatarei = ((andmed [18] * 256) + andmed [19]); ujukipinge = 0,00322 * aku; Serial.print ("Anduri number"); Serial.println (andmed [16]); Serial.print ("Anduri tüüp"); Serial.println (andmed [22]); Serial.print ("Püsivara versioon"); Serial.println (andmed [17]); Serial.print ("Temperatuur Celsiuse järgi:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absoluutne rõhk:"); Seeria.println (abs_rõhk); Serial.print ("mbar"); Serial.print ("Suhteline rõhk:"); Seeria.println (rlt_rõhk); Serial.print ("mbar"); Serial.print ("Delta kõrgus:"); Serial.println (delta_alt); Serial.print ("meeter"); Serial.print ("ADC väärtus:"); Serial.println (aku); Serial.print ("Aku pinge:"); Jadajälg (pinge); Serial.println ("\ n"); if (pinge <1) {Serial.println ("Aku vahetamise aeg"); }}} muu {jaoks (i = 0; i <36; i ++) {Serial.print (andmed ); Serial.print (","); viivitus (1); }}}}
Ühendamine UbiDots MQTT API -ga
Kaasa MQTT protsessi päisefail
#kaasake
määratlege MQTT jaoks muud muutujad, näiteks kliendi nimi, maakleri aadress, märgi ID
#define TOKEN "BBFF-***********************************" // Teie Ubidots TOKEN#define MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
söe kasulik koormus [100]; char teema [150]; // loo muutuja tokeni ID toke salvestamiseks
Samm: andurite näitude avaldamine UbiDotsis
Looge muutujaid erinevate andurite andmete salvestamiseks ja looge teema muutmiseks char muutuja
#define VARIABLE_LABEL_TEMPF "tempF" // Muutuja sildi määramine #define VARIABLE_LABEL_TEMPC "tempC" // Muutuja sildi määramine #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "niiske silt" // Assing
char teema1 [100];
char teema2 [100]; char teema3 [100];
avaldage andmed mainitud MQTT -teemal, kuna koormus näeb välja selline: "tempc": {value: "tempData"}}
sprintf (teema1, "%s", ""); sprintf (teema1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (kasulik koormus, "%s", ""); // Puhastab kasulikku koormust sprintf (kasulik koormus, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Lisab väärtuse sprintf (kasulik koormus, "%s {" väärtus / ":%s}", kasulik koormus, str_cTemp); // Lisab väärtuse sprintf (kasulik koormus, "%s}", kasulik koormus); // Sulgeb sõnastiku sulgud Serial.println (kasulik koormus); Serial.println (klient.publish (teema1, kasulik koormus)? "Avaldatud": "notpublished"); // Tehke sama ka teise teema puhul
client.publish () avaldab andmed UbiDotsis
6. samm: andmete visualiseerimine
- Avage Ubidots ja logige oma kontole sisse.
- Liikuge ülaosas oleval vahekaardil Andmed juhtpaneelile.
- Nüüd klõpsake uute vidinate lisamiseks ikooni "+".
- Valige loendist vidin ja lisage muutuja ja seadmed.
- Andurite andmeid saab armatuurlaual visualiseerida erinevate vidinate abil.
Samm 7: üldine kood
HTML -i ja ESP32 ülekoodi leiate sellest GitHubi hoidlast.
Autorid
- ncd ESP32 katkestusplaat.
- ncd juhtmevabad rõhu- ja temperatuuriandurid
- pubi allklient
- UbiDots
- Ülesannete planeerija
Soovitan:
Traadita vibratsiooni ja temperatuurianduri andmete saatmine Excelisse sõlme-PUNASE abil: 25 sammu
Traadita vibratsiooni- ja temperatuurianduri andmete saatmine Excelisse Node-RED abil: tutvustame NCD kaugjuhtimispuldi IoT Industrial traadita vibratsiooni- ja temperatuuriandurit, mis on kuni 2 miili ulatuses traadita võrgusilmaga. See seade sisaldab täpset 16-bitist vibratsiooni- ja temperatuuriandurit
Traadita vibratsiooni ja temperatuuri andmete saatmine Google'i arvutustabelitele sõlme-PUNANE abil: 37 sammu
Juhtmeta vibratsiooni ja temperatuuri andmete saatmine Google'i lehtedele Node-RED abil: tutvustame NCD kaugjuhtimispuldi IoT Industrial traadita vibratsiooni- ja temperatuuriandurit, mille traadita võrgusilma kasutamine on kuni 2 miili ulatuses. See seade sisaldab täpset 16-bitist vibratsiooni- ja temperatuuriandurit
ESP32 andmete avaldamine Interneti -pilve NTP ajatempliga: 5 sammu
ESP32 andmete avaldamine koos NTP ajatempliga IoT Cloudi: Paljudes rakendustes peavad kasutajad saatma oma andmed koos koormusega saadetavate väärtuste kohaliku ajatempliga AskSensors IoT pilve. Ajatempli vorming on UNIX Epoch time: jaanuarist möödunud millisekundite arv
UbiDots-ESP32 ühendamine ja mitme anduri andmete avaldamine: 6 sammu
UbiDots-ESP32 ühendamine ja mitme anduri andmete avaldamine: ESP32 ja ESP 8266 on IoT valdkonnas väga tuttavad SoC-d. Need on omamoodi õnnistuseks asjade Interneti projektidele. ESP 32 on integreeritud WiFi ja BLE -ga seade. Lihtsalt sisestage oma SSID, parool ja IP -konfiguratsioonid ning integreerige asjad
Traadita andurite andmete visualiseerimine Google'i diagrammide abil: 6 sammu
Traadita andurite andmete visualiseerimine Google'i diagrammide abil: masinate ennustusanalüüs on väga vajalik, et minimeerida masina seisakuid. Regulaarne kontroll aitab pikendada masina tööaega ja omakorda suurendab selle tõrketaluvust. Juhtmeta vibratsiooni ja temperatuuri