INHOUDSOPGAWE:
- Stap 1: Spesifikasie van hardeware en sagteware
- Stap 2: Draadlose druk- en temperatuursensors
- Stap 3: Koppel aan WiFi
- Stap 4: Die opstel van UbiDots op ESP32
- Stap 5: Publiseer sensorlesings aan UbiDots
- Stap 6: Visualisering van die data
- Stap 7: Algehele kode
Video: Publisering van draadlose druksensordata met behulp van MQTT: 7 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
ESP32 en ESP 8266 is baie bekend op die gebied van IoT. Dit is 'n soort seën vir die IoT -projekte. ESP 32 is 'n toestel met geïntegreerde WiFi en BLE. Gee net u SSID, wagwoord en IP -konfigurasies en integreer die dinge in die wolk. Hier in hierdie instruksies, sal ons nadink oor 'n paar van die basiese terme van IoT, soos IoT -platform, MQTT, Captive -portale, ens. Laat ons dus daardeur gaan
- Die IoT -argitektuur bestaan in baie eenvoudige woorde uit 'n ingeboude toestel en IoT -platform om die toestel in die wolk te plaas. Hier gebruik ons UbiDots IoT -platform om die sensordata te visualiseer.
- Die bestuur van die IP -instellings en gebruikersbewyse kan 'n hoofpyn vir die gebruiker wees. Wat as die gebruiker die WiFi -geloofsbriewe wil verander? Wat as die gebruiker die DHCP/Statiese IP -instellings wil verander? Elke keer dat die ESP32 flits, is nie betroubaar nie, en selfs nie die oplossing vir hierdie probleme nie. Ons gaan dus deur die gevange portaal om die WiFi -geloofsbriewe en ander konfigurasies te stoor.
- MQTT word nou 'n baie algemene term in die IoT -wêreld. dit het die versoek en antwoorde (HTTP) deur Publiseer en inteken oortref vanweë die vinnige, robuuste en skraal argitektuur.
Hier in hierdie instruksies gaan ons demonstreer.
- Gee WiFi- en MQTT -geloofsbriewe met Captive Portal.
- Publiseer en teken op veelvuldige sensordata op UbiDots in.
- Lees die sensordata van die draadlose druk- en temperatuursensor
- Die aanbied van 'n webvorm vanaf die ESP32.
- Lees en skryf van SPIFFS ESP32.
Stap 1: Spesifikasie van hardeware en sagteware
Hardeware spesifikasie
- ESP32 WiFi/BLE
- Draadlose druk- en temperatuursensor
Sagteware spesifikasie
- Arduino IDE
- XCTU
- Labview Utility
Stap 2: Draadlose druk- en temperatuursensors
Kenmerke
- Industriële graad sensor langafstand draadlose druktemperatuur sensor
- Bedryfsbereik 0 tot 14000 mbar -40 ° tot +85 ° C (-40 ° tot 185 ° F)
- Instelbare interne berekening Drukresolusie 0,012 tot 0,065 mbar
- Instelbare interne berekeningstemperatuurresolusie 0,002 tot 0,012 ° C
- Akkuraatheid ± 2,5 mbar, ± 2 ° C
- Uitsette van absolute druk, relatiewe druk en relatiewe hoogteverandering
- 2-myl bereiklyn met siglyn met ingeboude antenne
- Superieure LOS-reeks tot 28 myl met hoë-wins antennes
- Koppelvlak met Raspberry Pi, Microsoft® Azure®, Arduino en meer
- Draadlose netwerknetwerk met DigiMesh®
Draadlose druk- en temperatuursensor instel met behulp van Labview Utility en XCTU
Die sensor werk in twee modusse
- Konfigurasiemodus: Stel die pan -ID, vertraging, aantal herproewe, ens in. Meer hieroor is buite die omvang van hierdie instruksies en sal in die volgende instruksies verduidelik word.
- Uitvoermodus: ons gebruik die toestel in die loopmodus. En om hierdie waarde te ontleed, gebruik ons die Labview Utility
Hierdie Labview UI toon die waardes in mooi grafieke. Dit toon die huidige sowel as die vorige waardes. U kan na hierdie skakel gaan om die Labview UI af te laai. Klik op die ikoon Uitvoering in die menu van die bestemmingsbladsy om na die uitvoermodus te gaan.
Stap 3: Koppel aan WiFi
Ons gebruik die gevange portaal om die WiFi -geloofsbriewe te stoor en deur die IP -instellings te beweeg. Vir 'n gedetailleerde inleiding op die portaal, kan u die volgende instruksies deurlees.
Die gevange portaal gee ons die opsie om te kies tussen statiese en DHCP -instellings. Voer net die geloofsbriewe in, soos Static IP, Subnet Mask, gateway en die Wireless Sensor Gateway sal op die IP gekonfigureer word.
'N Webblad word aangebied met 'n lys met beskikbare WiFi -netwerke en daar RSSI. Kies die WiFi -netwerk en wagwoord en voer in. Die geloofsbriewe word in die EEPROM gestoor en die IP -instelling word in die SPIFFS gestoor. Meer hieroor kan gevind word in hierdie instruksies.
Stap 4: Die opstel van UbiDots op ESP32
Hier gebruik ons draadlose druk- en temperatuursensors met die ESP 32 -toestel om die temperatuur- en humiditeitsdata te kry. Ons stuur die data na UbiDots met behulp van die MQTT -protokol. MQTT volg 'n publiseer- en intekeningsmeganisme eerder as die versoek en antwoord. Dit is vinniger en betroubaarder as HTTP. Dit werk soos volg.
- Ons maak gebruik van Taakplanner om die taak te skeduleer, soos om data van sensors af te haal, die sensorlesings te publiseer, in te teken op die MQTT -onderwerp.
- Sluit eerstens die koptekstlêers van die taakplanner in, die instansie daarvan en skeduleer die take.
- Ons het twee take geskeduleer wat verwys na twee verskillende beheerbedrywighede.
#define _TASK_TIMEOUT#sluit skeduler ts in; // --------- Take ------------ // Taak tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Taak tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Taak 1 is vir die lees van die sensorwaarde wat hierdie taak vir 1 sekonde uitvoer totdat dit die tydsduur van 10 sekondes bereik.
- As die taak1 sy tyd bereik het, maak ons verbinding met die plaaslike Wifi- en MQTT -makelaar.
- Nou is taak 2 geaktiveer en skakel ons taak 1 uit
- Taak 2 is om die sensorgegevens aan UbiDots MQTT -makelaar te publiseer, hierdie taak duur 20 sekondes totdat dit 'n tydsverloop van 20 sekondes bereik
- As die taak 2 sy tyd bereik het, word taak 1 weer aangeskakel en taak 2 is gedeaktiveer. Weereens kry ons die opgedateerde waarde en die proses gaan voort.
Lees die I2C -sensordata
Ons kry 'n raam van 29 byte van die draadlose sensors vir temperatuur en humiditeit. Hierdie raam word gemanipuleer om die werklike temperatuur- en humiditeitsdata te kry
as (Serial1.available ())
{data [0] = Serial1.read (); vertraging (k); if (data [0] == 0x7E) {terwyl (! Serial1.available ()); vir (i = 1; i <36; i ++) {data = Serial1.read (); vertraging (1); } if (data [15] == 0x7F) /////// om seker te maak of die gegewens korrek is {if (data [22] == 0x06) //////// maak seker dat die tipe sensor is is korrek {int cTemp = ((((data [24]) * 256) + data [25])); int16_t abs_druk = ((((uint16_t) (data [26]) << 8) | data [27])*0.001); int rlt_druk = ((((data [28]) * 256) + data [29]) * 0.001); int16_t delta_alt = ((((uint16_t) (data [30]) << 8) | data [31])*0,01); float battery = ((data [18] * 256) + data [19]); dryfspanning = 0.00322 * battery; Serial.print ("Sensornommer"); Serial.println (data [16]); Serial.print ("Sensortipe"); Serial.println (data [22]); Serial.print ("Firmware -weergawe"); Serial.println (data [17]); Serial.print ("Temperatuur in Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absolute druk:"); Serial.println (abs_druk); Serial.print ("mbar"); Serial.print ("Relatiewe druk:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Hoogte:"); Serial.println (delta_alt); Serial.print ("meter"); Serial.print ("ADC -waarde:"); Serial.println (battery); Serial.print ("Batteryspanning:"); Reeks.afdruk (spanning); Serial.println ("\ n"); if (spanning <1) {Serial.println ("Tyd om die battery te vervang"); }}} anders {vir (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); vertraging (1); }}}}
Koppel aan UbiDots MQTT API
Sluit die koplêer vir die MQTT -proses in
#insluit
definieer ander veranderlikes vir MQTT soos kliëntnaam, makelaarsadres, die token -ID
#define TOKEN "BBFF-***********************************" // Jou Ubidots TOKEN#definieer MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
char -vrag [100]; char onderwerp [150]; // skep 'n veranderlike om die token -ID -token te stoor
Stap 5: Publiseer sensorlesings aan UbiDots
Skep veranderlikes om verskillende sensor data te stoor en skep 'n char veranderlike om onderwerp te stoor
#define VARIABLE_LABEL_TEMPF "tempF" // Die veranderlike etiket bepaal
char onderwerp1 [100];
char topic2 [100]; char topic3 [100];
publiseer die data na die genoemde MQTT -onderwerp, en die laai sal soos {"tempc": {value: "tempData"}} lyk
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (loonvrag, "%s", ""); // Maak die loonvrag sprintf skoon (laai, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Voeg die waarde sprintf (payload, "%s {" value / ":%s}", payload, str_cTemp) by; // Voeg die waarde sprintf (payload, "%s}", payload) by; // Sluit die woordeboekhakies Serial.println (loonvrag); Serial.println (client.publish (topic1, payload)? "Gepubliseer": "niepubliseer"); // Doen dieselfde vir ander onderwerpe
client.publish () publiseer die data aan UbiDots
Stap 6: Visualisering van die data
- Gaan na Ubidots en meld aan by u rekening.
- Navigeer na die dashboard vanaf die blad Data bo -aan.
- Klik nou op die "+" - ikoon om die nuwe widgets by te voeg.
- Kies 'n widget uit die lys en voeg 'n veranderlike en toestelle by.
- Die sensordata kan op die dashboard met behulp van verskillende widgets gevisualiseer word.
Stap 7: Algehele kode
Die Over -kode vir HTML en ESP32 kan gevind word in hierdie GitHub -bewaarplek.
Krediete
- ncd ESP32 breakout board.
- ncd draadlose druk- en temperatuursensors
- kroegondernemer
- UbiDots
- Taak skeduleerder
Aanbeveel:
Stuur data van draadlose vibrasie en temperatuur na Google Sheets met behulp van Node-RED: 37 stappe
Stuur data van draadlose vibrasie en temperatuur na Google Sheets met behulp van Node-RED: Die bekendstelling van NCD se langafstand IoT Industrial draadlose vibrasie- en temperatuursensor, met 'n afstand van tot 2 myl, die gebruik van 'n draadlose netwerkstruktuur. Hierdie toestel bevat 'n presiese 16-bis vibrasie- en temperatuursensor, en
Draadlose Arduino -robot met behulp van die HC12 -draadlose module: 7 stappe
Draadlose Arduino -robot wat die HC12 -draadlose module gebruik: Hallo ouens, welkom terug. In my vorige pos het ek verduidelik wat 'n H Bridge Circuit is, L293D -motorbestuurder -IC, L293D -motorbestuurder -IC vir die bestuur van hoëstroom -motorbestuurders en hoe u u eie L293D -motorbestuurderbord kan ontwerp en maak
Strukturele gesondheidsmonitering van burgerlike infrastrukture met behulp van draadlose trillingsensors: 8 stappe
Monitering van strukturele gesondheid van burgerlike infrastrukture met behulp van draadlose trillingsensors: die agteruitgang van die ou gebou en die burgerlike infrastruktuur kan tot 'n noodlottige en gevaarlike situasie lei. Die konstante monitering van hierdie strukture is verpligtend. Monitering van strukturele gesondheid is 'n uiters belangrike metodologie vir die evaluering van die
Visualiseer data van die draadlose sensor met behulp van Google -kaarte: 6 stappe
Visualisering van draadlose sensordata met behulp van Google -kaarte: Voorspellende ontleding van die masjiene is baie nodig om die stilstand van die masjien tot die minimum te beperk. Gereelde ondersoeke help om die werktyd van die masjien te verbeter en verhoog ook die fouttoleransie daarvan. Draadlose trilling en temperatuur senuwees
Aan die gang met AWS IoT Met draadlose temperatuursensor met behulp van MQTT: 8 stappe
Aan die gang met AWS IoT Met draadlose temperatuursensor met behulp van MQTT: In vorige instruksies het ons verskillende wolkplatforms soos Azure, Ubidots, ThingSpeak, Losant, ens. Deurgegaan. al die wolkplatform. Vir meer inligting