Ir al contenido principal
Todas las coleccionesTutoriales de proyectos IoT
Tutorial de SONOFF: Un interruptor inteligente Wi-Fi por $5
Tutorial de SONOFF: Un interruptor inteligente Wi-Fi por $5

Aprende a controlar el dispositivo SONOFF basado en ESP8266 utilizando Ubidots.

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

En esta guía aprenderás cómo controlar cualquier aparato de 110-240V por $5, utilizando el dispositivo SONOFF de Itead. Comparado con los enchufes inteligentes WiFi de $30 que hay, el SONOFF es una gran alternativa para hacer proyectos de IoT en el hogar inteligente e incluso industriales a mayor escala. Además, se basa en el popular chip Wi-Fi ESP8266, lo que lo hace compatible con el entorno de Arduino y otros recursos como nuestras bibliotecas ESP en Ubidots.

El SONOFF viene con su propio firmware y aplicación móvil, pero creemos que su principal valor radica en su factor de forma y bajo precio. ¡Por eso decidimos hacer un poco de hacking y desatar su pleno potencial!

¡Ten cuidado! No manipules el SONOFF mientras esté conectado a las líneas de 110/240V AC

Descripción general

El SONOFF contiene un relé, un chip WiFi ESP8266 y el circuito necesario para alimentarlo con la línea de CA de un enchufe. También viene en un bonito paquete que lo hace parecer más profesional que un proyecto promedio de bricolaje en casa.

Requisitos

Configuración

  1. Desmonta el dispositivo SONOFF, esto es para acceder al pinout TTL del SONOFF, que necesitaremos para programar el ESP8266 a bordo. Necesitarás soldar cuatro pines, que se muestran en la imagen a continuación.

2. Conecta los pines de UARTbee a los pines del SONOFF, siguiendo este pinout:

UARTbee SONOFF VCC VCC TX RX RX TX GND GND

3. Ve a la IDE de Arduino, haz clic en Archivos -> Preferencias e ingresa esta URL para poder acceder a las bibliotecas de ESP8266 para Arduino:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

en el campo URLs del Administrador de Placas Adicionales. Este campo admite múltiples URLs, separándolas con comas, en caso de que ya tengas otras URLs escritas.

4. Abre el Administrador de Placas desde el menú Herramientas -> Placa y instala la plataforma ESP8266. Selecciona tu placa ESP8266 desde el menú Herramientas > Placa después de la instalación.

5. Descarga la biblioteca UbidotsESPMQTT aquí.

6. Ahora, haz clic en Sketch -> Incluir Biblioteca -> Añadir Biblioteca .ZIP.

7. Selecciona el archivo .ZIP de UbidotsESPMQTT y luego haz clic en “Aceptar” o “Elegir”.

8. Cierra la IDE de Arduino y ábrela nuevamente.

Crear una Variable de Ubidots

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

2. Ve a Fuentes y haz clic en el símbolo de más naranja.

3. Establece el nombre de la fuente de datos y verifica la etiqueta

4. Crea una nueva variable para el relé y verifica la etiqueta

Crear un Widget de Botón

Ahora, para controlar el dispositivo SONOFF, necesitarás crear un widget de botón en tu cuenta de Ubidots. Este widget establecerá tu variable RELAY en "1" o "0":

1. Ve a Tablero y haz clic en el icono de más naranja.

2. Haz clic en Control -> Interruptor y selecciona la fuente de datos y la variable que se creó anteriormente para controlar.

Codificando tu SONOFF

Aquí está el código que enciende/apaga el dispositivo SONOFF. Para usar este código no olvides cambiar el TOKEN por el token de tu cuenta de Ubidots. Cambia WIFISSID y PASSWORD por tus credenciales de red.

Para subir el código al SONOFF necesitarás:

1. Conectar el UARTbee al USB de tu PC.

2. Presionar el botón del SONOFF y desconectar el USB al mismo tiempo.

3. Mientras sigas presionando el botón, vuelve a conectar el USB.

Estos pasos están destinados a poner el SONOFF en modo de programación.

Cuando estés listo, sube el código desde la IDE de Arduino:

/**************************************** * Incluir Bibliotecas ****************************************/#include "UbidotsESPMQTT.h"/**************************************** * Definir Constantes ****************************************/#define TOKEN "..." // Tu TOKEN de Ubidots#define WIFINAME "..." //Tu SSID#define WIFIPASS "..." // Tu Contraseña Wifi#define MQTTCLIENTNAME "..." // Tu Nombre de Cliente MQTT, debe ser único, así que recomendamos elegir un nombre ASCCI aleatorio#define RELAY 12#define LED 13Ubidots client(TOKEN, MQTTCLIENTNAME);/**************************************** * 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]);  }  Serial.println();  if ((char)payload[0] == '1') {      digitalWrite(RELAY, HIGH); //Encender relé      digitalWrite(LED, LOW); //Encender led  }  if ((char)payload[0] == '0') {      digitalWrite(RELAY, LOW); //Apagar relé      digitalWrite(LED, HIGH); //Apagar led  }}/**************************************** * Funciones Principales ****************************************/void setup() {  // pon tu código de configuración aquí, para ejecutarse una vez:  Serial.begin(115200);  client.wifiConnection(WIFINAME, WIFIPASS);  pinMode(RELAY, OUTPUT);  pinMode(LED, OUTPUT);  digitalWrite(LED, HIGH);  client.begin(callback);  client.ubidotsSubscribe("relay","sonoff"); //Inserta las etiquetas de la fuente de datos y la variable  }void loop() {  // pon tu código principal aquí, para ejecutarse repetidamente:  if(!client.connected()){      client.reconnect();      Serial.println(RELAY);      client.ubidotsSubscribe("relay","sonoff"); //Inserta las etiquetas de la fuente de datos y la variable      }  client.loop();  }

ver rawSONOFF-mqtt alojado con ❤ por GitHub

Conecta tu Interruptor Inteligente y comienza a controlar cosas

Ahora es el momento de hacer las cosas "inteligentes" añadiendo tu SONOFF a ellas; controla tus luces, abre o cierra tu garaje, etc.

Dando un paso más allá...

Ubidots es un servicio en la nube que empodera a miles de ingenieros en todo el mundo para construir proyectos de IoT, tanto en educación como en empresas. Para aprender cómo Ubidots puede ayudar a tu negocio, consulta nuestras características o déjanos un mensaje.

Publicado originalmente en Ubidots Blog el 20 de mayo de 2016.

¿Ha quedado contestada tu pregunta?