Satura rādītājs:
- 1. darbība. Aparatūras un programmatūras specifikācija
- 2. darbība. Bezvadu spiediena un temperatūras sensori
- 3. darbība: izveidojiet savienojumu ar WiFi
- 4. darbība. UbiDots iestatīšana uz ESP32
- 5. darbība. Sensora rādījumu publicēšana UbiDots
- 6. darbība: datu vizualizācija
- 7. solis: vispārējais kods
Video: Bezvadu spiediena sensora datu publicēšana, izmantojot MQTT: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
ESP32 un ESP 8266 ir ļoti pazīstami SoC IoT jomā. Tie ir sava veida svētība IoT projektiem. ESP 32 ir ierīce ar integrētu WiFi un BLE. Vienkārši norādiet savu SSID, paroli un IP konfigurāciju un integrējiet lietas mākonī. Šeit, šajā pamācībā, mēs pārdomāsim dažus IoT pamatnoteikumus, piemēram, IoT platformu, MQTT, nebrīves portālus utt. Tāpēc ļaujiet mums to apskatīt
- IoT arhitektūra ļoti vienkāršos vārdos sastāv no iegultas ierīces un IoT platformas, lai ievietotu ierīci mākonī. Šeit mēs izmantojam UbiDots IoT platformu, lai vizualizētu sensoru datus.
- IP iestatījumu un lietotāja akreditācijas datu pārvaldība lietotājam var sagādāt galvassāpes. Ko darīt, ja lietotājs vēlas mainīt WiFi akreditācijas datus? Ko darīt, ja lietotājs vēlas mainīt DHCP/statiskā IP iestatījumus? ESP32 mirgošana katru reizi nav uzticama un pat nav risinājums šīm problēmām. Tāpēc mēs apmeklēsim nebrīvē pieejamo portālu, lai saglabātu WiFi akreditācijas datus un citas konfigurācijas.
- MQTT tagad kļūst par ļoti izplatītu terminu IoT pasaulē. tā ir pārsniegusi publicēšanas un abonēšanas pieprasījumus un atbildes (HTTP), pateicoties ātrai, stabilai un vienkāršai arhitektūrai.
Šeit, šajā pamācībā, mēs demonstrēsim.
- WiFi un MQTT akreditācijas datu piešķiršana, izmantojot Captive Portal.
- Vairāku sensoru datu publicēšana un abonēšana UbiDots.
- Sensora datu nolasīšana no bezvadu spiediena un temperatūras sensora
- Tīmekļa veidlapas mitināšana no ESP32.
- Lasīšana un rakstīšana no SPIFFS ESP32.
1. darbība. Aparatūras un programmatūras specifikācija
Aparatūras specifikācija
- ESP32 WiFi/BLE
- Bezvadu spiediena un temperatūras sensors
Programmatūras specifikācija
- Arduino IDE
- XCTU
- Labview utilīta
2. darbība. Bezvadu spiediena un temperatūras sensori
Iespējas
- Rūpnieciskās klases sensora bezvadu spiediena temperatūras sensors
- Darbības diapazons no 0 līdz 14000 mbar -40 ° līdz +85 ° C (-40 ° līdz 185 ° F)
- Konfigurējama iekšējā aprēķina spiediena izšķirtspēja no 0,012 līdz 0,065 mbar
- Konfigurējama iekšējā aprēķina temperatūras izšķirtspēja no 0,002 līdz 0,012 ° C
- Precizitāte ± 2,5 mbar, ± 2 ° C
- Absolūtā spiediena, relatīvā spiediena un relatīvā augstuma maiņas rezultāti
- 2 jūdžu redzamības diapazons ar borta antenu
- Izcils LOS diapazons līdz 28 jūdzēm ar augstas stiprības antenām
- Saskarne ar Raspberry Pi, Microsoft® Azure®, Arduino un citiem
- Bezvadu tīkla tīklošana, izmantojot DigiMesh®
Bezvadu spiediena un temperatūras sensora konfigurēšana, izmantojot Labview Utility un XCTU
Sensors darbojas divos režīmos
- Konfigurācijas režīms: konfigurējiet Pan ID, aizkavi, atkārtotu mēģinājumu skaitu utt. Vairāk par šo instrukciju nav ietverta un tiks izskaidrota nākamajā pamācībā.
- Palaist režīmu: Mēs darbinām ierīci darbības režīmā. Un, lai analizētu šīs vērtības, mēs izmantojam Labview Utility
Šis Labview lietotāja interfeiss parāda vērtības jaukos grafikos. Tas parāda pašreizējās, kā arī pagātnes vērtības. Varat lejupielādēt Labview lietotāja saskarni, noklikšķinot uz šīs saites. lai nokļūtu darbības režīmā, galvenās lapas izvēlnē noklikšķiniet uz ikonas Palaist.
3. darbība: izveidojiet savienojumu ar WiFi
Mēs izmantojam nebrīvē pieejamo portālu, lai saglabātu WiFi akreditācijas datus un virzītu kursoru, izmantojot IP iestatījumus. Lai iegūtu detalizētu ievadu sagūstītajā portālā, varat izlasīt tālāk sniegtos norādījumus.
Fiksētais portāls dod mums iespēju izvēlēties starp statiskajiem un DHCP iestatījumiem. Vienkārši ievadiet akreditācijas datus, piemēram, statisko IP, apakštīkla masku, vārteju un bezvadu sensora vārteju, kas tiks konfigurēta šajā IP.
Tiek mitināta tīmekļa lapa, kurā ir saraksts ar pieejamajiem WiFi tīkliem un RSSI. Atlasiet WiFi tīklu un paroli un ievadiet Iesniegt. Akreditācijas dati tiks saglabāti EEPROM, un IP iestatījums tiks saglabāts SPIFFS. Vairāk par to var atrast šajā pamācībā.
4. darbība. UbiDots iestatīšana uz ESP32
Šeit mēs izmantojam bezvadu spiediena un temperatūras sensorus ar ierīci ESP 32, lai iegūtu temperatūras un mitruma datus. Mēs nosūtām datus uz UbiDots, izmantojot MQTT protokolu. MQTT ievēro publicēšanas un abonēšanas mehānismu, nevis šo pieprasījumu un atbildi. Tas ir ātrāks un uzticamāks par HTTP. Tas darbojas šādi.
- Mēs izmantojam uzdevumu plānotāju, lai ieplānotu uzdevumu, piemēram, datu iegūšana no sensoriem, sensora rādījumu publicēšana, tēma MQTT abonēšana.
- Pirmkārt, iekļaujiet uzdevumu plānotāja galvenes failus, tā instanci un plāno uzdevumus.
- Mēs esam ieplānojuši divus uzdevumus, kas attiecas uz divām dažādām kontroles darbībām.
#define _TASK_TIMEOUT#ietver plānotāju ts; // --------- Uzdevumi ------------ // Uzdevums tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL un & taskSensorDisable); Uzdevums tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL un & taskWiFiDisable);
- 1. uzdevums ir sensora vērtības nolasīšanai, šis uzdevums darbojas 1 sekundi, līdz tiek sasniegts taimauts 10 sekundes.
- Kad Task1 sasniedz savu laiku, mēs izveidojam savienojumu ar vietējo Wifi un MQTT brokeri.
- Tagad 2. uzdevums ir iespējots, un mēs atspējojam 1. uzdevumu
- 2. uzdevums ir sensoru datu publicēšana UbiDots MQTT brokerī, šis uzdevums tiek izpildīts 20 sekundes, līdz tiek sasniegts 20 sekunžu taimauts
- Kad 2. uzdevums ir beidzies, 1. uzdevums ir atkal iespējots un 2. uzdevums ir atspējots. Arī šeit mēs iegūstam atjaunināto vērtību, un process turpinās.
I2C sensora datu nolasīšana
Mēs iegūstam 29 baitu rāmi no bezvadu temperatūras un mitruma sensoriem. Šis rāmis tiek manipulēts, lai iegūtu faktiskos temperatūras un mitruma datus
ja (Serial1.available ())
{dati [0] = Sērijas1.lasījums (); kavēšanās (k); if (dati [0] == 0x7E) {while (! Serial1.available ()); par (i = 1; i <36; i ++) {data = Serial1.read (); kavēšanās (1); } ja (dati [15] == 0x7F) /////// lai pārbaudītu, vai recesīvie dati ir pareizi {if (dati [22] == 0x06) //////// pārliecinieties, vai sensora tips ir pareizs {int cTemp = ((((dati [24]) * 256) + dati [25])); int16_t abs_pressure = (((((uint16_t) (dati [26]) << 8) | dati [27])*0,001); int rlt_spiediens = ((((dati [28]) * 256) + dati [29]) * 0,001); int16_t delta_alt = (((((uint16_t) (dati [30]) << 8) | dati [31])*0,01); pludiņa akumulators = ((dati [18] * 256) + dati [19]); pludiņa spriegums = 0,00322 * akumulators; Serial.print ("Sensora numurs"); Serial.println (dati [16]); Serial.print ("Sensora tips"); Serial.println (dati [22]); Serial.print ("Programmaparatūras versija"); Serial.println (dati [17]); Serial.print ("Temperatūra pēc Celsija:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Absolūtais spiediens:"); Sērijas.println (abs_spiediens); Serial.print ("mbar"); Serial.print ("Relatīvais spiediens:"); Sērijas.println (rlt_spiediens); Serial.print ("mbar"); Serial.print ("Delta augstums:"); Serial.println (delta_alt); Sērijas nospiedums ("skaitītājs"); Serial.print ("ADC vērtība:"); Serial.println (akumulators); Serial.print ("Akumulatora spriegums:"); Sērijas nospiedums (spriegums); Serial.println ("\ n"); ja (spriegums <1) {Serial.println ("Laiks nomainīt akumulatoru"); }}} cits {par (i = 0; i <36; i ++) {Serial.print (dati ); Serial.print (","); kavēšanās (1); }}}}
Savienojuma izveide ar UbiDots MQTT API
Iekļaujiet galvenes failu MQTT procesam
#iekļaut
definējiet citus MQTT mainīgos, piemēram, klienta vārdu, brokera adresi, marķiera ID
#define TOKEN "BBFF-***********************************" // Jūsu Ubidots TOKEN#define MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
ogļu lietderīgā krava [100]; char tēma [150]; // izveidot mainīgo, lai saglabātu marķiera ID
5. darbība. Sensora rādījumu publicēšana UbiDots
Izveidojiet mainīgos, lai saglabātu dažādus sensoru datus, un izveidojiet char mainīgo, lai saglabātu tēmu
#define VARIABLE_LABEL_TEMPF "tempF" // Mainīgā etiķetes piešķiršana #define VARIABLE_LABEL_TEMPC "tempC" // Mainīgā etiķetes piešķiršana #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "mitrs mainīgais" // Assing
char tēma1 [100];
char topic2 [100]; char topic3 [100];
publicējiet datus minētajā MQTT tēmā, lietderīgā slodze izskatīsies šādi: "tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (lietderīgā slodze, "%s", ""); // Notīra lietderīgo slodzi sprintf (lietderīgā slodze, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Pievieno vērtību sprintf (lietderīgā slodze, "%s {" vērtība / ":%s}", lietderīgā slodze, str_cTemp); // Pievieno vērtību sprintf (lietderīgā slodze, "%s}", lietderīgā slodze); // Aizver vārdnīcas iekavas Serial.println (lietderīgā slodze); Serial.println (client.publish (topic1, payload)? "Published": "notpublished"); // Dariet to pašu ar citu tēmu
client.publish () publicē datus UbiDots
6. darbība: datu vizualizācija
- Dodieties uz Ubidots un piesakieties savā kontā.
- Augšpusē esošajā cilnē Dati dodieties uz informācijas paneli.
- Tagad noklikšķiniet uz ikonas "+", lai pievienotu jaunos logrīkus.
- Sarakstā atlasiet logrīku un pievienojiet mainīgo un ierīces.
- Sensora datus var vizualizēt informācijas panelī, izmantojot dažādus logrīkus.
7. solis: vispārējais kods
HTML un ESP32 kods Over ir atrodams šajā GitHub krātuvē.
Kredīti
- ncd ESP32 sadalīšanas panelis.
- ncd Bezvadu spiediena un temperatūras sensori
- kroga pasūtītājs
- UbiDots
- Uzdevumu plānotājs
Ieteicams:
Bezvadu temperatūras un mitruma sensora datu nosūtīšana uz Excel: 34 soļi
Bezvadu temperatūras un mitruma sensora datu sūtīšana uz Excel: mēs šeit izmantojam NCD temperatūras un mitruma sensoru, taču soļi paliek vienādi jebkuram ncd produktam, tādēļ, ja jums ir citi bezvadu sensori, novērojiet bez tam. Apturot šo tekstu, jums ir
Bezvadu vibrācijas un temperatūras sensora datu nosūtīšana uz Excel, izmantojot mezglu RED: 25 soļi
Bezvadu vibrācijas un temperatūras sensora datu nosūtīšana uz Excel, izmantojot Node-RED: Iepazīstinām ar NCD liela diapazona IoT rūpniecisko bezvadu vibrācijas un temperatūras sensoru, kas līdz pat 2 jūdžu diapazonam var izmantot bezvadu tīkla tīkla struktūru. Ietverot precīzu 16 bitu vibrācijas un temperatūras sensoru, šī ierīce ir
ESP32 datu publicēšana ar NTP laika zīmogu IoT mākonī: 5 soļi
Kā publicēt ESP32 datus ar NTP laika zīmogu IoT mākonī: daudzās lietojumprogrammās lietotājiem ir jānosūta dati kopā ar vietējo laika zīmogu vērtībām, kas jānosūta kravā uz AskSensors IoT mākoni. Laika zīmoga formāts ir UNIX laikmeta laiks: milisekundes, kas pagājušas kopš janvāra
IoT liela attāluma bezvadu temperatūras un mitruma sensora datu nosūtīšana uz Google lapu: 39 soļi
IoT liela attāluma bezvadu temperatūras un mitruma sensora datu nosūtīšana Google izklājlapai: mēs šeit izmantojam NCD temperatūras un mitruma sensoru, taču soļi paliek vienādi jebkuram ncd produktam, tādēļ, ja jums ir citi bezvadu sensori, novērojiet tos bez maksas blakus līdzās. Apturot šo tekstu, jums ir
UbiDots-ESP32 savienošana un vairāku sensoru datu publicēšana: 6 soļi
UbiDots-ESP32 savienošana un vairāku sensoru datu publicēšana: ESP32 un ESP 8266 ir ļoti pazīstami SoC IoT jomā. Tie ir sava veida svētība IoT projektiem. ESP 32 ir ierīce ar integrētu WiFi un BLE. Vienkārši norādiet savu SSID, paroli un IP konfigurāciju un integrējiet lietas