Tabla de contenido:

Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: 7 pasos
Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: 7 pasos

Video: Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: 7 pasos

Video: Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance: 7 pasos
Video: Webinario Gratuito: Sensores y Nodos Inalámbricos de largo alcance; Soluciones Industriales e IoT 2024, Junio
Anonim
Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance
Introducción a los sensores inalámbricos de temperatura y vibración de largo alcance

A veces, la vibración es la causa de problemas graves en muchas aplicaciones. Desde los ejes y cojinetes de la máquina hasta el rendimiento del disco duro, la vibración causa daños en la máquina, reemplazos tempranos, bajo rendimiento e inflige un gran impacto en la precisión. La supervisión y el análisis de tiempo a tiempo de la vibración en la máquina pueden resolver el problema del daño temprano y el desgaste de la pieza de la máquina.

En este instructable, trabajaremos en los sensores inalámbricos de temperatura y vibración de largo alcance de IoT. Estos son sensores de grado industrial con muchas aplicaciones extendidas como.

  • Metalurgia
  • Generación de energía
  • Minería
  • Alimentos y bebidas

Entonces, en este Instructable, veremos lo siguiente:

  • Configuración de sensores inalámbricos usando XCTU y Labview UI.
  • Obteniendo los valores de vibración del sensor.
  • Comprender el funcionamiento del dispositivo xbee y el protocolo xbee.
  • Configurar las credenciales de WiFi y la configuración de IP mediante el portal cautivo

Paso 1: Especificación de hardware y software

Especificación de hardware y software
Especificación de hardware y software
Especificación de hardware y software
Especificación de hardware y software
Especificación de hardware y software
Especificación de hardware y software

Especificación de hardware

  • Sensores inalámbricos de vibración y temperatura
  • Receptor Zigmo
  • Dispositivo ESP32 BLE / WiFi

Especificación de software

  • IDE de Arduino
  • Utilidad LabView

Paso 2: Configurar el sensor inalámbrico y el receptor Zigmo con XCTU

Configuración del sensor inalámbrico y el receptor Zigmo mediante XCTU
Configuración del sensor inalámbrico y el receptor Zigmo mediante XCTU
Configuración del sensor inalámbrico y el receptor Zigmo mediante XCTU
Configuración del sensor inalámbrico y el receptor Zigmo mediante XCTU

Cada dispositivo de IoT necesita un protocolo de comunicación para poner el dispositivo en la nube y configurar una interfaz inalámbrica entre diferentes dispositivos.

Aquí, los sensores inalámbricos y el receptor Zigmo utilizan la solución XBee de bajo consumo y largo alcance. XBee utiliza un protocolo ZigBee que especifica el funcionamiento en bandas ISM de 902 a 928 MHz.

Xbee se puede configurar mediante el software XCTU

  1. Busque el dispositivo Xbee o agregue un nuevo dispositivo Xbee haciendo clic en el icono de la parte superior izquierda.
  2. El dispositivo aparecerá en el panel lateral izquierdo.
  3. haga doble clic en el dispositivo para ver la configuración.
  4. Ahora haga clic en el icono de la consola en la esquina superior derecha
  5. Puedes ver el valor que viene en la salida de la consola.
  6. Aquí obtenemos el marco de 54 bytes de longitud.
  7. estos bytes se manipularían aún más para obtener los valores reales. el procedimiento para obtener los valores reales de temperatura y vibración se menciona en los próximos pasos.

Paso 3: Análisis inalámbrico de valores de temperatura y vibración con la utilidad Labview

Análisis inalámbrico de valores de temperatura y vibración con la utilidad Labview
Análisis inalámbrico de valores de temperatura y vibración con la utilidad Labview
Análisis inalámbrico de valores de temperatura y vibración con la utilidad Labview
Análisis inalámbrico de valores de temperatura y vibración con la utilidad Labview

El sensor funciona en dos modos

  • Modo de configuración: configure el ID de bandeja, el retraso, el número de reintentos, etc. Más sobre esto está más allá del alcance de este instructivo y se explicará en el siguiente instructivo.
  • Modo de ejecución: estamos ejecutando el dispositivo en modo de ejecución. Y para analizar estos valores estamos usando la utilidad Labview

Esta interfaz de usuario de Labview muestra los valores en gráficos agradables. Muestra los valores actuales y pasados. Puede ir a este enlace para descargar la interfaz de usuario de Labview.

haga clic en el icono Ejecutar en el menú de la página de destino para ir al modo de ejecución.

Paso 4: Configurar los parámetros de DHCP / IP estática mediante el portal cautivo

Configuración de opciones de DHCP / IP estática mediante el portal cautivo
Configuración de opciones de DHCP / IP estática mediante el portal cautivo
Configuración de opciones de DHCP / IP estática mediante el portal cautivo
Configuración de opciones de DHCP / IP estática mediante el portal cautivo
Configuración de opciones de DHCP / IP estática mediante el portal cautivo
Configuración de opciones de DHCP / IP estática mediante el portal cautivo

Estamos utilizando el portal cautivo para guardar las credenciales de WiFi y pasar el cursor por la configuración de IP. Para obtener una introducción detallada sobre el portal cautivo, puede seguir las siguientes instrucciones.

El portal cautivo nos da la opción de elegir entre configuraciones estáticas y DHCP. Simplemente ingrese las credenciales como IP estática, máscara de subred, puerta de enlace y la puerta de enlace del sensor inalámbrico se configurará en esa IP.

Paso 5: Guardar la configuración de WiFi mediante el portal cautivo

