Sadržaj:
- Korak 1: Specifikacija hardvera i softvera
- Korak 2: Bežični osjetnici tlaka 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ći kod
Video: Objavljivanje podataka o bežičnom osjetniku tlaka pomoću MQTT -a: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
ESP32 i ESP 8266 vrlo su poznati SoC u području IoT -a. To su svojevrsna blagodat za IoT projekte. ESP 32 je uređaj s integriranim WiFi -om i BLE -om. Samo dajte svoje SSID, lozinku i IP konfiguracije i integrirajte stvari u oblak. Ovdje, u ovom uputstvu, razmislit ćemo o nekim od osnovnih pojmova IoT -a poput IoT platforme, MQTT -a, zarobljenih 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. Što ako korisnik želi promijeniti WiFi vjerodajnice? Što ako korisnik želi promijeniti postavke DHCP -a/statičkog IP -a? Svako bljeskanje 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, pokazat ćemo.
- Davanje vjerodajnica za WiFi i MQTT pomoću Captive Portala.
- Objavljivanje i pretplata više podataka senzora na UbiDots.
- Očitavanje podataka senzora s bežičnog osjetnika tlaka i temperature
- Hosting web obrasca s ESP32.
- Čitanje i pisanje s SPIFFS ESP32.
Korak 1: Specifikacija hardvera i softvera
Specifikacija hardvera
- ESP32 WiFi/BLE
- Bežični senzor pritiska i temperature
Specifikacije softvera
- Arduino IDE
- XCTU
- Labview Utility
Korak 2: Bežični osjetnici tlaka i temperature
Značajke
- Bežični osjetnik temperature tlaka industrijskog stupnja za velike udaljenosti
- Radni raspon 0 do 14000 mbar -40 ° do +85 ° C (-40 ° do 185 ° F)
- Podesiva rezolucija unutarnjeg proračuna tlaka 0,012 do 0,065 mbar
- Interna proračunska temperaturna rezolucija koja se može konfigurirati 0,002 do 0,012 ° C
- Točnost ± 2,5 mbar, ± 2 ° C
- Izlazi apsolutnog tlaka, relativnog tlaka i relativne promjene visine
- Domet do daljine 2 milje s 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 osjetnika tlaka 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 sučelja Labview. kliknite ikonu Pokreni na izborniku odredišne stranice da biste prešli u način rada.
Korak 3: Povezivanje na WiFi
Koristimo zarobljeni portal za spremanje vjerodajnica za WiFi i lebdenje kroz postavke IP -a. 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 tome 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 dohvaćanja 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 traje 1 sekundu dok ne dosegne vremensko ograničenje od 10 sekundi.
- Kad Task1 istekne, povezujemo se s lokalnim Wifi i MQTT posrednikom.
- Sada je omogućen 2. zadatak i onemogućujemo 1. zadatak
- Zadatak 2 služi za objavljivanje podataka senzora UbiDots MQTT posredniku, ovaj zadatak traje 20 sekundi dok ne dosegne vremensko ograničenje od 20 sekundi
- Kad Task2 istekne vrijeme, Zadatak 1 je ponovno omogućen, a Task2 onemogućen. Ovdje opet dobivamo ažuriranu vrijednost i proces se nastavlja.
Očitavanje podataka senzora I2C
Od bežičnih senzora temperature i vlažnosti dobivamo okvir od 29 bajtova. Ovim se okvirom 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 (); odgoda (1); } if (data [15] == 0x7F) /////// da provjerite jesu li primljeni podaci točni {if (data [22] == 0x06) //////// provjerite vrstu senzora je točan {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]); plovni 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:"); Serijski.ispis (cTemp); Serial.println ("C"); Serial.print ("Apsolutni tlak:"); Serial.println (aps_pritisak); Serial.print ("mbar"); Serial.print ("Relativni tlak:"); Serial.println (rlt_pritisak); 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:"); Serijski.ispis (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 (","); odgoda (1); }}}}
Povezivanje s UbiDots MQTT API
Uključite datoteku zaglavlja za proces MQTT
#uključi
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]; // stvoriti varijablu za pohranu tokena ID tokena
Korak 5: Objavljivanje očitanja senzora na UbiDots
Izradite varijable za spremanje različitih podataka senzora i stvorite varijablu char za spremanje teme
#define VARIABLE_LABEL_TEMPF "tempF" // Određivanje oznake varijable #define VARIABLE_LABEL_TEMPC "tempC" // Određivanje oznake varijable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label
char topic1 [100];
char topic2 [100]; char topic3 [100];
objaviti podatke na spomenutu temu MQTT -a korisni teret će izgledati kao {"tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (korisni teret, "%s", ""); // Čisti sprintf korisnog tereta (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ći kod
Over kod za HTML i ESP32 može se pronaći u ovom GitHub spremištu.
Zasluge
- ncd ESP32 ploča za probijanje.
- ncd bežični senzori tlaka i temperature
- pubsubclient
- UbiDots
- Planer zadataka
Preporučeni:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom - DHT11 Simulator zapisivača podataka u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom | Simulacija DHT11 zapisničara u Proteusu: Uvod: Bok, ovdje Liono Maker, ovdje je veza na YouTube. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sustavima. Zapisnik podataka: Zapisnik podataka (ujedno i zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tijekom vremena s
Stvaranje upozorenja e-poštom o NCD bežičnom osjetniku temperature i vlažnosti pomoću Node-Reda: 22 koraka
Stvaranje upozorenja e-poštom za bežični senzor temperature i vlažnosti NCD-a pomoću Node-Reda: ovdje koristimo NCD-ov senzor temperature i vlažnosti, ali koraci ostaju jednaki za bilo koji od ncd proizvoda, pa ako imate druge ncd bežične senzore, slobodno promatrati pored pored. Zaustavljanjem ovog teksta morate
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 vrlo su 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
EAL-Industri4.0-RFID skupljanje podataka do baze podataka: 10 koraka (sa slikama)
EAL-Industri4.0-RFID skupljanje podataka u bazi podataka: Dette projekt omhandler opsamling iz v æ gtdata, registracija od identiteta vha. RFID, zaostajanje podataka u MySQL bazi podataka. node-RED, samo ažuriranje i ponašanje u skladu s opsamlede podacima u et C# programu formiranim u aplikaciji Windows Form
Samostalno objavljivanje e-knjige o aplikaciji za iPhone: 6 koraka
Samostalno objavljivanje e-knjige o aplikaciji za iPhone: Moje ime je Noble Smith i ja sam objavljeni dramaturg, su-izvršni producent nagrađivanog filma Protagonist (Netflix), objavljeni romanopisac (audio knjiga iTunes ukradena od Cigana) i autor knjige e -knjiga iPhone aplikacija Warrior (iTunes App Store) .Getti