Sommario:
- Passaggio 1: specifiche hardware e software
- Passaggio 2: sensori wireless di pressione e temperatura
- Passaggio 3: connessione al WiFi
- Passaggio 4: configurazione di UbiDots su ESP32
- Passaggio 5: pubblicazione delle letture dei sensori su UbiDots
- Passaggio 6: visualizzazione dei dati
- Passaggio 7: codice generale
Video: Pubblicazione dei dati del sensore di pressione wireless utilizzando MQTT: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
ESP32 e ESP 8266 sono SoC molto familiari nel campo dell'IoT. Questi sono una sorta di vantaggio per i progetti IoT. ESP 32 è un dispositivo con WiFi e BLE integrati. Basta fornire SSID, password e configurazioni IP e integrare le cose nel cloud. Qui in questo tutorial, valuteremo alcuni dei termini di base dell'IoT come la piattaforma IoT, MQTT, i portali Captive ecc. Quindi esaminiamolo
- L'architettura IoT in parole molto semplici consiste in un dispositivo embedded e una piattaforma IoT per mettere il dispositivo nel cloud. Qui stiamo usando la piattaforma UbiDots IoT per visualizzare i dati del sensore.
- La gestione delle impostazioni IP e delle credenziali utente può essere un grattacapo per l'utente. Cosa succede se l'Utente vuole cambiare le credenziali WiFi? Cosa succede se l'utente desidera cambiare le impostazioni DHCP/IP statico? Il flashing di ESP32 ogni volta non è affidabile e nemmeno la soluzione per questi problemi. Quindi andremo attraverso il captive portal per salvare le credenziali WiFi e altre configurazioni.
- MQTT sta diventando un termine molto comune nel mondo IoT. ha superato le richieste e le risposte (HTTP) di Pubblica e Sottoscrivi a causa dell'architettura veloce, robusta e snella.
Qui in questo istruibile, andremo a dimostrare.
- Fornire credenziali WiFi e MQTT tramite Captive Portal.
- Pubblicazione e sottoscrizione di più dati Sensor su UbiDots.
- Lettura dei dati del sensore dal sensore di pressione e temperatura wireless
- Hosting di un modulo web da ESP32.
- Lettura e scrittura da SPIFFS ESP32.
Passaggio 1: specifiche hardware e software
Specifiche hardware
- ESP32 WiFi/BLE
- Sensore di pressione e temperatura wireless
Specifiche del software
- Arduino IDE
- XCTU
- Utilità Labview
Passaggio 2: sensori wireless di pressione e temperatura
Caratteristiche
- Sensore di temperatura senza fili a lungo raggio del sensore del grado industriale
- Intervallo operativo da 0 a 14000 mbar da -40° a +85°C (da -40° a 185°F)
- Calcolo interno configurabile Risoluzione pressione da 0,012 a 0,065 mbar
- Calcolo interno configurabile Risoluzione della temperatura da 0,002 a 0,012 °C
- Precisione ±2,5 mbar, ±2 °C
- Uscite di pressione assoluta, pressione relativa e variazione di altitudine relativa
- Portata in linea di vista di 2 miglia con antenna integrata
- Gamma LOS superiore fino a 28 miglia con antenne ad alto guadagno
- Interfaccia per Raspberry Pi, Microsoft® Azure®, Arduino e altro
- Rete mesh wireless con DigiMesh®
Configurazione del sensore di pressione e temperatura wireless utilizzando l'utilità Labview e XCTU
Il sensore funziona in due modalità
- Modalità di configurazione: Configurare l'ID Pan, il ritardo, il numero di tentativi, ecc. Ulteriori informazioni su questo vanno oltre lo scopo di questa istruzione e verranno spiegate nella prossima istruzione.
- Modalità di esecuzione: stiamo eseguendo il dispositivo in modalità di esecuzione. E per analizzare questi valori stiamo usando l'utility Labview
Questa interfaccia utente di Labview mostra i valori in bei grafici. Mostra i valori attuali e passati. Puoi andare a questo link per scaricare l'interfaccia utente di Labview. fai clic sull'icona Esegui dal menu della pagina di destinazione per passare alla modalità di esecuzione.
Passaggio 3: connessione al WiFi
Stiamo utilizzando il captive portal per salvare le credenziali WiFi e per passare con il mouse sulle impostazioni IP. Per l'introduzione dettagliata sul captive portal, puoi consultare le istruzioni seguenti.
Il captive portal ci offre la possibilità di scegliere tra le impostazioni statiche e DHCP. Basta inserire le credenziali come IP statico, Subnet Mask, gateway e Wireless Sensor Gateway verrà configurato su quell'IP.
Viene ospitata una pagina Web in cui è presente un elenco che mostra le reti WiFi disponibili e RSSI. Seleziona la rete WiFi e la password e inserisci invia. Le credenziali verranno salvate nella EEPROM e l'impostazione IP verrà salvata nello SPIFFS. Maggiori informazioni su questo possono essere trovate in questo istruibile.
Passaggio 4: configurazione di UbiDots su ESP32
Qui stiamo utilizzando sensori di pressione e temperatura wireless con il dispositivo ESP 32 per ottenere i dati di temperatura e umidità. Stiamo inviando i dati a UbiDots utilizzando il protocollo MQTT. MQTT segue un meccanismo di pubblicazione e sottoscrizione piuttosto che richiesta e risposta. È più veloce e affidabile di HTTP. Funziona come segue.
- Utilizziamo l'Utilità di pianificazione per pianificare l'attività come il recupero dei dati dai sensori, la pubblicazione delle letture dei sensori, la sottoscrizione all'argomento MQTT.
- Innanzitutto, includi i file di intestazione dell'Utilità di pianificazione, la sua istanza e pianifica le attività.
- Abbiamo programmato due task riferiti a due diverse operazioni di controllo.
#define _TASK_TIMEOUT#include Scheduler ts; //---------Tasks------------// Task tSensor(4 * TASK_SECOND, TASK_FOREVER, &taskSensorCallback, &ts, false, NULL, &taskSensorDisable); Task tWiFi(10* TASK_SECOND, TASK_FOREVER, &taskWiFiCallback, &ts, false, NULL, &taskWiFiDisable);
- L'attività 1 è per la lettura del valore del sensore, questa attività viene eseguita per 1 secondo fino a raggiungere il timeout di 10 secondi.
- Quando il Task1 raggiunge il suo timeout Ci stiamo connettendo al Wifi locale e al broker MQTT.
- Ora l'attività 2 è abilitata e stiamo disabilitando l'attività 1
- L'attività 2 serve per pubblicare i dati del sensore sul broker UbiDots MQTT questa attività viene eseguita per 20 secondi fino a raggiungere il timeout di 20 secondi
- Quando il Task2 raggiunge il suo timeout, il Task 1 viene abilitato di nuovo e il Task2 è disabilitato. Anche in questo caso, stiamo ottenendo il valore aggiornato e il processo continua.
Lettura dei dati del sensore I2C
Riceviamo un frame da 29 byte dai sensori wireless di temperatura e umidità. Questo riquadro viene manipolato per ottenere i dati effettivi di temperatura e umidità
if (Serial1.available())
{ data[0] = Serial1.read(); ritardo(k); if(data[0]==0x7E) { while (!Serial1.available()); for (i = 1; i< 36; i++) { data = Serial1.read(); ritardo(1); } if(data[15]==0x7F) /////// per verificare se i dati ricevuti sono corretti { if(data[22]==0x06) //////// verificare il tipo di sensore è corretto { int cTemp = ((((data[24]) * 256) + data[25])); int16_t pressione_ass = ((((uint16_t)(data[26])<<8)| data[27])*0.001); int rlt_pressione = ((((data[28]) * 256) + data[29])*0.001); int16_t delta_alt = ((((uint16_t)(data[30])<<8)| data[31])*0.01); batteria tampone = ((data[18] * 256) + data[19]); tensione di mantenimento = 0,00322 * batteria; Serial.print("Numero sensore"); Serial.println(data[16]); Serial.print("Tipo sensore"); Serial.println(data[22]); Serial.print("Versione firmware "); Serial.println(data[17]); Serial.print("Temperatura in gradi Celsius:"); Serial.print(cTemp); Serial.println("C"); Serial.print("Pressione assoluta:"); Serial.println(abs_pressione); Serial.print(" mbar"); Serial.print("Pressione relativa:"); Serial.println(rlt_pressione); Serial.print(" mbar"); Serial.print("Delta Altitudine:"); Serial.println(delta_alt); Serial.print("metro"); Serial.print("Valore ADC:"); Serial.println (batteria); Serial.print("Tensione batteria:"); Serial.print (tensione); Serial.println("\n"); if (voltaggio < 1) { Serial.println("È ora di sostituire la batteria"); } } }else{ for (i = 0; i< 36; i++) { Serial.print(data); Serial.print(", "); ritardo(1); }} } }
Connessione all'API MQTT di UbiDots
Includere il file di intestazione per il processo MQTT
#includere
definire altre variabili per MQTT come il nome del cliente, l'indirizzo del broker, l'ID del token
#define TOKEN "BBFF-************************************" // Il tuo TOKEN Ubidots#define MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
char payload[100]; char argomento[150]; //crea variabile per memorizzare token ID token
Passaggio 5: pubblicazione delle letture dei sensori su UbiDots
Crea variabili per memorizzare diversi dati del sensore e crea una variabile char per memorizzare l'argomento
#define VARIABLE_LABEL_TEMPF "tempF" // Assegnazione dell'etichetta della variabile#define VARIABLE_LABEL_TEMPC "tempC" // Assegnazione dell'etichetta della variabile #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "umido" // Assegnazione dell'etichetta della variabile
char argomento1[100];
char argomento2[100]; char topic3[100];
pubblica i dati nell'argomento MQTT menzionato, il payload sarà simile a { "tempc": {value: "tempData"}}
sprintf(topic1, "%s", ""); sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(carico utile, "%s", ""); // Pulisce il payload sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC); // Aggiunge il valore sprintf(payload, "%s{"value\":%s}", payload, str_cTemp); // Aggiunge il valore sprintf(payload, "%s}", payload); // Chiude le parentesi del dizionario Serial.println(payload); Serial.println(client.publish(topic1, payload) ? "pubblicato": "non pubblicato"); //Fai lo stesso anche per altri argomenti
client.publish() pubblica i dati su UbiDots
Passaggio 6: visualizzazione dei dati
- Vai su Ubidots e accedi al tuo account.
- Passa alla Dashboard dalla scheda Dati elencata in alto.
- Ora fai clic sull'icona "+" per aggiungere i nuovi widget.
- Seleziona un widget dall'elenco e aggiungi una variabile e dispositivi.
- I dati del sensore possono essere visualizzati sulla dashboard utilizzando diversi widget.
Passaggio 7: codice generale
Il codice Over per HTML ed ESP32 può essere trovato in questo repository GitHub.
Titoli di coda
- scheda di breakout ESP32 ncd.
- Sensori di pressione e temperatura wireless ncd
- pubsubcliente
- UbiDots
- Agenda
Consigliato:
IoT: visualizzazione dei dati del sensore di luce utilizzando Node-RED: 7 passaggi
IoT: visualizzazione dei dati del sensore di luce utilizzando Node-RED: in questo tutorial imparerai come creare un sensore connesso a Internet! Userò un sensore di luce ambientale (TI OPT3001) per questa demo, ma qualsiasi sensore di tua scelta (temperatura, umidità, potenziometro, ecc.) funzionerebbe. I valori del sensore
Invio dei dati del sensore di temperatura e umidità wireless a Excel: 34 passaggi
Invio dei dati del sensore di temperatura e umidità wireless a Excel: stiamo utilizzando qui il sensore di temperatura e umidità di NCD, ma i passaggi rimangono uguali per qualsiasi prodotto ncd, quindi se disponi di altri sensori wireless ncd, prova anche a osservare insieme. Per mezzo dell'interruzione di questo testo, è necessario
Invio dei dati del sensore di vibrazione e temperatura wireless a Excel utilizzando Node-RED: 25 passaggi
Invio dei dati del sensore di temperatura e vibrazione wireless a Excel utilizzando Node-RED: introduzione del sensore di temperatura e vibrazione wireless industriale IoT a lungo raggio di NCD, che vanta una portata fino a 2 miglia e l'uso di una struttura di rete mesh wireless. Incorporando un sensore di vibrazione e temperatura di precisione a 16 bit, questo dispositivo tras
Lettura dei dati del sensore a ultrasuoni (HC-SR04) su un LCD 128×128 e visualizzazione utilizzando Matplotlib: 8 passaggi
Lettura dei dati del sensore a ultrasuoni (HC-SR04) su un LCD 128 × 128 e visualizzazione utilizzando Matplotlib: In questo istruibile, utilizzeremo MSP432 LaunchPad + BoosterPack per visualizzare i dati di un sensore a ultrasuoni (HC-SR04) su un 128 × 128 LCD e inviare i dati al PC in serie e visualizzarli utilizzando Matplotlib
Visualizzazione dei dati del sensore wireless utilizzando Google Charts: 6 passaggi
Visualizzazione dei dati del sensore wireless utilizzando Google Charts: l'analisi predittiva delle macchine è molto necessaria per ridurre al minimo i tempi di fermo della macchina. Il controllo regolare aiuta a migliorare il tempo di servizio della macchina e, a sua volta, migliora la sua tolleranza ai guasti. Sensore di vibrazione e temperatura wireless