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

En esta guía aprenderá a controlar cualquier electrodoméstico de 110-240 V por $ 5 con el dispositivo SONOFF de Itead . Comparado con los $ 30 disponibles en el mercado, SONOFF es una excelente alternativa para IoT a gran escala. Además, se basa en el popular chip WiFi ESP8266, lo que lo hace compatible con el entorno 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 ventaja reside en su diseño y bajo precio. ¡Por eso decidimos probarlo y liberar todo su potencial!

Descripción general

¡Precaución! No manipule el SONOFF mientras esté conectado a la red eléctrica de 110/240 V CA

El SONOFF incluye un relé, un chip WiFi ESP8266 y los circuitos necesarios para alimentarlo con la corriente alterna de una toma de corriente. Además, viene en un elegante diseño que le da un aspecto más profesional que un proyecto de bricolaje casero.

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:
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 > Menú Placa e instale la plataforma ESP8266. Seleccione su placa ESP8266 desde Herramientas > Menú Placa después de la instalación.
  2. Descargue la biblioteca Ubidots aquí .
  3. Ahora, haga clic en Boceto -> Incluir biblioteca -> Agregar biblioteca .ZIP.
  4. Seleccione el archivo .ZIP de Ubidots ESPMQTT y luego haga clic en “Aceptar” o “Elegir” .
  5. Cierre el IDE de Arduino y ábralo 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

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

Crear un widget de botón

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

  1. Vaya al Dashboard y haga clic en el ícono naranja con el signo más .
  2. Haga clic en Control -> Cambiar y seleccione la Fuente de datos y la Variable a controlar creada anteriormente.

Codificación de su SONOFF

Aquí está el código que enciende y apaga el dispositivo SONOFF. Para usarlo, no olvide cambiar el token por el token de su cuenta de Ubidots. Cambie el ID de WIFI y la contraseña por sus credenciales de red.

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

  1. Conecte el UARTbee al USB de su PC.
  2. Presione el botón SONOFF y desconecte el USB al mismo tiempo.
  3. Mientras sigue presionando el botón, vuelva a conectar el USB.

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

Cuando esté listo, cargue el código desde el IDE de Arduino:

/**************************************** * Incluir bibliotecas ****************************************/ #include "UbidotsESPMQTT.h" /*************************************** * Definir constantes ****************************************/ #define TOKEN "..." // Su TOKEN Ubidots #define WIFINAME "..." // Su SSID #define WIFIPASS "..." // Su contraseña 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 Ubidots client(TOKEN, MQTTCLIENTNAME); /**************************************** * Funciones auxiliares ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mensaje llegado ["); 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); //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.ubidotsSubscribe("relay","sonoff"); //Insertar la fuente de datos y las etiquetas de las variables } client.loop(); }

Conecta tu Smart Switch y empieza a controlar cosas

Ahora es el momento de hacer las cosas “inteligentes” añadiéndoles tu SONOFF; controla tus luces, abre o cierra tu garaje, etc.

Dando un paso más…

Ubidots es un servicio en la nube que permite a miles de ingenieros de todo el mundo desarrollar IoT , tanto en el ámbito educativo como empresarial. Para saber cómo Ubidots puede ayudar a su empresa, consulte nuestras funciones o envíenos un mensaje.