Proyectos IoT

Tutorial SONOFF: Un Smart Switch Wi-Fi por 5 $

Mateo Vélez
· 4 min de lectura
Enviar por correo electrónico

En esta guía aprenderás a controlar cualquier electrodoméstico de 110-240V por $ , utilizando el dispositivo SONOFF de Itead . En comparación con los $ 30 que existen, SONOFF es una excelente alternativa para realizar IoT a mayor escala. Además, está basado en el popular chip Wi-Fi ESP8266, lo que lo hace compatible con el entorno Arduino y otros recursos como nuestras bibliotecas ESP en Ubidots .

SONOFF viene con su propio firmware y aplicación móvil, pero creemos que su principal valor radica en su factor de forma y su bajo precio. ¡Es por eso que decidimos piratear un poco y liberar todo su poder!

Descripción general

sonoff_wifi_wireless_smart_switch.jpg

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

El SONOFF contiene un relé, un chip WiFi ESP8266 y los circuitos necesarios para alimentarlo con la línea de CA de una toma de corriente. También viene en un bonito paquete que lo hace parecer más profesional que un proyecto de bricolaje promedio en casa.

Requisitos

Configuración

  1. Desmonte el dispositivo SONOFF, esto es para acceder al pinout TTL de SONOFF, que necesitaremos para programar el ESP8266 integrado. Necesitará soldar cuatro pines, como se muestran en la imagen a continuación.
  2. Conecte los pines UARTbee a los pines SONOFF, siguiendo esta distribución de pines:
SONOFF-PINOUT.jpg
UARTbee HIJO
VC CVCC
Texas RX
RX Texas
Tierra Tierra

Vaya al IDE de Arduino, haga clic en Archivos -> Preferencias e ingrese esta URL para poder acceder a las bibliotecas de ESP8266 para Arduino:

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

en el URL del Administrador de tableros adicionales . Este campo admite múltiples URL, separándolas con comas, en caso de que ya tenga otras URL escritas.

  1. Abra el Administrador de placas desde Herramientas -> Placa e instale la plataforma ESP8266. Seleccione su placa ESP8266 en Herramientas > Placa después de la instalación.
  2. Descargue la Ubidots ESPMQTT aquí .
  3. Ahora, haga clic en Sketch -> Incluir biblioteca -> Agregar biblioteca .ZIP.
  4. Selecciona el archivo .ZIP de Ubidots ESPMQTT y luego haz clic en “Aceptar” o “Elegir” .
  5. Cierra el IDE de Arduino y ábrelo nuevamente.

Crear una variable Ubidots

  1. Ubidots .
  2. Vaya a Fuentes y haga clic en el símbolo más naranja .
  3. Establezca el nombre de la fuente de datos y verifique la etiqueta
ezgif.com-video-a-gif (2).gif

4. Cree una nueva variable para el relé y verifique la etiqueta.

ezgif.com-video-a-gif (3).gif

Crear un widget de botón

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

  1. Vaya al Dashboard y haga clic en el ícono más naranja .
  2. Haga clic en Control -> Cambiar y seleccione la fuente de datos y la variable para controlar creadas anteriormente.
ezgif.com-video-a-gif (4).gif

Codificando tu SONOFF

Aquí está el código que enciende/apaga el dispositivo SONOFF. Para utilizar este código, no olvides cambiar el TOKEN por el token de tu cuenta de Ubidots . Cambie WIFISSID y CONTRASEÑA con sus credenciales de red.

Para cargar el código en SONOFF necesitarás:

  1. Conecte el UARTbee al USB de su PC.
  2. Pulsa el botón de SONOFF y desconecta el USB al mismo tiempo.
  3. Sin dejar de presionar el botón, conecte nuevamente el USB.

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

sonoff-connect.gif

Cuando estés listo, carga el código del IDE de Arduino:

/**************************************** * Incluir Bibliotecas ****** ********************************/ #include " Ubidots ESPMQTT.h" /****** ********************************** * Definir constantes ************* **************************/ #define TOKEN "..." // Tu TOKEN Ubidots #define WIFINAME "..." / /Su SSID #define WIFIPASS "..." // Su Pase Wifi #define MQTTCLIENTNAME "..." // Su nombre de cliente MQTT, debe ser único por lo que recomendamos elegir un nombre ASCCI aleatorio #define RELAY 12 #define LED 13 Cliente Ubidots (TOKEN, MQTTCLIENTNAME); /**************************************** * Funciones auxiliares ****** ********************************/ devolución de llamada nula (tema char*, carga útil byte*, longitud int sin signo) { Serial.print("El mensaje llegó ["); Serial.print(tema); Serie.print("] "); para (int i=0;i <length;i++) { Serial.print((char)payload[i]); } Serial.println(); if ((char)payload[0] == '1') { digitalWrite(RELAY, HIGH); //On relay digitalWrite(LED, LOW); //On led } if ((char)payload[0] == '0') { digitalWrite(RELAY, LOW); //Off relay digitalWrite(LED, HIGH); //Off led } } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); pinMode(RELAY, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); client.begin(callback); client.ubidots Suscribirse("relay","sonoff"); //Inserte la fuente de datos y las etiquetas de la variable } client.loop(); }

Conecta tu Smart Switch y empieza a controlar las cosas

Ahora es el momento de hacer las cosas “inteligentes” añadiéndoles tu SONOFF; controlar las luces, abrir o cerrar el garaje, etc.

Dando un paso más…

Ubidots es un servicio en la nube que permite a miles de ingenieros de todo el mundo crear IoT , tanto en la educación como en la empresa. Para saber cómo Ubidots puede ayudar a su empresa, consulte nuestras funciones o déjenos un mensaje.