Turinys:
- 1 žingsnis: Aparatūros ir programinės įrangos specifikacija
- 2 žingsnis: belaidžiai slėgio ir temperatūros jutikliai
- 3 veiksmas: prisijunkite prie „WiFi“
- 4 veiksmas: „UbiDots“nustatymas ESP32
- 5 veiksmas: jutiklių rodmenų paskelbimas „UbiDots“
- 6 žingsnis: vizualizuokite duomenis
- 7 žingsnis: bendras kodas
Video: Belaidžio slėgio jutiklio duomenų publikavimas naudojant MQTT: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
ESP32 ir ESP 8266 yra labai pažįstami SoC IoT srityje. Tai savotiška palaima daiktų interneto projektams. ESP 32 yra įrenginys su integruotu „WiFi“ir BLE. Tiesiog nurodykite savo SSID, slaptažodį ir IP konfigūracijas ir integruokite dalykus į debesį. Šioje pamokoje mes apsvarstysime kai kurias pagrindines daiktų interneto sąlygas, tokias kaip daiktų interneto platforma, MQTT, nelaisvės portalai ir kt. Taigi pereikime prie jo
- „IoT Architecture“labai paprastais žodžiais susideda iš įterpto įrenginio ir „IoT“platformos, kad įrenginys būtų įtrauktas į debesį. Čia mes naudojame „UbiDots IoT“platformą jutiklių duomenims vizualizuoti.
- IP nustatymų ir vartotojo duomenų tvarkymas gali sukelti galvos skausmą vartotojui. Ką daryti, jei vartotojas nori pakeisti „WiFi“prisijungimo duomenis? Ką daryti, jei vartotojas nori pakeisti DHCP/statinio IP nustatymus? ESP32 mirksėjimas kiekvieną kartą nėra patikimas ir net nėra šių problemų sprendimas. Taigi mes eisime per uždarą portalą, kad išsaugotume „WiFi“prisijungimo duomenis ir kitas konfigūracijas.
- MQTT dabar tampa labai įprastu terminu daiktų interneto pasaulyje. ji pralenkė „Publish“ir „Subscribe“užklausas ir atsakymus (HTTP) dėl greitos, tvirtos ir paprastos architektūros.
Čia, šioje pamokoje, mes parodysime.
- „WiFi“ir MQTT įgaliojimų suteikimas naudojant „Captive Portal“.
- Kelių jutiklių duomenų publikavimas ir prenumeravimas „UbiDots“.
- Jutiklio duomenų skaitymas iš belaidžio slėgio ir temperatūros jutiklio
- Interneto formos priegloba iš ESP32.
- Skaitymas ir rašymas iš SPIFFS ESP32.
1 žingsnis: Aparatūros ir programinės įrangos specifikacija
Techninės įrangos specifikacija
- ESP32 WiFi/BLE
- Belaidis slėgio ir temperatūros jutiklis
Programinės įrangos specifikacija
- „Arduino IDE“
- XCTU
- „Labview Utility“
2 žingsnis: belaidžiai slėgio ir temperatūros jutikliai
funkcijos
- Pramoninio laipsnio jutiklis ilgo nuotolio belaidis slėgio temperatūros jutiklis
- Veikimo diapazonas nuo 0 iki 14000 mbar -40 ° iki +85 ° C (nuo -40 ° iki 185 ° F)
- Konfigūruojama vidinė skaičiavimo slėgio skiriamoji geba nuo 0,012 iki 0,065 mbar
- Konfigūruojama vidinė skaičiavimo temperatūros skiriamoji geba nuo 0,002 iki 0,012 ° C
- Tikslumas ± 2,5 mbar, ± 2 ° C
- Absoliutus slėgis, santykinis slėgis ir santykinis aukštis
- 2 mylių matomumo diapazonas su laive esančia antena
- Aukščiausios klasės LOS diapazonas iki 28 mylių su didelio stiprumo antenomis
- Sąsaja su „Raspberry Pi“, „Microsoft® Azure®“, „Arduino“ir kt
- Belaidis akių tinklas naudojant „DigiMesh®“
Belaidžio slėgio ir temperatūros jutiklio konfigūravimas naudojant „Labview Utility“ir „XCTU“
Jutiklis veikia dviem režimais
- Konfigūracijos režimas: sukonfigūruokite „Pan ID“, vėlavimą, pakartotinių bandymų skaičių ir tt
- Vykdymo režimas: įrenginys paleidžiamas veikimo režimu. Šiai vertei analizuoti naudojame „Labview Utility“
Ši „Labview“vartotojo sąsaja rodo vertes gražiose diagramose. Tai rodo dabartines ir praeities vertybes. Norėdami atsisiųsti „Labview“vartotojo sąsają, galite eiti į šią nuorodą. nukreipimo puslapio meniu spustelėkite piktogramą Vykdyti, kad pereitumėte į veikimo režimą.
3 veiksmas: prisijunkite prie „WiFi“
Mes naudojame uždarąjį portalą, norėdami išsaugoti „WiFi“prisijungimo duomenis ir slinkti per IP nustatymus. Norėdami gauti išsamų įvadą į nelaisvės portalą, galite perskaityti šią instrukciją.
Nepriklausomas portalas suteikia mums galimybę pasirinkti tarp statinio ir DHCP nustatymų. Tiesiog įveskite tokius įgaliojimus kaip statinis IP, potinklio kaukė, šliuzas ir belaidžio jutiklio šliuzas bus sukonfigūruoti tuo IP.
Priglobiamas tinklalapis, kuriame pateikiamas galimų „WiFi“tinklų ir RSSI sąrašas. Pasirinkite „WiFi“tinklą ir slaptažodį ir įveskite „Pateikti“. Įgaliojimai bus išsaugoti EEPROM, o IP nustatymai - SPIFFS. Daugiau apie tai galite rasti šioje instrukcijoje.
4 veiksmas: „UbiDots“nustatymas ESP32
Čia mes naudojame belaidžius slėgio ir temperatūros jutiklius su ESP 32 prietaisu, kad gautume temperatūros ir drėgmės duomenis. Mes siunčiame duomenis į „UbiDots“naudodami MQTT protokolą. MQTT vadovaujasi paskelbimo ir prenumeratos mechanizmu, o ne tuo prašymu ir atsakymu. Jis yra greitesnis ir patikimesnis nei HTTP. Tai veikia taip.
- Mes naudojame užduočių planuoklį, kad suplanuotume užduotį, pavyzdžiui, gauname duomenis iš jutiklių, skelbiame jutiklių rodmenis, užsiprenumeruojame MQTT temą.
- Pirma, įtraukite užduočių planavimo priemonės antraštės failus, jos egzempliorių ir suplanuokite užduotis.
- Mes suplanavome dvi užduotis, susijusias su dviem skirtingomis valdymo operacijomis.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Užduotys ------------ // Užduotis tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL ir & taskSensorDisable); Užduotis tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL ir & taskWiFiDisable);
- 1 užduotis skirta skaityti jutiklio vertę; ši užduotis vykdoma 1 sekundę, kol pasibaigs 10 sekundžių skirtasis laikas.
- Kai Task1 pasiekia savo laiką, mes prisijungiame prie vietinio „Wifi“ir „MQTT“brokerio.
- Dabar 2 užduotis įjungta ir mes išjungiame 1 užduotį
- 2 užduotis skirta jutiklių duomenims paskelbti „UbiDots MQTT“tarpininkui, ši užduotis vykdoma 20 sekundžių, kol pasibaigs 20 sekundžių skirtasis laikas
- Pasibaigus 2 užduočiai, 1 užduotis vėl įjungiama, o 2 užduotis išjungiama. Čia vėl gauname atnaujintą vertę ir procesas tęsiasi.
I2C jutiklio duomenų skaitymas
Mes gauname 29 baitų kadrą iš belaidžių temperatūros ir drėgmės jutiklių. Šiuo rėmeliu manipuliuojama, kad būtų gauti tikri temperatūros ir drėgmės duomenys
jei (Serial1.available ())
{duomenys [0] = Serial1.read (); vėlavimas (k); if (duomenys [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); uždelsimas (1); } if (duomenys [15] == 0x7F) ///////, kad patikrintumėte, ar gaunami duomenys teisingi {if (duomenys [22] == 0x06) //////// įsitikinkite, kad jutiklio tipas yra teisingas {int cTemp = ((((duomenys [24]) * 256) + duomenys [25])); int16_t abs_pressure = (((((uint16_t) (duomenys [26]) << 8) | duomenys [27])*0,001); int rlt_pressure = ((((duomenys [28]) * 256) + duomenys [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (duomenys [30]) << 8) | duomenys [31])*0,01); plūdinė baterija = ((duomenys [18] * 256) + duomenys [19]); plūdės įtampa = 0,00322 * baterija; Serial.print („Jutiklio numeris“); Serial.println (duomenys [16]); Serial.print („Jutiklio tipas“); Serial.println (duomenys [22]); Serial.print („Firmware Version“); Serial.println (duomenys [17]); Serial.print ("Temperatūra Celsijaus laipsniais:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absoliutus slėgis:"); Serial.println (abs_pressure); Serial.print („mbar“); Serial.print ("Santykinis slėgis:"); Serial.println (rlt_pressure); Serial.print („mbar“); Serial.print („Delta Altitude:“); Serial.println (delta_alt); Serijinis atspaudas („skaitiklis“); Serial.print ("ADC reikšmė:"); Serial.println (baterija); Serial.print ("Baterijos įtampa:"); Serijinis atspaudas (įtampa); Serial.println ("\ n"); if (įtampa <1) {Serial.println („Laikas pakeisti bateriją“); }}} else {for (i = 0; i <36; i ++) {Serial.print (duomenys ); Serial.print (","); uždelsimas (1); }}}}
Prisijungimas prie „UbiDots MQTT“API
Įtraukite MQTT proceso antraštės failą
#įtraukti
apibrėžti kitus MQTT kintamuosius, pvz., kliento vardą, tarpininko adresą, prieigos rakto ID
#define TOKEN "BBFF-***********************************" // Jūsų Ubidots TOKEN#define MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
anglies naudingoji apkrova [100]; char tema [150]; // sukurti kintamąjį, kad būtų išsaugotas prieigos rakto ID
5 veiksmas: jutiklių rodmenų paskelbimas „UbiDots“
Sukurkite kintamuosius skirtingiems jutiklių duomenims saugoti ir sukurkite char kintamąjį, kad išsaugotumėte temą
#define VARIABLE_LABEL_TEMPF "tempF" // Kintamosios etiketės priskyrimas #define VARIABLE_LABEL_TEMPC "tempC" // Kintamosios etiketės #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "drėgnos etiketės" priskyrimas // Assing
char tema1 [100];
char tema2 [100]; char tema3 [100];
paskelbti duomenis minėtoje MQTT temoje, naudingoji apkrova atrodys {"tempc": {value: "tempData"}}
sprintf (tema1, "%s", ""); sprintf (tema1, „%s%s“, „/v1.6/devices/“, DEVICE_LABEL); sprintf (naudingoji apkrova, „%s“, „“); // Išvalo naudingąją apkrovą sprintf (naudingoji apkrova, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Prideda vertę sprintf (naudingoji apkrova, "%s {" vertė / ":%s}", naudingoji apkrova, str_cTemp); // Prideda vertę sprintf (naudingoji apkrova, "%s}", naudingoji apkrova); // Uždaro žodyno skliaustus Serial.println (naudingoji apkrova); Serial.println (client.publish (tema1, naudingoji apkrova)? "Paskelbta": "nepaskelbta"); // Darykite tą patį ir kitai temai
client.publish () skelbia duomenis „UbiDots“
6 žingsnis: vizualizuokite duomenis
- Eikite į „Ubidots“ir prisijunkite prie savo paskyros.
- Viršuje esančiame skirtuke Duomenys eikite į informacijos suvestinę.
- Dabar spustelėkite „+“piktogramą, kad pridėtumėte naujų valdiklių.
- Iš sąrašo pasirinkite valdiklį ir pridėkite kintamąjį bei įrenginius.
- Jutiklio duomenis galima vizualizuoti prietaisų skydelyje naudojant skirtingus valdiklius.
7 žingsnis: bendras kodas
HTML ir ESP32 „Over“kodą galima rasti šioje „GitHub“saugykloje.
Kreditai
- ncd ESP32 pertraukimo plokštė.
- ncd belaidžiai slėgio ir temperatūros jutikliai
- pubsclubient
- „UbiDots“
- Darbų planuotojas
Rekomenduojamas:
Belaidžio temperatūros ir drėgmės jutiklio duomenų siuntimas į „Excel“: 34 veiksmai
Belaidžio temperatūros ir drėgmės jutiklio duomenų siuntimas į „Excel“: čia mes naudojame NCD temperatūros ir drėgmės jutiklį, tačiau bet kurio ncd produkto veiksmai išlieka vienodi, taigi, jei turite kitų ncd belaidžių jutiklių, stebėkite šalia. Sustabdydami šį tekstą turite
Belaidžio vibracijos ir temperatūros jutiklio duomenų siuntimas į „Excel“naudojant „Node-RED“: 25 veiksmai
Belaidžio vibracijos ir temperatūros jutiklio duomenų siuntimas į „Excel“naudojant „Node-RED“: pristatome NCD „Long Range IoT Industrial“belaidį vibracijos ir temperatūros jutiklį, kuris gali pasigirti iki 2 mylių atstumu naudojant belaidžio tinklo tinklo struktūrą. Šiame įrenginyje yra tikslus 16 bitų vibracijos ir temperatūros jutiklis
„IoT“bevielio belaidžio temperatūros ir drėgmės jutiklio duomenų siuntimas į „Google“lapą: 39 žingsniai
„IoT“didelio nuotolio belaidžio temperatūros ir drėgmės jutiklių duomenų siuntimas į „Google“lapą: čia naudojame NCD temperatūros ir drėgmės jutiklį, tačiau bet kurio ncd produkto veiksmai išlieka vienodi, taigi, jei turite kitų belaidžių jutiklių, stebėkite šalia šalia. Sustabdydami šį tekstą turite
„IOT“belaidžio temperatūros ir drėgmės jutiklio duomenų siuntimas į „MySQL“: 41 žingsnis
„IOT“belaidžio temperatūros ir drėgmės jutiklio duomenų siuntimas į „MySQL“: pristatome NCD ilgo nuotolio IoT temperatūros ir drėgmės jutiklį. Šis jutiklis, turintis iki 28 mylių diapazoną ir belaidžio tinklo tinklo architektūrą, perduoda drėgmės (± 1,7%) ir temperatūros (± 0,3 ° C) duomenis vartotojo nustatytais intervalais, miegodamas
Belaidžio jutiklio duomenų vizualizavimas naudojant „Google“diagramas: 6 žingsniai
Belaidžio jutiklio duomenų vizualizavimas naudojant „Google“diagramas: Norint sumažinti mašinos prastovas, labai reikalinga numatoma mašinų analizė. Reguliarus tikrinimas padeda padidinti mašinos veikimo laiką ir savo ruožtu padidina jos gedimų toleranciją. Belaidis vibracijos ir temperatūros jutiklis