Përmbajtje:
- Hapi 1: Specifikimet e harduerit dhe softuerit
- Hapi 2: Sensorët e presionit dhe temperaturës pa tel
- Hapi 3: Lidhja me WiFi
- Hapi 4: Vendosja e UbiDots në ESP32
- Hapi 5: Publikimi i leximeve të sensorëve në UbiDots
- Hapi 6: Vizualizimi i të dhënave
- Hapi 7: Kodi i përgjithshëm
Video: Publikimi i të dhënave të sensorit të presionit pa tel duke përdorur MQTT: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
ESP32 dheESP 8266 janë SoC shumë të njohura në fushën e IoT. Këto janë një lloj ndihme për projektet IoT. ESP 32 është një pajisje me WiFi dhe BLE të integruar. Thjesht jepni konfigurimin tuaj SSID, fjalëkalimin dhe IP dhe integroni gjërat në cloud. Këtu në këtë udhëzues, Ne do të meditojmë përmes disa prej kushteve themelore të IoT si platforma IoT, MQTT, Portalet e Kapur etj. Pra, le të kalojmë nëpër të
- Arkitektura IoT me fjalë shumë të thjeshta përbëhet nga një pajisje e ngulitur dhe platforma IoT për ta vënë pajisjen në re. Këtu po përdorim platformën UbiDots IoT për të vizualizuar të dhënat e sensorit.
- Menaxhimi i cilësimeve IP dhe kredencialet e përdoruesit mund të jetë një dhimbje koke për përdoruesit. Po nëse Përdoruesi dëshiron të ndryshojë kredencialet WiFi? Po sikur përdoruesi të ndryshojë cilësimet e DHCP/IP statike? Ndezja e ESP32 çdo herë nuk është e besueshme dhe as zgjidhje për këto probleme. Pra, ne do të kalojmë përmes portalit të kapur për të ruajtur kredencialet WiFi dhe konfigurimet e tjera.
- MQTT tani po bëhet një term shumë i zakonshëm në botën IoT. ka tejkaluar kërkesën dhe përgjigjet (HTTP) nga Publish and Subscribe për shkak të arkitekturës së shpejtë, të fuqishme dhe të dobët.
Këtu në këtë udhëzues, ne do të demonstrojmë.
- Dhënia e kredencialeve WiFi dhe MQTT duke përdorur Portalin e Kapur.
- Publikimi dhe Abonimi i të dhënave të shumta të Sensorit në UbiDots.
- Leximi i të dhënave të sensorit nga sensori i presionit pa tel dhe temperaturës
- Pritja e një forme uebi nga ESP32.
- Leximi dhe Shkrimi nga SPIFFS ESP32.
Hapi 1: Specifikimet e harduerit dhe softuerit
Specifikimet e harduerit
- ESP32 WiFi/BLE
- Sensori i presionit dhe temperaturës pa tel
Specifikimi i Softuerit
- Arduino IDE
- XCTU
- Shërbimi Labview
Hapi 2: Sensorët e presionit dhe temperaturës pa tel
Karakteristikat
- Sensor i shkallës industriale Sensor i temperaturës së presionit pa tel me rreze të gjatë
- Gama e funksionimit 0 deri në 14000 mbar -40 ° deri +85 ° C (-40 ° deri 185 ° F)
- Llogaritja e brendshme e konfigurueshme Rezolucioni i presionit 0.012 në 0.065 mbar
- Llogaritja e brendshme e konfigurueshme Zgjidhja e temperaturës 0.002 deri 0.012 ° C
- Saktësi ± 2.5 mbar, ± 2 ° C
- Presionet Absolute, Presioni Relativ dhe Lartësia Relative daljet e ndryshimit
- Gama e Linjës së Pamjes 2 Mile me Antenë në bord
- Gama Superior LOS deri në 28 milje me antena me fitim të lartë
- Ndërfaqja me Raspberry Pi, Microsoft® Azure®, Arduino dhe më shumë
- Rrjetëzimi pa tel me rrjetë duke përdorur DigiMesh®
Konfigurimi i sensorit të presionit dhe temperaturës pa tel duke përdorur mjetin Labview dhe XCTU
Sensori funksionon në dy mënyra
- Mënyra e konfigurimit: Konfiguroni ID -në e Pan -it, vonesën, numrin e riprovimeve etj. Më shumë për këtë është përtej fushëveprimit të këtij udhëzuesi dhe do të shpjegohet në udhëzuesin tjetër.
- Mënyra e ekzekutimit: Ne po e drejtojmë pajisjen në modalitetin Run. Dhe për të analizuar këto vlera ne po përdorim Shërbimin Labview
Ky UI Labview tregon vlerat në grafikë të bukur. Ajo tregon vlerat aktuale dhe të kaluara. Ju mund të shkoni në këtë lidhje për të shkarkuar ndërfaqen e Labview. klikoni në ikonën Run nga menyja e faqes së uljes për të shkuar në modalitetin e ekzekutimit.
Hapi 3: Lidhja me WiFi
Ne po përdorim portalin e kapur për të ruajtur kredencialet WiFi dhe për të lëvizur përmes cilësimeve të IP. Për hyrjen e hollësishme në portalin robër, mund të kaloni udhëzimet e mëposhtme udhëzuese.
Portali i kapur na jep mundësinë të zgjedhim midis cilësimeve Static dhe DHCP. Thjesht futni kredencialet si IP Static, Subnet Mask, gateway dhe Porta e Sensorit Wireless do të konfigurohet në atë IP.
Një faqe në internet po mbahet ku një listë që tregon rrjetet WiFi në dispozicion dhe atje RSSI. Zgjidhni rrjetin WiFi dhe fjalëkalimin dhe futni paraqit. Kredencialet do të ruhen në EEPROM dhe cilësimi IP do të ruhet në SPIFFS. Më shumë për këtë mund të gjeni në këtë udhëzues.
Hapi 4: Vendosja e UbiDots në ESP32
Këtu ne po përdorim sensorë pa presion dhe temperaturë me pajisjen ESP 32 për të marrë të dhënat e temperaturës dhe lagështisë. Ne po i dërgojmë të dhënat në UbiDots duke përdorur protokollin MQTT. MQTT ndjek një mekanizëm publikimi dhe abonimi më tepër se kërkesën dhe përgjigjen. Isshtë më e shpejtë dhe e besueshme se HTTP. Kjo funksionon si më poshtë.
- Ne po përdorim Task Scheduler për të planifikuar detyrën si marrja e të dhënave nga sensorët, Publikimi i leximeve të sensorëve, Abonimi në temën MQTT.
- Së pari, përfshini skedarët e titullit të Task Scheduler, është shembulli dhe cakton detyrat.
- Ne kemi planifikuar dy detyra që i referohen dy operacioneve të ndryshme të kontrollit.
#define _TASK_TIMEOUT#përfshijnë Scheduler ts; // --------- Detyrat ------------ // Detyra tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Detyra tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Detyra 1 është për të lexuar vlerën e sensorit kjo detyrë funksionon për 1 sekondë derisa të arrijë afatin prej 10 sekondash.
- Kur Task1 arrin kohën e tij Ne jemi duke u lidhur me ndërmjetësin lokal Wifi dhe MQTT.
- Tani Detyra 2 është aktivizuar dhe ne po e çaktivizojmë Detyrën 1
- Detyra 2 është për publikimin e të dhënave të sensorit tek ndërmjetësi UbiDots MQTT, kjo detyrë funksionon për 20 sekonda derisa të arrijë afatin prej 20 sekondash
- Kur Task2 arrin kohën e vet, Detyra 1 aktivizohet përsëri dhe Task2 është çaktivizuar. Këtu përsëri, ne po marrim vlerën e përditësuar dhe procesi vazhdon.
Leximi i të dhënave të sensorit I2C
Ne po marrim një kornizë 29-bajtësh nga sensorët e temperaturës dhe lagështisë pa tela. Ky kuadër është manipuluar për të marrë të dhënat aktuale të temperaturës dhe lagështisë
nese (Serial1.e disponueshme ())
{data [0] = Serial1.read (); vonesa (k); nëse (të dhënat [0] == 0x7E) {ndërsa (! Serial1.disponueshme ()); për (i = 1; i <36; i ++) {të dhënat = Serial1.lex (); vonesa (1); } nëse (të dhënat [15] == 0x7F) /////// për të kontrolluar nëse të dhënat e marrjes janë të sakta {nëse (të dhënat [22] == 0x06) //////// sigurohuni që lloji i sensorit është e saktë {int cTemp = ((((të dhënat [24]) * 256) + të dhënat [25])); int16_t abs_pressure = (((((uint16_t) (të dhënat [26]) << 8) | të dhënat [27])*0.001); int rlt_pressure = ((((të dhënat [28]) * 256) + të dhënat [29]) * 0.001); int16_t delta_alt = (((((uint16_t) (të dhënat [30]) << 8) | të dhënat [31])*0.01); bateri notuese = ((të dhëna [18] * 256) + të dhëna [19]); tensioni notues = 0.00322 * bateri; Serial.print ("Numri i sensorit"); Serial.println (të dhënat [16]); Serial.print ("Lloji i sensorit"); Serial.println (të dhënat [22]); Serial.print ("Versioni i firmuerit"); Serial.println (të dhënat [17]); Serial.print ("Temperatura në Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Presioni Absolut:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Presioni Relativ:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("metër"); Serial.print ("Vlera ADC:"); Serial.println (bateri); Serial.print ("Tensioni i baterisë:"); Serial.print (tension); Serial.println ("\ n"); if (tension <1) {Serial.println ("Koha për të zëvendësuar baterinë"); }}} tjetër {për (i = 0; i <36; i ++) {Serial.print (të dhënat ); Serial.print (","); vonesa (1); }}}}
Lidhja me UbiDots MQTT API
Përfshini skedarin e kokës për procesin MQTT
#përfshi
përcaktoni variabla të tjerë për MQTT si emri i klientit, adresa e ndërmjetësit, ID -ja e shenjës
#define TOKEN "BBFF-*********************************" // Ubidots juaj TOKEN#përcakto MQTT_CLIENT_NAME "**************************"
char mqttBroker = "things.ubidots.com";
ngarkesa e karbonit [100]; temë char [150]; // krijoni variabël për të ruajtur tokenin ID të shenjës
Hapi 5: Publikimi i leximeve të sensorëve në UbiDots
Krijoni variabla për të ruajtur të dhëna të ndryshme të sensorit dhe krijoni një ndryshore char për të ruajtur temën
#define VARIABLE_LABEL_TEMPF "tempF" // Vlerësimi i etiketës së ndryshores #përcakto VARIABLE_LABEL_TEMPC "tempC" // Vlerësimi i etiketës së ndryshores #define VARIABLE_LABEL_BAT "bat" #përcakto VARIABLE_LABEL_HUMID "etiketën e lagësht" // Vlerësimi
tema char1 [100];
tema e kar22 [100]; tema char3 [100];
publikoni të dhënat në temën e përmendur MQTT, ngarkesa do të duket si {"tempc": {vlera: "tempData"}}
sprintf (tema1, "%s", ""); sprintf (tema1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (ngarkesa, "%s", ""); // Pastron sprint -in e ngarkesës (ngarkesa, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Shton vlerën sprintf (ngarkesa, "%s {" vlera / ":%s}", ngarkesa, str_cTemp); // Shton vlerën sprintf (ngarkesa, "%s}", ngarkesa); // Mbyll kllapat e fjalorit Serial.println (ngarkesa); Serial.println (client.publish (topic1, payload)? "Published": "notpublished"); // Bëni të njëjtën gjë edhe për tema të tjera
client.publish () publikon të dhënat në UbiDots
Hapi 6: Vizualizimi i të dhënave
- Shkoni te Ubidots dhe Hyni në llogarinë tuaj.
- Shkoni te Paneli i Kontrollit nga skeda e të dhënave e shënuar në krye.
- Tani klikoni ikonën "+" për të shtuar widget -et e reja.
- Zgjidhni një widget nga lista dhe shtoni një ndryshore dhe pajisje.
- Të dhënat e sensorit mund të vizualizohen në pult duke përdorur pajisje të ndryshme.
Hapi 7: Kodi i përgjithshëm
Kodi Over për HTML dhe ESP32 mund të gjendet në këtë depo GitHub.
Kredite
- ncd ESP32 bordi i shpërthimit.
- ncd Sensorë Presioni dhe Temperature pa tela
- pubsubclient
- UbiDots
- Programi i detyrave
Recommended:
IoT: Vizualizimi i të dhënave të sensorit të dritës duke përdorur Nyjen-KUQ: 7 hapa
IoT: Vizualizimi i të dhënave të sensorit të dritës duke përdorur Node-RED: Në këtë udhëzues, do të mësoni se si të krijoni një sensor të lidhur me internetin! Unë do të përdor një sensor të dritës së ambientit (TI OPT3001) për këtë demonstrim, por çdo sensor sipas zgjedhjes tuaj (temperatura, lagështia, potenciometri, etj.) Do të funksiononte. Vlerat e sensorit
Të dhënat e vibruesit pa tel dhe sensorit të temperaturës në MySQL duke përdorur Nyjen-RED: 40 hapa
Të dhënat e dridhjeve pa tel dhe sensorit të temperaturës në MySQL duke përdorur Node-RED: Prezantimi i sensorit të dridhjeve dhe temperaturës pa tela të NCD's Long Range IoT Industrial, i cili mburret deri në një distancë prej 2 kilometrash duke përdorur strukturën e rrjetit me rrjetë pa tel. Përfshirë një sensor dridhjeje dhe temperature të saktë 16-bit, kjo pajisje kalon
Dërgimi i të dhënave të dridhjeve pa tel dhe sensorit të temperaturës në Excel duke përdorur Node-RED: 25 hapa
Dërgimi i të dhënave të dridhjeve pa tel dhe sensorit të temperaturës në Excel duke përdorur Node-RED: Prezantimi i sensorit të dridhjeve dhe temperaturës pa tela të NCD’s Long Range IoT Industrial, duke u mburrur deri në një distancë prej 2 kilometrash përdorimi i një strukture rrjetëzimi pa tel. Përfshirë një sensor dridhjeje dhe temperature të saktë 16-bit, kjo pajisje kalon
UbiDots-Lidhja e një ESP32 dhe publikimi i të dhënave të shumëfishta të sensorit: 6 hapa
UbiDots-Lidhja e një ESP32 dhe Publikimi i të Dhënave të Sensorit të Shumëfishtë: ESP32 dhe ESP 8266 janë SoC shumë të njohura në fushën e IoT. Këto janë një lloj ndihme për projektet IoT. ESP 32 është një pajisje me WiFi dhe BLE të integruar. Thjesht jepni konfigurimin tuaj SSID, fjalëkalimin dhe IP dhe integroni gjërat në
Vizualizimi i të dhënave të sensorit pa tel duke përdorur grafikët e Google: 6 hapa
Vizualizimi i të dhënave të sensorit pa tel duke përdorur grafikët e Google: Analiza parashikuese e makinave është shumë e nevojshme në mënyrë që të minimizohet koha e ndërprerjes së makinës. Kontrolli i rregullt ndihmon në rritjen e kohës së funksionimit të makinës dhe nga ana tjetër rrit tolerancën e saj ndaj gabimeve. Sensori i dridhjeve dhe temperaturës pa tela