Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Controla cualquier dispositivo de baja tensión de forma remota utilizando XinaBox xChip OC03 (PCA9554A) y CW01 (ESP8266) a través de Ubidots sobre HTTP
Controla cualquier dispositivo de baja tensión de forma remota utilizando XinaBox xChip OC03 (PCA9554A) y CW01 (ESP8266) a través de Ubidots sobre HTTP

Aprende a controlar dispositivos de forma remota utilizando XinaBox xChip OC03 (expansor de IO PCA9554A y fotorelè TLP241A) y CW01 (ESP8266)

Sergio M avatar
Escrito por Sergio M
Actualizado hace más de 3 meses

El núcleo ESP8266 y el módulo Wi-Fi (CW01) permiten a los usuarios enviar datos desde xChips modulares de XinaBox a la nube y controlar el dispositivo de acuerdo con los datos obtenidos. Los datos pueden ser analógicos o digitales.

CW01 se comunica con OC03 a través del protocolo I2C. OC03 tiene un expansor de IO a bordo (PCA9554A) conectado a un fotorelè aislado ópticamente (TLP241A). CW01 recupera datos de la nube y los transmite a OC03

Al final de esta guía, podrás controlar el fotorelè de forma remota utilizando Ubidots y Xinabox xChips IP01, CW01 y OC03.

Requisitos

1. Configuración del Hardware

Conecta CW01, OC03 y IP01 juntos utilizando los conectores XC10 xBUS. Puedes conectarlo como se muestra en el diagrama a continuación. Por favor, consulta esta guía sobre cómo ensamblar xChips en general.

Luego, conecta tu dispositivo y PC a través del USB de IP01.

2. Configuración del Arduino IDE

2. Instala estas bibliotecas en Arduino:

NOTA: Si no estás familiarizado con cómo instalar bibliotecas, consulta el siguiente enlace: Instalando bibliotecas de Arduino

3. Con la plataforma ESP8266 instalada, selecciona el dispositivo ESP8266 con el que estás trabajando. En este caso, estamos trabajando con un “CW01”. Para seleccionar tu placa desde el Arduino IDE, selecciona Herramientas > Placa “CW01”.

3. Crear Botón de Interruptor

1. Inicia sesión en tu cuenta de Ubidots:

2. Crea un nuevo dispositivo. Para crear un nuevo dispositivo, haz clic en el icono "+" en la esquina superior derecha de la sección de Dispositivos de tu cuenta. Luego, asigna “OC03” como nombre del dispositivo:

Una vez que se crea el dispositivo, aparecerá listado en la sección de dispositivos:

3. Entra al dispositivo creado y agrega una nueva variable cruda presionando el icono "+". La variable debe llamarse “estado”:

Una vez que se crea la variable, deberías tener el siguiente resultado:

NOTA IMPORTANTE: Para poder establecer la comunicación, la etiqueta del dispositivo y de la variable asignadas en la plataforma deben ser las mismas que las asignadas en el código. Para aprender más sobre Dispositivos y Etiquetas de Variables, consulta el siguiente artículo.

4. Ve a la sección del panel de control ("Datos > Paneles de Control") para crear un nuevo widget de control. Para crear un nuevo widget de control en el panel de control, haz clic en el icono “+” en la esquina superior derecha de la interfaz de usuario del panel de control. Luego, selecciona "Interruptor" como tipo de widget y asigna el dispositivo y la variable creados anteriormente.

Una vez que se crea el widget, deberías tener el siguiente resultado:

4. El Código

1. Incluir bibliotecas:

#include "Ubidots.h"#include <xOC03.h>#include <xCore.h>

2. Ingresa tus credenciales de Wi-Fi y tu TOKEN de Ubidots donde se indica:

const char* UBIDOTS_TOKEN = "...";  // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-Ficonst char* DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM = "oc03";  // Reemplaza por la etiqueta de tu dispositivoconst char* VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM = "state";       // Reemplaza por la etiqueta de tu variable

NOTA: Antes de subir el código a la placa, asegúrate de asignar la etiqueta del dispositivo y de la variable asignadas respectivamente.

3. Una vez, consulta los comentarios para autoexplicación:

void setup() {  Serial.begin(74880);#ifdef ESP8266  Wire.pins(2, 14);#endif  pinMode(LED_BUILTIN, OUTPUT);  ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); //Establecer Wi-Fi  //conexión con el punto de acceso  Wire.begin();  OC03.begin();  //ubidots.setDebug(true); // Descomentar esta línea para activar DEBUG}

Bucle de operación, para mantenerlo en funcionamiento y actualizándose continuamente:

void loop() {  float value = ubidots.get(DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM, VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM);  if (value != ERROR_VALUE) {    if (value == 1.0) {      OC03.write(HIGH);      digitalWrite(LED_BUILTIN, 1);    } else {      OC03.write(LOW);          digitalWrite(LED_BUILTIN, 0);    }  }  delay(1000);}

El código completo, consulta los comentarios para una explicación detallada:

#include "Ubidots.h"#include <xOC03.h>#include <xCore.h>#define LED_BUILTIN 13const char* UBIDOTS_TOKEN = "...";  // Pon aquí tu TOKEN de Ubidotsconst char* WIFI_SSID = "..."; // Pon aquí tu SSID de Wi-Ficonst char* WIFI_PASS = "..."; // Pon aquí tu contraseña de Wi-Ficonst char* DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM = "oc03";  // Reemplaza por la etiqueta de tu dispositivoconst char* VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM = "state";       // Reemplaza por la etiqueta de tu variablexOC03 OC03;Ubidots ubidots(UBIDOTS_TOKEN, UBI_HTTP);void setup() {  Serial.begin(74880);#ifdef ESP8266  Wire.pins(2, 14);#endif  pinMode(LED_BUILTIN, OUTPUT);  ubidots.wifiConnect(WIFI_SSID, WIFI_PASS); //Establecer Wi-Fi  //conexión con el punto de acceso  Wire.begin();  OC03.begin();  //ubidots.setDebug(true); // Descomentar esta línea para activar DEBUG}void loop() {  float value = ubidots.get(DEVICE_LABEL_TO_RETRIEVE_VALUES_FROM, VARIABLE_LABEL_TO_RETRIEVE_VALUES_FROM);  if (value != ERROR_VALUE) {    if (value == 1.0) {      OC03.write(HIGH);      digitalWrite(LED_BUILTIN, 1);    } else {      OC03.write(LOW);          digitalWrite(LED_BUILTIN, 0);    }  }  delay(1000);}

5. Crear Archivo Binario

Utilizarás nuestro software xFlasher para flashear el código una vez que esté listo. El xFlasher sube archivos .bin a los núcleos CW01 y CW02.

NOTA IMPORTANTE: Consulta la siguiente guía sobre cómo usar xFlasher.

1. Para crear el archivo .bin utilizando el Arduino IDE, "Sketch > Exportar binario compilado":

En este punto, el archivo .bin se exporta a la misma carpeta en la que se guarda el archivo Arduino.ino.

2. Ve al panel de control de Ubidots para cambiar el estado del widget de interruptor creado anteriormente y ver el resultado en el OC03.

Ahora puedes controlar el OC03 de forma remota utilizando Ubidots:

6. Resumen

En este tutorial, te hemos mostrado cómo controlar de forma remota un fotorelè de baja tensión utilizando XinaBox y Ubidots. El tutorial es bastante simple y toma alrededor de 15-20 minutos.

Otros lectores también han encontrado útil...

¿Ha quedado contestada tu pregunta?