Sadržaj:
- Korak 1: Specifikacija hardvera i softvera
- Korak 2: Bežični senzori pritiska i temperature
- Korak 3: Povezivanje na WiFi
- Korak 4: Postavljanje UbiDots -a na ESP32
- Korak 5: Objavljivanje očitanja senzora na UbiDots
- Korak 6: Vizualizacija podataka
- Korak 7: Opšti kod
Video: Objavljivanje podataka bežičnog senzora pritiska pomoću MQTT: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
ESP32 i ESP 8266 su vrlo poznati SoC -ovi u oblasti IoT -a. Ovo su neka vrsta blagodati za IoT projekte. ESP 32 je uređaj s integriranim WiFi i BLE. Samo dajte svoje SSID, lozinku i IP konfiguracije i integrirajte stvari u oblak. Ovdje, u ovom uputstvu, razmislit ćemo o nekim od osnovnih termina IoT -a, poput IoT platforme, MQTT -a, Captive portala itd. Pa idemo kroz to
- IoT arhitektura vrlo jednostavnim riječima sastoji se od ugrađenog uređaja i IoT platforme za stavljanje uređaja u oblak. Ovdje koristimo UbiDots IoT platformu za vizualizaciju podataka senzora.
- Upravljanje IP postavkama i korisničkim vjerodajnicama može biti glavobolja za korisnika. Šta ako korisnik želi promijeniti WiFi vjerodajnice? Šta ako korisnik želi promijeniti DHCP/statičku IP postavku? Svako ažuriranje ESP32 nije pouzdano, pa čak ni rješenje za ove probleme. Zato ćemo proći kroz zarobljeni portal radi spremanja vjerodajnica za WiFi i drugih konfiguracija.
- MQTT sada postaje vrlo uobičajen izraz u svijetu IoT -a. nadmašio je zahtjeve i odgovore (HTTP) od strane Publish and Subscribe zbog brze, robusne i vitke arhitekture.
Ovdje u ovom uputstvu ćemo pokazati.
- Davanje WiFi i MQTT vjerodajnica pomoću Captive Portala.
- Objavljivanje i pretplata na više podataka senzora na UbiDots.
- Očitavanje podataka senzora sa bežičnog senzora pritiska i temperature
- Hostovanje web obrasca sa ESP32.
- Čitanje i pisanje sa SPIFFS ESP32.
Korak 1: Specifikacija hardvera i softvera
Hardverske specifikacije
- ESP32 WiFi/BLE
- Bežični senzor pritiska i temperature
Specifikacije softvera
- Arduino IDE
- XCTU
- Labview Utility
Korak 2: Bežični senzori pritiska i temperature
Karakteristike
- Industrijski senzor za bežični temperaturni osjetnik za velike udaljenosti
- Radni opseg 0 do 14000 mbar -40 ° do +85 ° C (-40 ° do 185 ° F)
- Podesiva rezolucija unutrašnjeg proračuna pritiska 0,012 do 0,065 mbar
- Podesiva interna kalkulacija Temperaturna rezolucija 0,002 do 0,012 ° C
- Tačnost ± 2,5 mbar, ± 2 ° C
- Izlazi apsolutnog pritiska, relativnog pritiska i relativne nadmorske visine
- Domet do daljine od 2 milje sa antenom na vozilu
- Vrhunski LOS raspon do 28 milja s visoko pojačanim antenama
- Sučelje za Raspberry Pi, Microsoft® Azure®, Arduino i još mnogo toga
- Bežično mrežno umrežavanje pomoću DigiMesh® -a
Konfiguriranje bežičnog senzora pritiska i temperature pomoću Labview Utility -a i XCTU -a
Senzor radi u dva načina rada
- Način konfiguracije: Konfigurirajte Pan ID, kašnjenje, broj pokušaja itd. Više o ovome izlazi iz okvira ovog uputstva i bit će objašnjeno u sljedećim uputama.
- Način rada: Uređaj pokrećemo u načinu rada. Za analizu ovih vrijednosti koristimo Labview Utility
Ovo korisničko sučelje Labview prikazuje vrijednosti u lijepim grafikonima. Prikazuje trenutne i prošle vrijednosti. Možete otići na ovu vezu za preuzimanje korisničkog interfejsa Labview. kliknite na ikonu Pokreni u meniju odredišne stranice da biste prešli u način rada.
Korak 3: Povezivanje na WiFi
Zaštitni portal koristimo za spremanje WiFi vjerodajnica i za kretanje kroz IP postavke. Za detaljan uvod na zarobljeničkom portalu možete proći kroz sljedeće upute.
Zaštitni portal daje nam mogućnost izbora između statičkih i DHCP postavki. Samo unesite vjerodajnice poput statičkog IP -a, maske podmreže, pristupnika i bežični pristupnik senzora će se konfigurirati na tom IP -u.
Hostira se web stranica na kojoj se prikazuje popis dostupnih WiFi mreža i RSSI. Odaberite WiFi mrežu i lozinku i unesite submit. Vjerodajnice će se spremiti u EEPROM, a postavka IP -a u SPIFFS. Više o ovome možete pronaći u ovom uputstvu.
Korak 4: Postavljanje UbiDots -a na ESP32
Ovdje koristimo bežične senzore tlaka i temperature s uređajem ESP 32 za dobivanje podataka o temperaturi i vlažnosti. Šaljemo podatke na UbiDots koristeći MQTT protokol. MQTT slijedi mehanizam objavljivanja i pretplate umjesto tog zahtjeva i odgovora. Brži je i pouzdaniji od HTTP -a. Ovo funkcionira na sljedeći način.
- Koristimo Planer zadataka za planiranje zadatka poput preuzimanja podataka sa senzora, objavljivanja očitanja senzora, pretplate na temu MQTT.
- Prvo, uključite datoteke zaglavlja Raspoređivača zadataka, njegovu instancu i raspoređuje zadatke.
- Zakazali smo dva zadatka koji se odnose na dvije različite kontrolne operacije.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Zadaci ------------ // Taster tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Zadatak tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Zadatak 1 služi za očitavanje vrijednosti senzora. Ovaj zadatak radi 1 sekundu dok ne dosegne vremensko ograničenje od 10 sekundi.
- Kad Task1 istekne, povezujemo se s lokalnim Wifi i MQTT posrednikom.
- Sada je zadatak 2 omogućen i onemogućavamo zadatak 1
- Zadatak 2 je za objavljivanje podataka senzora u UbiDots MQTT brokeru, ovaj zadatak radi 20 sekundi dok ne dosegne vremensko ograničenje od 20 sekundi
- Kada Task2 istekne vremensko ograničenje Zadatak 1 je ponovo omogućen, a Task2 onemogućen. Ovdje opet dobivamo ažuriranu vrijednost i proces se nastavlja.
Očitavanje podataka senzora I2C
Dobijamo okvir od 29 bajtova od bežičnih senzora temperature i vlažnosti. Ovim okvirom se manipulira kako bi se dobili stvarni podaci o temperaturi i vlažnosti
if (Serial1.available ())
{data [0] = Serial1.read (); kašnjenje (k); if (data [0] == 0x7E) {while (! Serial1.available ()); za (i = 1; i <36; i ++) {podaci = Serial1.read (); kašnjenje (1); } if (data [15] == 0x7F) /////// za provjeru ispravnosti prijemnih podataka {if (data [22] == 0x06) //////// provjerite tip senzora je ispravno {int cTemp = ((((podaci [24]) * 256) + podaci [25])); int16_t abs_pressure = (((((uint16_t) (podaci [26]) << 8) | podaci [27])*0,001); int rlt_pressure = ((((podaci [28]) * 256) + podaci [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (podaci [30]) << 8) | podaci [31])*0,01); plovna baterija = ((podaci [18] * 256) + podaci [19]); plivajući napon = 0,00322 * baterija; Serial.print ("Broj senzora"); Serial.println (podaci [16]); Serial.print ("Tip senzora"); Serial.println (podaci [22]); Serial.print ("Verzija firmvera"); Serial.println (podaci [17]); Serial.print ("Temperatura u Celzijusima:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Apsolutni pritisak:"); Serial.println (aps_pritisak); Serial.print ("mbar"); Serial.print ("Relativni pritisak:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("mjerač"); Serial.print ("ADC vrijednost:"); Serial.println (baterija); Serial.print ("Napon baterije:"); Serial.print (napon); Serial.println ("\ n"); if (napon <1) {Serial.println ("Vrijeme za zamjenu baterije"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); kašnjenje (1); }}}}
Povezivanje na UbiDots MQTT API
Uključite datoteku zaglavlja za MQTT proces
#include
definirati druge varijable za MQTT poput imena klijenta, adrese brokera, ID tokena
#define TOKEN "BBFF-**********************************" // Your Ubidots TOKEN#define MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
nosivost char [100]; char tema [150]; // kreiramo varijablu za pohranu tokena ID tokena
Korak 5: Objavljivanje očitanja senzora na UbiDots
Kreirajte varijable za spremanje različitih podataka senzora i stvorite char varijablu za spremanje teme
#define VARIABLE_LABEL_TEMPF "tempF" // Dodjeljivanje oznake varijable #definiranje VARIABLE_LABEL_TEMPC "tempC" // Određivanje oznake varijable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label" vlažno "//
char topic1 [100];
char topic2 [100]; char topic3 [100];
objaviti podatke na spomenutu temu MQTT korisni teret će izgledati kao {"tempc": {vrijednost: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (korisni teret, "%s", ""); // čisti korisnički teret sprintf (korisni teret, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Dodaje vrijednost sprintf (korisni teret, "%s {" vrijednost / ":%s}", korisni teret, str_cTemp); // Dodaje vrijednost sprintf (korisni teret, "%s}", korisni teret); // Zatvara zagrade rječnika Serial.println (korisni teret); Serial.println (client.publish (topic1, korisni teret)? "Objavljeno": "nije objavljeno"); // Učinite isto i za drugu temu
client.publish () objavljuje podatke na UbiDots
Korak 6: Vizualizacija podataka
- Idite na Ubidots i prijavite se na svoj račun.
- Idite na nadzornu ploču s kartice Podaci navedene na vrhu.
- Sada kliknite ikonu "+" za dodavanje novih widgeta.
- Odaberite widget s popisa i dodajte varijablu i uređaje.
- Podaci senzora mogu se vizualizirati na nadzornoj ploči pomoću različitih widgeta.
Korak 7: Opšti kod
Over kod za HTML i ESP32 može se pronaći u ovom GitHub spremištu.
Krediti
- ncd ESP32 ploča za razbijanje.
- ncd bežični senzori pritiska i temperature
- pubsubclient
- UbiDots
- Planer zadataka
Preporučuje se:
Slanje podataka bežičnog senzora temperature i vlažnosti u Excel: 34 koraka
Slanje podataka bežičnog senzora temperature i vlažnosti u Excel: Ovdje koristimo NCD -ov senzor temperature i vlažnosti, ali koraci ostaju jednaki za bilo koji od ncd proizvoda, pa ako imate i druge ncd bežične senzore, slobodno ih promatrajte pored. Zaustavljanjem ovog teksta morate
Mjerenje količina vode pomoću senzora pritiska: 5 koraka
Mjerenje količina vode pomoću senzora pritiska: Senzor pritiska je korišten za mjerenje količine vode u rezervoaru
Slanje-IOT-podataka-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: 41 korak
Slanje-podataka-IOT-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: Predstavljamo NCD-ov dugoročni IoT osjetnik temperature i vlažnosti. Zahvaljujući rasponu do 28 milja i bežičnom mrežnom arhitekturom, ovaj senzor prenosi podatke o vlažnosti (± 1,7%) i temperaturi (± 0,3 ° C) u intervalima koje definira korisnik, spavajući
UbiDots-Povezivanje ESP32 i objavljivanje podataka s više senzora: 6 koraka
UbiDots-Povezivanje ESP32 i objavljivanje podataka s više senzora: ESP32 i ESP 8266 su vrlo poznati SoC u području IoT-a. To su neka vrsta blagodati za IoT projekte. ESP 32 je uređaj s integriranim WiFi i BLE. Samo dajte svoje SSID, lozinku i IP konfiguracije i integrirajte stvari u
Vizualizacija podataka bežičnog senzora pomoću Google karte: 6 koraka
Vizualizacija podataka bežičnog senzora pomoću Google tablica: Prediktivna analiza strojeva je vrlo potrebna kako bi se smanjili zastoji stroja. Redoviti pregledi pomažu u produžavanju radnog vremena mašine i povećavaju njenu toleranciju na greške. Bežični senzor vibracija i temperature