Indholdsfortegnelse:
- Trin 1: Hardware- og softwarespecifikation
- Trin 2: Trådløse tryk- og temperatursensorer
- Trin 3: Tilslutning til WiFi
- Trin 4: Opsætning af UbiDots på ESP32
- Trin 5: Publicering af sensoraflæsninger til UbiDots
- Trin 6: Visualisering af data
- Trin 7: Overordnet kode
Video: Offentliggørelse af trådløse tryksensordata ved hjælp af MQTT: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
ESP32 ogESP 8266 er meget velkendte SoC inden for IoT. Disse er en slags velsignelse for IoT -projekterne. ESP 32 er en enhed med integreret WiFi og BLE. Bare giv dine SSID, adgangskode og IP -konfigurationer og integrer tingene i skyen. Her i denne instruktive vil vi overveje nogle af de grundlæggende vilkår for IoT som IoT -platform, MQTT, Captive -portaler osv. Så lad os gå igennem det
- IoT -arkitekturen består i meget enkle ord af en integreret enhed og IoT -platform til at sætte enheden i skyen. Her bruger vi UbiDots IoT -platform til at visualisere sensordata.
- Håndtering af IP -indstillinger og brugeroplysninger kan være en hovedpine for brugeren. Hvad hvis brugeren vil ændre WiFi -legitimationsoplysningerne? Hvad hvis brugeren vil ændre DHCP/statisk IP -indstillinger? At blinke ESP32 hver gang er ikke pålideligt og ikke engang løsningen på disse problemer. Så vi går gennem den fangede portal for at gemme WiFi -legitimationsoplysninger og andre konfigurationer.
- MQTT er nu ved at blive et meget almindeligt begreb i IoT -verdenen. det har overgået anmodning og svar (HTTP) fra Publish and Subscribe på grund af den hurtige, robuste og slanke arkitektur.
Her i denne instruktive vil vi demonstrere.
- Giver WiFi og MQTT -legitimationsoplysninger ved hjælp af Captive Portal.
- Publicering og abonnement på flere sensordata til UbiDots.
- Læsning af sensordata fra trådløs tryk- og temperatursensor
- Hosting af en webformular fra ESP32.
- Læsning og skrivning fra SPIFFS ESP32.
Trin 1: Hardware- og softwarespecifikation
Hardware specifikation
- ESP32 WiFi/BLE
- Trådløs tryk- og temperatursensor
Softwarespecifikation
- Arduino IDE
- XCTU
- Labview Utility
Trin 2: Trådløse tryk- og temperatursensorer
Funktioner
- Industriel kvalitetssensor Trådløs tryktemperatursensor med lang rækkevidde
- Driftsområde 0 til 14000 mbar -40 ° til +85 ° C (-40 ° til 185 ° F)
- Konfigurerbar intern beregning Trykopløsning 0,012 til 0,065 mbar
- Konfigurerbar intern beregningstemperatur Opløsning 0,002 til 0,012 ° C
- Nøjagtighed ± 2,5 mbar, ± 2 ° C
- Output for absolut tryk, relativt tryk og relativ højdeændring
- 2 Mile Line-of-Sight Range med indbygget antenne
- Overlegen LOS-rækkevidde på op til 28 Miles med højgevinstantenner
- Grænseflade til Raspberry Pi, Microsoft® Azure®, Arduino og mere
- Trådløst netværksnetværk ved hjælp af DigiMesh®
Konfiguration af trådløs tryk- og temperatursensor ved hjælp af Labview Utility og XCTU
Sensoren kører i to tilstande
- Konfigurationstilstand: Konfigurer Pan -ID, forsinkelse, antal genforsøg osv. Mere om dette er uden for denne instrukss omfang og vil blive forklaret i næste instruerbare.
- Kørtilstand: Vi kører enheden i Kør -tilstand. Og for at analysere denne værdi bruger vi Labview Utility
Denne Labview UI viser værdierne i flotte grafer. Det viser de nuværende såvel som tidligere værdier. Du kan gå til dette link for at downloade Labview UI. klik på ikonet Kør i landingssidemenuen for at gå til kørselstilstand.
Trin 3: Tilslutning til WiFi
Vi bruger portalen til at gemme WiFi -legitimationsoplysningerne og til at svæve gennem IP -indstillingerne. For en detaljeret introduktion på den fangede portal kan du gå igennem følgende instruerbare.
Den fangede portal giver os mulighed for at vælge mellem statisk og DHCP -indstillinger. Bare indtast legitimationsoplysninger som Statisk IP, Subnetmaske, gateway og Wireless Sensor Gateway bliver konfigureret på denne IP.
En webside hostes, hvor en liste viser tilgængelige WiFi -netværk og der RSSI. Vælg WiFi -netværket og adgangskoden, og indtast Send. Legitimationsoplysningerne gemmes i EEPROM, og IP -indstillingen gemmes i SPIFFS. Mere om dette kan findes i denne instruktive.
Trin 4: Opsætning af UbiDots på ESP32
Her bruger vi trådløse tryk- og temperatursensorer med ESP 32 -enheden til at få oplysninger om temperatur og luftfugtighed. Vi sender dataene til UbiDots ved hjælp af MQTT -protokollen. MQTT følger en publicerings- og abonnementsmekanisme snarere end anmodning og svar. Det er hurtigere og mere pålideligt end HTTP. Dette fungerer som følger.
- Vi gør brug af Task Scheduler til at planlægge opgaven som at hente data fra sensorer, offentliggøre sensoraflæsninger, abonnere på MQTT -emne.
- Inkluder først opgaveplanlægningens overskriftsfiler, dens instans og planlægger opgaverne.
- Vi har planlagt to opgaver, der refererer til to forskellige kontroloperationer.
#define _TASK_TIMEOUT#inkluderer Planlægger ts; // --------- Opgaver ------------ // Opgave tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Opgave tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Opgave 1 er til aflæsning af sensorværdien, denne opgave kører i 1 sekund, indtil den når timeout på 10 sekunder.
- Når opgave1 når sin tid, opretter vi forbindelse til lokal Wifi- og MQTT -mægler.
- Nu er opgave 2 aktiveret, og vi deaktiverer opgave 1
- Opgave 2 er til offentliggørelse af sensordata til UbiDots MQTT -mægler, denne opgave kører i 20 sekunder, indtil den når timeout på 20 sekunder
- Når opgave 2 når sin timeout, er opgave 1 aktiveret igen, og opgave 2 er deaktiveret. Her får vi igen den opdaterede værdi, og processen fortsætter.
Læsning af I2C -sensordata
Vi får en 29-byte ramme fra de trådløse temperatur- og luftfugtighedssensorer. Denne ramme manipuleres for at få de faktiske temperatur- og fugtighedsdata
hvis (Serial1.available ())
{data [0] = Serial1.read (); forsinkelse (k); if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); forsinkelse (1); } if (data [15] == 0x7F) /////// for at kontrollere, om recive -dataene er korrekte {if (data [22] == 0x06) //////// sørg for at sensortypen er korrekt {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); flydebatteri = ((data [18] * 256) + data [19]); flydespænding = 0,00322 * batteri; Serial.print ("Sensornummer"); Serial.println (data [16]); Serial.print ("Sensortype"); Serial.println (data [22]); Serial.print ("Firmwareversion"); Serial.println (data [17]); Serial.print ("Temperatur i Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absolut tryk:"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Relativt tryk:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("meter"); Serial.print ("ADC -værdi:"); Serial.println (batteri); Serial.print ("Batterispænding:"); Seriel.print (spænding); Serial.println ("\ n"); if (spænding <1) {Serial.println ("Tid til udskiftning af batteriet"); }}} andet {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); forsinkelse (1); }}}}
Opretter forbindelse til UbiDots MQTT API
Inkluder header -filen til MQTT -processen
#omfatte
definere andre variabler for MQTT som klientnavn, mægleradresse, token -id
#define TOKEN "BBFF-************************************" // Dine Ubidots TOKEN#definere MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
char nyttelast [100]; char emne [150]; // opret variabel for at gemme token ID toke
Trin 5: Publicering af sensoraflæsninger til UbiDots
Opret variabler for at gemme forskellige sensordata og opret en char -variabel til at gemme emne
#define VARIABLE_LABEL_TEMPF "tempF" // Assosering af variabeletiketten #definere VARIABLE_LABEL_TEMPC "tempC" // Vurder variabeletiketten #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "variable" //
char emne1 [100];
char emne2 [100]; char emne3 [100];
offentliggøre dataene til det nævnte MQTT -emne, vil nyttelasten se ud som {"tempc": {value: "tempData"}}
sprintf (emne1, "%s", ""); sprintf (emne1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (nyttelast, "%s", ""); // Renser nyttelast sprintf (nyttelast, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Tilføjer værdien sprintf (nyttelast, "%s {" værdi / ":%s}", nyttelast, str_cTemp); // Tilføjer værdien sprintf (nyttelast, "%s}", nyttelast); // Luk ordbogens parenteser Serial.println (nyttelast); Serial.println (client.publish (emne1, nyttelast)? "Udgivet": "ikkeudgivet"); // Gør også det samme for andre emner
client.publish () offentliggør dataene til UbiDots
Trin 6: Visualisering af data
- Gå til Ubidots og log ind på din konto.
- Naviger til instrumentbrættet fra fanen Data, der er angivet øverst.
- Klik nu på ikonet "+" for at tilføje de nye widgets.
- Vælg en widget fra listen, og tilføj en variabel og enheder.
- Sensordataene kan visualiseres på instrumentbrættet ved hjælp af forskellige widgets.
Trin 7: Overordnet kode
Over -koden til HTML og ESP32 kan findes i dette GitHub -lager.
Credits
- ncd ESP32 breakout board.
- ncd trådløse tryk- og temperatursensorer
- pubber
- UbiDots
- Opgaveplanlægger
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Afsendelse af trådløse vibrations- og temperatursensordata til Excel ved hjælp af Node-RED: 25 trin
Afsendelse af trådløse vibrations- og temperatursensordata til Excel ved hjælp af Node-RED: Introduktion til NCD's Long Range IoT Industrial trådløse vibrations- og temperatursensor, der kan prale af op til en 2-mile rækkevidde ved brug af en trådløs mesh-netværksstruktur. Denne enhed indeholder en præcision 16-bit vibrations- og temperatursensor og trans
Strukturel sundhedsovervågning af civile infrastrukturer ved hjælp af trådløse vibrationssensorer: 8 trin
Strukturel sundhedsovervågning af civile infrastrukturer ved hjælp af trådløse vibrationssensorer: Forringelsen af den gamle bygning og den civile infrastruktur kan føre til dødelig og farlig situation. Den konstante overvågning af disse strukturer er obligatorisk. Strukturel sundhedsovervågning er en ekstremt vigtig metode til evaluering af
Visualisering af trådløse sensordata ved hjælp af Google -diagrammer: 6 trin
Visualisering af trådløse sensordata ved hjælp af Google -diagrammer: Forudsigelig analyse af maskinerne er meget nødvendig for at minimere maskinens nedetid. Regelmæssig kontrol hjælper med at øge maskinens driftstid og øger igen sin fejltolerance. Trådløs vibration og temperatur sen
4 -vejs trafiklys system ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: 7 trin (med billeder)
4 -vejs trafiklyssystem ved hjælp af 5 Arduinos og 5 NRF24L01 trådløse moduler: For lidt siden lavede jeg en instruerbar detalje med et par lyskryds på et brødbræt. Jeg lavede også en anden instruerbar, der viser de grundlæggende rammer for brug af et trådløst NRF24L01 modul. Dette fik mig til at tænke! Der er ret mange