Taula de continguts:
- Pas 1: Especificació de maquinari i programari
- Pas 2: Sensors de pressió i temperatura sense fils
- Pas 3: Connexió a WiFi
- Pas 4: Configuració d'UbiDots a ESP32
- Pas 5: Publicació de les lectures del sensor a UbiDots
- Pas 6: visualització de les dades
- Pas 7: Codi general
Vídeo: Publicació de dades del sensor de pressió sense fils mitjançant MQTT: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
ESP32 i ESP 8266 són SoC molt familiars en el camp de l'IoT. Es tracta d’una mena de benefici per als projectes IoT. ESP 32 és un dispositiu amb WiFi i BLE integrats. Simplement doneu les vostres configuracions d’SSID, contrasenya i IP i integreu les coses al núvol. Aquí, en aquest instructiu, reflexionarem sobre alguns dels termes bàsics de l'IoT, com ara la plataforma IoT, MQTT, portals captius, etc.
- L’arquitectura IoT en paraules molt senzilles consisteix en un dispositiu incrustat i una plataforma IoT per posar el dispositiu al núvol. Aquí estem utilitzant la plataforma IoT UbiDots per visualitzar les dades del sensor.
- Administrar la configuració d’IP i les credencials d’usuari pot ser un mal de cap per a l’usuari. Què passa si l’usuari vol canviar les credencials de WiFi? Què passa si l'usuari vol canviar la configuració de DHCP / IP estàtica? Parpellejar l’ESP32 cada cop no és fiable ni tan sols és la solució per a aquests problemes. Així, passarem pel portal captiu per desar les credencials WiFi i altres configuracions.
- MQTT s’està convertint en un terme molt comú al món de l’IoT. ha superat les sol·licituds i respostes (HTTP) de Publish and Subscribe a causa de l'arquitectura ràpida, robusta i senzilla.
Aquí, en aquest instructiu, anirem a demostrar.
- Donar credencials de WiFi i MQTT mitjançant Captive Portal.
- Publicació i subscripció de diverses dades del sensor a UbiDots.
- Lectura de les dades del sensor del sensor de pressió i temperatura sense fils
- Allotjament d’un formulari web des de l’ESP32.
- Lectura i escriptura des de SPIFFS ESP32.
Pas 1: Especificació de maquinari i programari
Especificació de maquinari
- ESP32 WiFi / BLE
- Sensor de pressió i temperatura sense fils
Especificació de programari
- IDE Arduino
- XCTU
- Utilitat Labview
Pas 2: Sensors de pressió i temperatura sense fils
Característiques
- Sensor de grau industrial Sensor de temperatura de pressió sense fils de llarg abast
- Rang de funcionament de 0 a 14000 mbar -40 ° a + 85 ° C (-40 ° a 185 ° F)
- Càlcul intern configurable Resolució de pressió de 0,012 a 0,065 mbar
- Càlcul intern configurable Resolució de temperatura de 0,002 a 0,012 ° C
- Precisió ± 2,5 mbar, ± 2 ° C
- Sortides de pressió absoluta, pressió relativa i altitud relativa
- Gamma de línia de visió de 2 milles amb antena incorporada
- Rang LOS superior de fins a 28 milles amb antenes d’alt guany
- Interfície amb Raspberry Pi, Microsoft® Azure®, Arduino i molt més
- Xarxes de malla sense fils mitjançant DigiMesh®
Configuració del sensor de pressió i temperatura sense fils mitjançant Labview Utility i XCTU
El sensor funciona en dos modes
- Mode de configuració: configureu l'identificador de panoràmica, el retard, el nombre de reintents, etc. Més informació sobre això està fora de l'abast d'aquesta instrucció i s'explicarà a la següent instrucció.
- Mode d'execució: estem executant el dispositiu en mode d'execució. I per analitzar aquest valor estem utilitzant la utilitat Labview
Aquesta interfície d’usuari de Labview mostra els valors en gràfics agradables. Mostra els valors actuals i passats. Podeu anar a aquest enllaç per descarregar la interfície d’usuari de Labview. feu clic a la icona Executa al menú de la pàgina de destinació per anar al mode d'execució.
Pas 3: Connexió a WiFi
Estem utilitzant el portal captiu per desar les credencials de WiFi i per passar per la configuració d’IP. Per obtenir una introducció detallada al portal captiu, podeu consultar les instruccions següents.
El portal captiu ens ofereix l'opció de triar entre la configuració estàtica i DHCP. Només cal que introduïu les credencials com ara IP estàtica, màscara de subxarxa, passarel·la i la passarel·la del sensor sense fils es configurarà en aquesta IP.
S’està allotjant una pàgina web on hi ha una llista que mostra les xarxes WiFi disponibles i allà el RSSI. Seleccioneu la xarxa WiFi i la contrasenya i introduïu enviar. Les credencials es desaran a EEPROM i la configuració IP es desarà a SPIFFS. Podeu trobar més informació sobre això en aquest instructiu.
Pas 4: Configuració d'UbiDots a ESP32
Aquí fem servir sensors de pressió i temperatura sense fils amb el dispositiu ESP 32 per obtenir les dades de temperatura i humitat. Enviem les dades a UbiDots mitjançant el protocol MQTT. MQTT segueix un mecanisme de publicació i subscripció més que la sol·licitud i la resposta. És més ràpid i fiable que HTTP. Això funciona de la següent manera.
- Estem utilitzant Task Scheduler per programar la tasca, com ara obtenir dades de sensors, publicar les lectures del sensor, subscriure’s al tema MQTT.
- En primer lloc, incloeu els fitxers de capçalera del Planificador de tasques, la seva instància i planifica les tasques.
- Hem programat dues tasques referents a dues operacions de control diferents.
#define _TASK_TIMEOUT # include Scheduler ts; // --------- Tasques ------------ // Tasca tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Tasca tWiFi (10 * TASK_SECOND, TASK_FOREVER i & taskWiFiCallback, & ts, false, NULL i & taskWiFiDisable);
- La tasca 1 serveix per llegir el valor del sensor que aquesta tasca s'executa durant 1 segon fins que arriba al temps d'espera de 10 segons.
- Quan la Task1 arribi a la seva data d’espera, ens connectem a l’agent local de Wifi i MQTT.
- Ara la tasca 2 està activada i estem desactivant la tasca 1
- La tasca 2 serveix per publicar les dades del sensor al corredor UbiDots MQTT, aquesta tasca s’executa durant 20 segons fins que s’aconsegueix un temps d’espera de 20 segons
- Quan la tasca 2 arriba al seu temps d'espera, la tasca 1 es torna a activar i la tasca 2 es desactiva. Un cop més, obtenim el valor actualitzat i el procés continua.
Lectura de les dades del sensor I2C
Els sensors de temperatura i humitat sense fils obtenim un marc de 29 bytes. Aquest marc es manipula per obtenir les dades reals de temperatura i humitat
if (Serial1.available ())
{data [0] = Serial1.read (); retard (k); if (dades [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); retard (1); } if (dades [15] == 0x7F) /////// per comprovar si les dades de recepció són correctes {if (dades [22] == 0x06) //////// assegureu-vos que el tipus de sensor és correcte {int cTemp = ((((dades [24]) * 256) + dades [25])); int16_t abs_pressure = ((((uint16_t) (dades [26]) << 8) | dades [27]) * 0,001); int rlt_pressure = ((((dades [28]) * 256) + dades [29]) * 0,001); int16_t delta_alt = ((((uint16_t) (dades [30]) << 8) | dades [31]) * 0,01); bateria flotant = ((dades [18] * 256) + dades [19]); tensió flotant = 0,00322 * bateria; Serial.print ("Número del sensor"); Serial.println (dades [16]); Serial.print ("Tipus de sensor"); Serial.println (dades [22]); Serial.print ("Versió del firmware"); Serial.println (dades [17]); Serial.print ("Temperatura en centígrads"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Pressió absoluta"); Serial.println (abs_pressure); Serial.print ("mbar"); Serial.print ("Pressió relativa:"); Serial.println (rlt_pressure); Serial.print ("mbar"); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print ("mesurador"); Serial.print ("valor ADC:"); Serial.println (bateria); Serial.print ("Voltatge de la bateria"); Serial.print (voltatge); Serial.println ("\ n"); if (tensió <1) {Serial.println ("Temps per substituir la bateria"); }}} else {for (i = 0; i <36; i ++) {Serial.print (dades ); Serial.print (","); retard (1); }}}}
Connexió a l'API UbiDots MQTT
Incloeu el fitxer de capçalera per al procés MQTT
#incloure
definiu altres variables per a MQTT com el nom del client, l'adreça del corredor, l'identificador del testimoni
#define TOKEN "BBFF - ************************************" // Els vostres ubidots TOKEN # defineixen MQTT_CLIENT_NAME "****************************"
char mqttBroker = "coses.ubidots.com";
càrrega útil char [100]; tema char [150]; // creeu una variable per emmagatzemar l'identificador de token
Pas 5: Publicació de les lectures del sensor a UbiDots
Creeu variables per emmagatzemar diferents dades del sensor i creeu una variable de caràcters per emmagatzemar el tema
#define VARIABLE_LABEL_TEMPF "tempF" // Assignant l'etiqueta de variable # define VARIABLE_LABEL_TEMPC "tempC" // Assignant l'etiqueta de variable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assignant l'etiqueta de variable
char topic1 [100];
char topic2 [100]; char topic3 [100];
publiqueu les dades al tema MQTT esmentat, la càrrega útil tindrà l'aspecte de {"tempc": {value: "tempData"}}
sprintf (tema1, "% s", ""); sprintf (tema1, "% s% s", "/v1.6/devices/", DEVICE_LABEL); sprintf (càrrega útil, "% s", ""); // Neteja la càrrega útil sprintf (càrrega útil, "{"% s / ":", VARIABLE_LABEL_TEMPC); // Afegeix el valor sprintf (càrrega útil, "% s {" valor / ":% s}", càrrega útil, str_cTemp); // Afegeix el valor sprintf (càrrega útil, "% s}", càrrega útil); // Tanca els claudàtors del diccionari Serial.println (càrrega útil); Serial.println (client.publish (tema1, càrrega útil)? "Published": "no publicat"); // Feu el mateix amb altres temes
client.publish () publica les dades a UbiDots
Pas 6: visualització de les dades
- Aneu a Ubidots i inicieu la sessió al vostre compte.
- Aneu al tauler de control des de la pestanya Dades que apareix a la part superior.
- Ara feu clic a la icona "+" per afegir els ginys nous.
- Seleccioneu un widget de la llista i afegiu una variable i dispositius.
- Les dades del sensor es poden visualitzar al tauler de control mitjançant diferents widgets.
Pas 7: Codi general
El codi Over per a HTML i ESP32 es pot trobar en aquest dipòsit de GitHub.
Crèdits
- tauler de ruptura ESP32 ncd.
- Sensors de pressió i temperatura sense fils ncd
- pubsubclient
- UbiDots
- Planificador de tasques
Recomanat:
Enviament de dades del sensor de temperatura i humitat sense fils a Excel: 34 passos
Enviament de dades de sensor de temperatura i humitat sense fils a Excel: aquí estem utilitzant el sensor de temperatura i humitat de NCD, però els passos són iguals per a qualsevol dels productes ncd, de manera que si teniu altres sensors sense fils ncd, no dubteu a observar-lo a més. Mitjançant l’aturada d’aquest text, heu de
Dades de sensors de vibració i temperatura sense fils a MySQL mitjançant Node-RED: 40 passos
Dades de sensors de vibració i temperatura sense fils a MySQL mitjançant Node-RED: presentació del sensor de temperatura i vibració sense fils IoT Industrial de llarg abast de NCD, que ofereix fins a una distància de 2 milles l’ús d’una estructura de xarxa de malla sense fils. Aquest dispositiu incorpora un sensor de precisió de vibració i temperatura de 16 bits
Enviament de dades del sensor de temperatura i humitat sense fils de llarg abast de l'IoT al full de Google: 39 passos
Enviament de dades del sensor de temperatura i humitat sense fils de llarg abast de l'IoT al full de Google: aquí estem utilitzant el sensor de temperatura i humitat de NCD, però els passos són iguals per a qualsevol dels productes ncd, de manera que si teniu altres sensors sense fils ncd, no dubteu a observar-ho al costat a més. Mitjançant l’aturada d’aquest text, heu de
Visualització de dades del sensor sense fils mitjançant Google Charts: 6 passos
Visualització de dades del sensor sense fils mitjançant Google Charts: l’anàlisi predictiva de les màquines és molt necessària per minimitzar el temps d’aturada de la màquina. La revisió periòdica ajuda a millorar el temps de treball de la màquina i al seu torn augmenta la seva tolerància a fallades. Sense vibracions i temperatura sense fils
Introduïu un timbre sense fils en un interruptor d'alarma sense fils o un interruptor d'encesa / apagat: 4 passos
Introduïu un timbre sense fils en un interruptor d'alarma sense fils o en un interruptor d'encès / apagat: recentment he construït un sistema d'alarma i l'he instal·lat a casa. Vaig fer servir interruptors magnètics a les portes i els vaig connectar a través de les golfes: les finestres eren una altra història i el cablejat dur no era una opció. Necessitava una solució sense fils i això és