Sommario:

Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio: 7 passaggi
Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio: 7 passaggi

Video: Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio: 7 passaggi

Video: Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio: 7 passaggi
Video: Recensione Aqara sensor P1 e lumi - Integrazione in home assistant con zigbee2mqtt 2024, Luglio
Anonim
Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio
Introduzione ai sensori di temperatura e vibrazioni wireless a lungo raggio

A volte le vibrazioni sono la causa di seri problemi in molte applicazioni. Dagli alberi e cuscinetti della macchina alle prestazioni del disco rigido, le vibrazioni causano danni alla macchina, sostituzioni anticipate, prestazioni ridotte e influiscono notevolmente sulla precisione. Il monitoraggio e l'analisi di volta in volta delle vibrazioni nella macchina possono risolvere il problema dei danni precoci e dell'usura della parte della macchina.

In questo tutorial, lavoreremo sui sensori di temperatura e vibrazione wireless a lungo raggio IoT. Questi sono sensori di livello industriale con molte applicazioni diffuse come.

  • Lavorazione dei metalli
  • Produzione di energia
  • Estrazione
  • Cibo e bevande

Quindi, in questo Instructable esamineremo quanto segue:

  • Configurazione di sensori wireless utilizzando XCTU e Labview UI.
  • Ottenere i valori di vibrazione dal sensore.
  • Comprensione del funzionamento del dispositivo xbee e del protocollo xbee.
  • Configurazione delle credenziali WiFi e configurazione IP utilizzando il captive portal

Passaggio 1: specifiche hardware e software

Specifiche hardware e software
Specifiche hardware e software
Specifiche hardware e software
Specifiche hardware e software
Specifiche hardware e software
Specifiche hardware e software

Specifiche hardware

  • Sensori di vibrazione e temperatura wireless
  • Ricevitore Zigmo
  • ESP32 BLE/dispositivo WiFi

Specifiche del software

  • Arduino IDE
  • Utilità LabView

Passaggio 2: configurazione del sensore wireless e del ricevitore Zigmo utilizzando XCTU

Configurazione del sensore wireless e del ricevitore Zigmo utilizzando XCTU
Configurazione del sensore wireless e del ricevitore Zigmo utilizzando XCTU
Configurazione del sensore wireless e del ricevitore Zigmo utilizzando XCTU
Configurazione del sensore wireless e del ricevitore Zigmo utilizzando XCTU

Ogni dispositivo IoT necessita di un protocollo di comunicazione per mettere il dispositivo sul cloud e per configurare un'interfaccia wireless tra diversi dispositivi.

Qui i sensori wireless e il ricevitore Zigmo utilizzano la soluzione XBee a bassa potenza e a lungo raggio. XBee utilizza un protocollo ZigBee che specifica il funzionamento nelle bande ISM da 902 a 928 MHz.

Xbee può essere configurato utilizzando il software XCTU

  1. Cerca il dispositivo Xbee o aggiungi un nuovo dispositivo Xbee facendo clic sull'icona in alto a sinistra.
  2. Il dispositivo verrà elencato nel pannello di sinistra.
  3. fare doppio clic sul dispositivo per visualizzare le impostazioni.
  4. Ora fai clic sull'icona della console nell'angolo in alto a destra
  5. Puoi vedere il valore in arrivo sull'output della console
  6. Qui stiamo ottenendo il frame di lunghezza 54 byte
  7. questi byte sarebbero ulteriormente manipolati per ottenere i valori reali. la procedura per ottenere i valori reali di temperatura e vibrazione è menzionata nei passaggi successivi.

Passaggio 3: analisi dei valori di temperatura e vibrazione wireless utilizzando l'utilità Labview

Analisi wireless dei valori di temperatura e vibrazione utilizzando l'utility Labview
Analisi wireless dei valori di temperatura e vibrazione utilizzando l'utility Labview
Analisi wireless dei valori di temperatura e vibrazione utilizzando l'utility Labview
Analisi wireless dei valori di temperatura e vibrazione utilizzando l'utility Labview

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 4: configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal

Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal
Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal
Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal
Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal
Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal
Configurazione delle impostazioni DHCP/IP statico utilizzando Captive Portal

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.

Passaggio 5: salvataggio delle impostazioni WiFi utilizzando Captive Portal

Salvataggio delle impostazioni WiFi utilizzando Captive Portal
Salvataggio delle impostazioni WiFi utilizzando Captive Portal

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 6: pubblicazione delle letture dei sensori su UbiDots

Qui stiamo utilizzando i sensori di temperatura e vibrazione wireless con il ricevitore gateway 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.

Lettura dei dati del sensore wireless

Riceviamo un frame da 29 byte dai sensori wireless di temperatura e vibrazione. Questo riquadro viene manipolato per ottenere i dati effettivi di temperatura e vibrazione

if (Serial2.available()) { data[0] = Serial2.read(); ritardo(k); if(data[0]==0x7E) { Serial.println("Ho ricevuto il pacchetto"); while (!Serial2.available()); for (i = 1; i< 55; i++) { data = Serial2.read(); ritardo(1); } if(data[15]==0x7F) /////// per verificare se i dati ricevuti sono corretti { if(data[22]==0x08) //////// verificare il tipo di sensore è corretto { rms_x = ((uint16_t)(((data[24])<<16) + ((data[25])<<8) + (data[26]))/100); rms_y = ((uint16_t)(((data[27])<<16) + ((data[28])<<8) + (data[29]))/100); rms_z = ((uint16_t)(((data[30])<<16) + ((data[31])<<8) + (data[32]))/100); max_x = ((uint16_t)(((data[33])<<16) + ((data[34])<<8) + (data[35]))/100); max_y = ((uint16_t)(((data[36])<<16) + ((data[37])<<8) + (data[38]))/100); max_z = ((uint16_t)(((data[39])<<16) + ((data[40])<<8) + (data[41]))/100);

min_x = ((uint16_t)(((data[42])<<16) + ((data[43])<<8) + (data[44]))/100); min_y = ((uint16_t)(((data[45])<<16) + ((data[46])<<8) + (data[47]))/100); min_z = ((uint16_t)(((data[48])<<16) + ((data[49])<<8) + (data[50]))/100);

cTemp = ((((data[51]) * 256) + data[52])); 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("Vibrazione RMS nell'asse X:"); Serial.print(rms_x); Serial.println("mg"); Serial.print("Vibrazione RMS nell'asse Y:"); Serial.print(rms_y); Serial.println("mg"); Serial.print("Vibrazione RMS nell'asse Z:"); Serial.print(rms_z); Serial.println("mg");

Serial.print("Vibrazione minima nell'asse X:");

Serial.print(min_x); Serial.println("mg"); Serial.print("Vibrazione minima nell'asse Y:"); Serial.print(min_y); Serial.println("mg"); Serial.print("Vibrazione minima nell'asse Z:"); Serial.print(min_z); Serial.println("mg");

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< 54; i++) { Serial.print(data); Serial.print(", "); ritardo(1); } } } }

Connessione all'API MQTT di UbiDots

Includere il file di intestazione per il processo MQTT

#include "PubSubClient.h"

definire altre variabili per MQTT come nome client, indirizzo broker, ID token (stiamo recuperando l'ID token da EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; char payload[100]; char argomento[150]; //crea variabile per memorizzare l'ID del token String tokenId;

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 7: visualizzazione dei dati

Visualizzazione dei dati
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.

Codice generale

Il codice Over per HTML ed ESP32 può essere trovato in questo repository GitHub.

  1. scheda di breakout ESP32 ncd.
  2. ncd Sensori di temperatura e umidità wireless.
  3. pubsubcliente
  4. UbiDots

Consigliato: