Kazalo:
- 1. korak: Specifikacije strojne in programske opreme
- Korak: Brezžični senzorji tlaka in temperature
- 3. korak: Povežite se z WiFi
- 4. korak: Nastavitev UbiDots na ESP32
- 5. korak: objava odčitkov senzorjev v UbiDots
- 6. korak: Vizualizacija podatkov
- 7. korak: Splošna koda
Video: Objavljanje podatkov brezžičnega senzorja tlaka z uporabo MQTT: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
ESP32 in ESP 8266 sta zelo znana SoC na področju interneta stvari. To je nekakšen dar za projekte IoT. ESP 32 je naprava z vgrajenim WiFi in BLE. Samo podajte svoje nastavitve SSID, geslo in IP ter stvari vključite v oblak. Tukaj, v tem navodilu, bomo razmislili o nekaterih osnovnih pogojih interneta stvari, kot so platforma IoT, MQTT, zaprti portali itd.
- Arhitektura IoT z zelo preprostimi besedami je sestavljena iz vgrajene naprave in platforme IoT, ki napravo postavi v oblak. Tukaj uporabljamo platformo UbiDots IoT za vizualizacijo podatkov senzorja.
- Upravljanje nastavitev IP in uporabniških poverilnic je lahko za uporabnika glavobol. Kaj pa, če želi uporabnik spremeniti poverilnice WiFi? Kaj pa, če želi uporabnik preklopiti nastavitve DHCP/Statični IP? Vsakič utripanje ESP32 ni zanesljivo in niti ni rešitev za te težave. Tako bomo šli skozi zaporni portal, da shranimo poverilnice WiFi in druge konfiguracije.
- MQTT postaja zelo pogost izraz v svetu IoT. zaradi hitre, robustne in vitke arhitekture je presegel zahteve in odzive (HTTP) s strani Publish and Subscribe.
Tukaj v tem navodilu bomo pokazali.
- Dajanje poverilnic za WiFi in MQTT z uporabo Captive Portal.
- Objavljanje in naročanje več podatkov senzorjev na UbiDots.
- Branje podatkov tipala z brezžičnega senzorja tlaka in temperature
- Gostovanje spletnega obrazca iz ESP32.
- Branje in pisanje iz SPIFFS ESP32.
1. korak: Specifikacije strojne in programske opreme
Specifikacije strojne opreme
- ESP32 WiFi/BLE
- Brezžični senzor tlaka in temperature
Specifikacije programske opreme
- Arduino IDE
- XCTU
- Pripomoček Labview
Korak: Brezžični senzorji tlaka in temperature
Lastnosti
- Industrijski senzor za dolgoročni brezžični temperaturni senzor za dolgi doseg
- Delovno območje 0 do 14000 mbar -40 ° do +85 ° C (-40 ° do 185 ° F)
- Nastavljiva ločljivost tlaka za notranji izračun 0,012 do 0,065 mbar
- Nastavljiva temperaturna ločljivost za notranji izračun 0,002 do 0,012 ° C
- Natančnost ± 2,5 mbar, ± 2 ° C
- Absolutni tlak, relativni tlak in relativna sprememba nadmorske višine
- Domet 2-milimetrske proge z vgrajeno anteno
- Vrhunski doseg LOS do 28 milj z visoko ojačnimi antenami
- Vmesnik za Raspberry Pi, Microsoft® Azure®, Arduino in drugo
- Brezžično mrežno omrežje z uporabo DigiMesh®
Konfiguriranje brezžičnega senzorja tlaka in temperature z uporabo Labview Utility in XCTU
Senzor deluje v dveh načinih
- Konfiguracijski način: Konfigurirajte ID Pan, zakasnitev, število poskusov itd. Več o tem presega obseg tega navodila in bo razloženo v naslednjih navodilih.
- Način delovanja: Napravo izvajamo v načinu delovanja. Za analizo teh vrednosti uporabljamo pripomoček Labview Utility
Ta uporabniški vmesnik Labview prikazuje vrednosti v lepih grafih. Prikazuje trenutne in pretekle vrednosti. Na to povezavo lahko prenesete uporabniški vmesnik Labview. v meniju ciljne strani kliknite ikono Zaženi, da odprete način delovanja.
3. korak: Povežite se z WiFi
Portal za zaščito uporabljamo za shranjevanje poverilnic WiFi in lebdenje med nastavitvami IP. Za podroben uvod na portalu za ujetnike si oglejte naslednja navodila.
Zaporni portal nam daje možnost izbire med statičnimi in DHCP nastavitvami. Samo vnesite poverilnice, kot so statični IP, maska podomrežja, prehod in brezžični senzorski prehod bo konfiguriran na tem IP -ju.
Gostuje spletna stran, na kateri je seznam z razpoložljivimi omrežji WiFi in RSSI. Izberite omrežje WiFi in geslo ter vnesite submit. Poverilnice bodo shranjene v EEPROM, nastavitev IP pa v SPIFFS. Več o tem najdete v tem navodilu.
4. korak: Nastavitev UbiDots na ESP32
Tukaj uporabljamo brezžične senzorje tlaka in temperature z napravo ESP 32, da dobimo podatke o temperaturi in vlažnosti. Podatke pošiljamo na UbiDots s protokolom MQTT. MQTT sledi mehanizmu objave in naročnine in ne tej zahtevi in odgovoru. Je hitrejši in zanesljivejši od HTTP. To deluje na naslednji način.
- Za načrtovanje naloge uporabljamo načrtovalnik opravil, na primer pridobivanje podatkov iz senzorjev, objavo odčitkov senzorjev, naročanje na temo MQTT.
- Najprej vključite datoteke glave razporejevalnika opravil, njegov primerek in razporedi opravila.
- Načrtovali smo dve nalogi, ki se nanašata na dve različni operaciji nadzora.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Opravila ------------ // Task tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL in & taskSensorDisable); Opravilo tWiFi (10* TASK_SECOND, TASK_FOREVER in & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- Naloga 1 je za branje vrednosti senzorja, ki traja 1 sekundo, dokler ne doseže časovne omejitve 10 sekund.
- Ko poteče Task1, se povezujemo z lokalnim posrednikom Wifi in MQTT.
- Zdaj je 2. naloga omogočena in onemogočamo 1.
- Naloga 2 je za objavo podatkov senzorja posredniku UbiDots MQTT, to opravilo traja 20 sekund, dokler ne doseže časovne omejitve 20 sekund
- Ko Task2 poteče, se 1. naloga znova omogoči, Task2 pa onemogoči. Tu spet dobivamo posodobljeno vrednost in postopek se nadaljuje.
Branje podatkov senzorja I2C
Od brezžičnih senzorjev temperature in vlažnosti dobimo 29-bajtni okvir. Ta okvir se manipulira, da dobite podatke o dejanski temperaturi in vlažnosti
če (Serial1.available ())
{podatki [0] = Serial1.read (); zamuda (k); if (podatki [0] == 0x7E) {while (! Serial1.available ()); za (i = 1; i <36; i ++) {podatki = Serial1.read (); zamuda (1); } if (data [15] == 0x7F) ///////, da preverite, ali so sprejemljivi podatki pravilni {if (data [22] == 0x06) //////// se prepričajte, da je tip senzorja je pravilen {int cTemp = ((((podatki [24]) * 256) + podatki [25])); int16_t abs_pressure = (((((uint16_t) (podatki [26]) << 8) | podatki [27])*0,001); int rlt_pressure = ((((podatki [28]) * 256) + podatki [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (podatki [30]) << 8) | podatki [31])*0,01); plavajoča baterija = ((podatki [18] * 256) + podatki [19]); plovna napetost = 0,00322 * baterija; Serial.print ("Številka senzorja"); Serial.println (podatki [16]); Serial.print ("Vrsta senzorja"); Serial.println (podatki [22]); Serial.print ("Različica vdelane programske opreme"); Serial.println (podatki [17]); Serial.print ("Temperatura v Celzijusi:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absolutni tlak:"); Serial.println (abs_pritisk); Serial.print ("mbar"); Serial.print ("Relativni tlak:"); Serial.println (rlt_pritisk); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("meter"); Serial.print ("vrednost ADC:"); Serial.println (baterija); Serial.print ("Napetost akumulatorja:"); Serial.print (napetost); Serial.println ("\ n"); if (napetost <1) {Serial.println ("Čas za zamenjavo baterije"); }}} else {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); zamuda (1); }}}}
Povezovanje z API -jem UbiDots MQTT
Vključite datoteko glave za postopek MQTT
#vključi
določite druge spremenljivke za MQTT, kot so ime odjemalca, naslov posrednika, ID žetona
#define TOKEN "BBFF-**********************************" // Your Ubidots TOKEN#define MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
obremenitev char [100]; char tema [150]; // ustvari spremenljivko za shranjevanje žetona ID žetona
5. korak: objava odčitkov senzorjev v UbiDots
Ustvarite spremenljivke za shranjevanje različnih podatkov senzorjev in ustvarite spremenljivko char za shranjevanje teme
#define VARIABLE_LABEL_TEMPF "tempF" // Določanje oznake spremenljivke #define VARIABLE_LABEL_TEMPC "tempC" // Določanje oznake spremenljivke #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label" humid "// Assing
char topic1 [100];
char topic2 [100]; char topic3 [100];
objavi podatke na omenjeno temo MQTT, kar bo videti kot {"tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (tema1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (koristna obremenitev, "%s", ""); // Počisti koristno obremenitev sprintf (koristna obremenitev, "{"%s / ":", VARIABLE_LABEL_TEMPC); // doda vrednost sprintf (koristna obremenitev, "%s {" vrednost / ":%s}", koristna obremenitev, str_cTemp); // doda vrednost sprintf (koristna obremenitev, "%s}", koristna obremenitev); // Zapira slovarske oklepaje Serial.println (koristna obremenitev); Serial.println (client.publish (topic1, koristna obremenitev)? "Objavljeno": "ni objavljeno"); // Enako storite tudi za drugo temo
client.publish () objavi podatke v UbiDots
6. korak: Vizualizacija podatkov
- Pojdite na Ubidots in se prijavite v svoj račun.
- Pomaknite se do nadzorne plošče na zavihku Podatki, ki je naveden na vrhu.
- Zdaj kliknite ikono "+", da dodate nove pripomočke.
- Izberite gradnik s seznama in dodajte spremenljivko in naprave.
- Podatke senzorja si lahko ogledate na armaturni plošči z različnimi pripomočki.
7. korak: Splošna koda
Kodo Over za HTML in ESP32 najdete v tem skladišču GitHub.
Krediti
- ncd ESP32 odklopna plošča.
- ncd brezžični senzorji tlaka in temperature
- pubsubclient
- UbiDots
- Načrtovalnik opravil
Priporočena:
Pošiljanje podatkov brezžičnega senzorja temperature in vlažnosti v Excel: 34 korakov
Pošiljanje podatkov brezžičnega senzorja temperature in vlažnosti v Excel: tukaj uporabljamo senzor temperature in vlažnosti NCD, vendar koraki ostajajo enaki za kateri koli ncd izdelek, zato če imate poleg brezžičnih senzorjev ncd poleg tega tudi izkušnje. S prekinitvijo tega besedila morate
Pošiljanje podatkov brezžičnega senzorja vibracij in temperature v Excel z uporabo Node-RED: 25 korakov
Pošiljanje podatkov brezžičnega senzorja vibracij in temperature v Excel z uporabo Node-RED: Predstavljamo NCD-jev brezžični industrijski brezžični senzor za vibracije in temperaturo IoT, ki se ponaša z uporabo brezžične mrežne strukture do 2 milj. Ta naprava vključuje natančen 16-bitni senzor vibracij in temperature, ki
Pošiljanje podatkov brezžičnega senzorja temperature in vlažnosti IoT za velike razdalje v Googlov list: 39 korakov
Pošiljanje podatkov brezžičnega senzorja temperature in vlažnosti IoT za velike razdalje v Googlov list: tukaj uporabljamo senzor temperature in vlažnosti NCD, vendar koraki ostajajo enaki za kateri koli izdelek ncd, zato če imate druge brezžične senzorje ncd, si oglejte poleg poleg. S prekinitvijo tega besedila morate
Pošiljanje-podatkov-od-IOT-brezžičnega-senzorja temperature in-vlažnosti-do-MySQL: 41 korakov
Pošiljanje podatkov-of-IOT-brezžičnega-senzorja temperature in-vlažnosti-v-MySQL: Predstavljamo NCD-jev senzor za temperaturo in vlažnost IoT na dolge razdalje. Ponaša se z dosegom do 28 milj in brezžično mrežno arhitekturo. Ta senzor prenaša podatke o vlažnosti (± 1,7%) in temperaturi (± 0,3 ° C) v intervalih, ki jih določi uporabnik, med spanjem
Vizualizacija podatkov brezžičnega senzorja z uporabo Google Charts: 6 korakov
Vizualizacija podatkov brezžičnega senzorja z uporabo Googlovih kart: Predvidevalna analiza strojev je zelo potrebna, da se čim manj zmanjšajo izpadi stroja. Redni pregledi pomagajo podaljšati čas delovanja stroja in povečajo njegovo toleranco napak. Brezžično zaznavanje vibracij in temperature