Control y Automatización con Ubidots
Este tutorial es un subconjunto del tutorial anterior: Monitoreo y Control HVAC con un Siemens IoT2040. Basándonos en la configuración de la aplicación anterior, ahora es el momento de implementar la lógica de automatización deseada. Para crear dispositivos autónomos y procesos en su aplicación, utilizaremos una solicitud GET con el motor de Eventos de Ubidots.
1. Configuración de Eventos
Un Evento de Ubidots es una acción (o alerta) desencadenada cuando los datos de una variable cumplen o superan una regla de diseño. Para este tutorial, utilizaremos la variable temperatura para activar/desactivar el dispositivo asociado con la variable etiquetada como "ventilador." Luego, utilizando una solicitud GET, cuando la variable ventilador se activa, se envía un mensaje a nuestro dispositivo que controla el ventilador físico en el sistema HVAC.
1. Desde la sección de Dispositivos de su cuenta de Ubidots, seleccione el dispositivo con el que está trabajando y agregue una Variable Predeterminada llamada “ventilador.”
2. Con la variable en bruto ahora disponible para recibir datos, vaya a la sección de Eventos y seleccione el ícono de más para crear un nuevo evento.
3. Siga la configuración intuitiva en pantalla para configurar la variable temperatura ºF para enviar un evento cuando el valor de la variable temperatura (ºF) sea mayor o igual a 84:
Si el valor de la variable “temperatura (ºF)” es mayor o igual a 84.
Si su aplicación requiere lógica adicional y/o lógica condicional, consulte esta guía simple para obtener asistencia adicional.
4. Guarde los cambios presionando el ícono azul a la derecha en el centro de la página:
6. A continuación, seleccione el ícono naranja "más" para crear la acción desencadenada deseada.
7. Seleccione “SetVariable” como la acción.
8. Luego, seleccione la variable que se va a establecer, que es “ventilador” (la última variable creada) y asigne el valor “1” como se muestra a continuación:
9. Guarde todos los cambios con el ícono verde de "check"
10. Repita los pasos 1-9 para programar un evento que apague la variable "ventilador". Nuestras aplicaciones asignan la siguiente lógica:
Si se activa: Si la variable temperatura(ºF) es menor o igual a 80 ºF.
Entonces acción: Establecer la variable Ventilador en 0.
Consejo Profesional: para saber cuándo se activaron los eventos o no, consulte sus registros de eventos.
2.Crear una solicitud GET desde Ubidots para controlar un dispositivo.
Los eventos configurados en el paso anterior están estableciendo un valor (1 o 0) en la variable ventilador. A continuación, utilizaremos los valores publicados en la variable ventilador para enviar un GET a un dispositivo que contiene un motor de relé adjunto al ventilador físico.
Cualquier dispositivo con el que esté familiarizado puede usarse para activar el ventilador físico. Muchos sistemas HVAC industriales contienen relés integrados para activar procesos, lo que hace que este paso sea aún más simple.* Como ejemplo simple, decidimos usar un NodeMCU ESP8266 vinculado a un motor de CC, pero siéntase libre de elegir el hardware con el que esté más familiarizado y que sea adecuado para su aplicación.
NOTA: Si va a utilizar otro dispositivo para recibir la solicitud GET, consulte la Referencia de la API REST de Ubidots o la documentación de MQTT para obtener recursos adicionales.
8.1. Configuración de Hardware NodeMCU ESP8266
1. Siga la tabla a continuación para establecer la conexión de cable entre el NodeMCU y un motor de CC.
NOTA: Tenga en cuenta que la dirección del ventilador es correlativa a la posición del cable. Si los cables están invertidos, el ventilador girará en la dirección opuesta.
8.2. Configuración de Firmware
1. Comience con las instrucciones de configuración del NodeMCU ESP8266 con el IDE de Arduino e instale las bibliotecas requeridas. Una vez que pueda ejecutar el ejemplo correctamente y recibir el comportamiento correcto utilizando Ubidots, consulte nuevamente esta guía.
2. Desde el IDE de Arduino, copie y pegue el siguiente código en el IDE de Arduino y asigne su TOKEN de Ubidots y credenciales de WiFi donde se indique.
/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsESPMQTT.h"/**************************************** * Definir Constantes ****************************************/#define TOKEN "xxxxxx" // Su TOKEN de Ubidots#define WIFINAME "xxxxxx" //Su SSID#define WIFIPASS "xxxxxx" // Su Contraseña WifiUbidots client(TOKEN);int fan = D6;/**************************************** * Funciones Auxiliares ****************************************/void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje recibido ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } if ((char)payload[0]=='1'){ digitalWrite(fan, HIGH); }else{ digitalWrite(fan, LOW); } Serial.println();}/**************************************** * Funciones Principales ****************************************/void setup() { // coloque su código de configuración aquí, para ejecutarse una vez: client.ubidotsSetBroker("business.api.ubidots.com"); // Establece el broker correctamente para la cuenta empresarial client.setDebug(false); // Pase un valor booleano verdadero o falso para activar mensajes de depuración Serial.begin(115200); pinMode(fan, OUTPUT); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); client.ubidotsSubscribe("siemens","fan"); //Inserte la fuente de datos y las etiquetas de las variables }void loop() { // coloque su código principal aquí, para ejecutarse repetidamente: if(!client.connected()){ client.reconnect(); client.ubidotsSubscribe("siemens","fan"); //Inserte la fuente de datos y las etiquetas de las variables } client.loop();}
3. Verifique su código con el ícono de "marca de verificación" en la esquina superior izquierda del IDE de Arduino.
4. Suba el código en su NodeMCU ESP8266 con el ícono de "flecha a la derecha" al lado del ícono de marca de verificación.
Con su código subido y su dispositivo en su lugar, ahora tiene un sistema autónomo activado por sus Eventos programados en Ubidots. Cuando la variable “Temperatura(ºF)” aumenta a 84 ºF, el ventilador se encenderá. Cuando la temperatura disminuya a 80 ºF, el ventilador se apagará, asegurando que las habitaciones nunca se calienten demasiado.
Para obtener información adicional sobre el dispositivo Siemens IoT2040 y la posición de Ubidots en el panorama del IoT Industrial, consulte el 10 de abril, Webinar: Los Datos Impulsan Decisiones; cómo extraer valor del IIoT y la Nube.