Guardar la configuración de WiFi mediante el portal cautivo
Guardar la configuración de WiFi mediante el portal cautivo

Se aloja una página web en la que aparece una lista que muestra las redes WiFi disponibles y el RSSI. Seleccione la red WiFi y la contraseña e ingrese enviar. Las credenciales se guardarán en la EEPROM y la configuración de IP se guardará en SPIFFS. Se puede encontrar más sobre esto en este instructivo.

Paso 6: Publicar las lecturas del sensor en UbiDots

Aquí estamos usando sensores inalámbricos de temperatura y vibración con el receptor de puerta de enlace ESP 32 para obtener los datos de temperatura y humedad. Enviamos los datos a UbiDots utilizando el protocolo MQTT. MQTT sigue un mecanismo de publicación y suscripción en lugar de solicitud y respuesta. Es más rápido y confiable que HTTP. Esto funciona de la siguiente manera.

Leer los datos del sensor inalámbrico

Estamos obteniendo un marco de 29 bytes de los sensores inalámbricos de temperatura y vibración. Este marco se manipula para obtener los datos reales de temperatura y vibración

if (Serial2.available ()) {datos [0] = Serial2.read (); retraso (k); if (datos [0] == 0x7E) {Serial.println ("Paquete recibido"); while (! Serial2.available ()); para (i = 1; i <55; i ++) {datos = Serial2.read (); retraso (1); } if (data [15] == 0x7F) /////// para verificar si los datos recibidos son correctos {if (data [22] == 0x08) //////// asegúrese de que el tipo de sensor es correcto {rms_x = ((uint16_t) (((datos [24]) << 16) + ((datos [25]) << 8) + (datos [26])) / 100); rms_y = ((uint16_t) (((datos [27]) << 16) + ((datos [28]) << 8) + (datos [29])) / 100); rms_z = ((uint16_t) (((datos [30]) << 16) + ((datos [31]) << 8) + (datos [32])) / 100); max_x = ((uint16_t) (((datos [33]) << 16) + ((datos [34]) << 8) + (datos [35])) / 100); max_y = ((uint16_t) (((datos [36]) << 16) + ((datos [37]) << 8) + (datos [38])) / 100); max_z = ((uint16_t) (((datos [39]) << 16) + ((datos [40]) << 8) + (datos [41])) / 100);

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

cTemp = ((((datos [51]) * 256) + datos [52])); batería flotante = ((datos [18] * 256) + datos [19]); voltaje de flotación = 0.00322 * batería; Serial.print ("Número de sensor"); Serial.println (datos [16]); Serial.print ("Tipo de sensor"); Serial.println (datos [22]); Serial.print ("Versión de firmware"); Serial.println (datos [17]); Serial.print ("Temperatura en grados Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Vibración RMS en el eje X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Vibración RMS en el eje Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("Vibración RMS en el eje Z:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Vibración mínima en el eje X:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Vibración mínima en el eje Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Vibración mínima en el eje Z:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("valor ADC:");

Serial.println (batería); Serial.print ("Voltaje de la batería:"); Serial.print (voltaje); Serial.println ("\ n"); if (voltaje <1) {Serial.println ("Tiempo para reemplazar la batería"); }}} else {for (i = 0; i <54; i ++) {Serial.print (datos ); Serial.print (","); retraso (1); }}}}

Conexión a la API de UbiDots MQTT

Incluya el archivo de encabezado para el proceso MQTT

#include "PubSubClient.h"

definir otras variables para MQTT como el nombre del cliente, la dirección del corredor, la ID de token (estamos obteniendo la ID de token de EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; carga útil de char [100]; char tema [150]; // crea una variable para almacenar el ID del token String tokenId;

Cree variables para almacenar diferentes datos de sensores y cree una variable char para almacenar el tema

#define VARIABLE_LABEL_TEMPF "tempF" // Evaluando la etiqueta de la variable # define VARIABLE_LABEL_TEMPC "tempC" // Evaluando la etiqueta de la variable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Evaluando la etiqueta de la variable

char topic1 [100];

char topic2 [100]; char topic3 [100];

publicar los datos en el tema MQTT mencionado, la carga útil se verá como {"tempc": {value: "tempData"}}

sprintf (tema1, "% s", ""); sprintf (tema1, "% s% s", "/v1.6/devices/", DEVICE_LABEL); sprintf (carga útil, "% s", "");

// Limpia la carga útil sprintf (carga útil, "{"% s / ":", VARIABLE_LABEL_TEMPC);

// Agrega el valor sprintf (payload, "% s {" value / ":% s}", payload, str_cTemp);

// Agrega el valor sprintf (payload, "% s}", payload);

// Cierra los corchetes del diccionario Serial.println (payload);

Serial.println (client.publish (topic1, payload)? "Published": "notpublished");

// Haz lo mismo con el otro tema también

client.publish () publica los datos en UbiDots

Paso 7: Visualización de los datos

Visualizando los datos
Visualizando los datos
  • Vaya a Ubidots e inicie sesión en su cuenta.
  • Navegue hasta el Panel de control desde la pestaña Datos que aparece en la parte superior.
  • Ahora haga clic en el icono "+" para agregar los nuevos widgets.
  • Seleccione un widget de la lista y agregue una variable y dispositivos.
  • Los datos del sensor se pueden visualizar en el panel de control utilizando diferentes widgets.

Código general

El código Over para HTML y ESP32 se puede encontrar en este repositorio de GitHub.

  1. Placa de conexión ncd ESP32.
  2. Sensores inalámbricos de temperatura y humedad ncd.
  3. pubsubcliente
  4. UbiDots

Recomendado: