Introduction: Como Conectar El SONOFF WiFi Switch a Io.adafruit.com Via MQTT

Picture of Como Conectar El SONOFF WiFi Switch a Io.adafruit.com Via MQTT

El Itead SONOFF es un interruptor inteligente de WIFI. Es muy económico y completamente hackeable debido a que esta basado en el famoso ESP8266. En este ejemplo se va a re-configurar el dispositivo para conectar vía MQTT al servicio de io.adafruit.com.

Para reprogramar el ESP8266 vamos a utilizar el Arduino IDE y algunas librerías de Adafruit.

En el video se ve como se puede controlar el switch WIFI usando el Dashboard de io.adafruit.com y tambien los servicios de IFTTT.com con el Amazon Echo.

El SONOFF conecta via WIFI al internet y comunica con io.adafruit.com utilizando el protocolo MQTT. Internamente el SONOFF esta SUSCRITO y PUBLICA al topico(feed) ONOFF en el broker MQTT de io.adafruit.com.

Cuando el estatus del topico ONOFF cambia, el SONOFF esta notificado de inmediata porque esta SUSCRITO. Cuando el mensaje que se recibe es "ON" se prende el relay y un LED. Cuando el mensaje es "OFF" se apaga el relay y el LED. Cualquier sistema que puede PUBLICAR al topico puede activar el interruptor. Para demostrar se agregó un interfaz en el Dashboard, se hizo una receta en IFTTT.com para recibir comandos de voz y también hay un botón manual en el SONOFF que puede cambiar el estatus del topico ONOFF.

Step 1: Materiales Requeridos

Picture of Materiales Requeridos

Hardware

  1. Itead SONOFF Smart WiFi Switch
  2. Itead FOCA (o cualquier convertidor USB-Serial de 3.3V)
  3. Header de 4 pines hembra

Software

  • Arduino IDE 1.6.7 (Download)
    • ESP8266 Board Package (seguir estas instrucciones para agregar esta placa a su Arduino IDE)
    • Adafruit MQTT Library (Sketch-->Include Library-->Manage LIbraries...) NOTA: En junio 2016 de repente el sistema dejó de funcionar y tenia que actualizar la liberia de MQTT directamente de Github.
    • En Tools se debe asegurar que los parametros son los mismos que en el screenshot arriba.

Step 2: Conectando Al Interfaz De Programación

Picture of Conectando Al Interfaz De Programación

Desarmar el SONOFF es muy simple. La tapa esta pensada y abre deslizando una uña en el borde.

El fabricante del SONOFF es Itead y se nota que ellos usaron su propio convertidor USB-Serial para programar el ESP8266, la FOCA. El conector J1 en el centro de la segunda foto tiene 4 pines. El pin cuadrado es Vcc, seguido por RX, TX, y GND. Luego de soldar un header hembra, se puede insertar la FOCA directamente dejando el pin de DTR por fuera como se ve en la ultima foto. Favor asegurar que la FOCA esta en 3.3V antes de conectar.

Para referencia el pinout es el siguiente (desde arriba hacia abajo en la segunda foto)

SONOFF-------FOCA

1. GND---------GND
2. TX------------RX
3. RX------------TX
4. Vcc---------- Vcc (notar que es el pin cuadrado en la foto)

Cuando esta rearmando el SONOFF asegurar que el botón manual entra bien en el hueco y se puede mover libremente.

Step 3: Crear Una Cuenta En Io.adafruit.com

Picture of Crear Una Cuenta En Io.adafruit.com

io.adafruit.com es un broker de MQTT gratuito. Además de un simple broker MQTT tiene un interfaz para crear dashboards, mandar alertas y conectar con el servicio IFTTT. IFTTT (IF THIS THEN THAT) es un servicio que permite conectar sus aplicaciones en diversas formas.

  1. En http://io.adafruit.com crear un usuario
  2. Entrar en Settings-->VIEW AIO KEY y anotar la clave (vamos a utilizarlo luego)
  3. Entrar en My Account y anotar su USERNAME

Step 4: Actualizar El Firmware En El SONOFF

El firmware que utilizamos esta basado en el ejemplo básico de la librería de Adafruit MQTT.

DOWNLOAD FIRMWARE DE GITHUB

Para modificar el firmware para su red WIFI y su cuenta en io.adafruit.com solo hay que cambiar 4 parametros al principio del código.

Agregar el SSID y PASSWORD de su red WIFI.

Agregar su usuario de io.adafruit.com a AIO_USERNAME.

Agregar su clave de io.adafruit.com a AIO_KEY.

La clave se encuentra en Settings-->VIEW AIO KEY

/************************* WiFi Access Point *********************************/
#define WLAN_SSID   "---ssid---"
#define WLAN_PASS   "---password---"
/************************* Adafruit.io Setup *********************************/
#define AIO_SERVER   "io.adafruit.com"
#define AIO_SERVERPORT  1883 // use 8883 for SSL
#define AIO_USERNAME    "adafruit_mqqt-user"
#define AIO_KEY         "adafruit_io_key"
  1. Asegurar que el SONOFF no esta conectado al 120VAC cuando esta actualizando el software o conectado a la FOCA!
  2. Desconectar el conector USB del SONOFF y mantener el botón apretado.
  3. Conecta el USB de nuevo y luego soltar el botón. Ahora el ESP8266 debe estar en modo para programar.
  4. Haga click en UPLOAD en el Arduino IDE para subir el código.

En el Serial Monitor del IDE (tiene que estar en 115200 bps) debe empezar a ver los mensajes de que esta conectando al WIFI y al MQTT.

Comportamiento:

  1. LED parpadeando indica que el SONOFF se encuentra conectando a la red WIFI.
  2. LED apagado significa que el SONOFF logró conectar a la red WIFI.
  3. Apretando el botón manda un mensaje por MQTT y prende/apaga el relay.

Step 5: Preparar El Dashboard En Io.adafruit.com

Picture of Preparar El Dashboard En Io.adafruit.com
  1. En YOUR FEEDS seleccionar CREATE FEED.
  2. En el NAME ponga "onoff" en minúscula. Luego seleccionar el botón CREATE FEED.
  3. En YOUR DASHBOARDS seleccionar CREATE DASHBOARD.
  4. En DASHBOARD NAME escoge el nombre de su dashboard. Luego selecciona el botón CREATE DASHBOARD.
  5. En el Dashboard seleccionar el icono azul "+" para agregar un nuevo block.
  6. CREATE un nuevo switch (Toggle Button).
  7. Elegir el Feed "onoff" apretando el botón CHOOSE y seleccion NEXT.
  8. En Button On Text escribe "ON" (mayúscula).
  9. En Button Off Text scribe "OFF" (mayúscula).
  10. CREATE BLOCK.
  11. Su switch debe empezar a funcionar de una vez.

Step 6: SONOFF Pinouts

Para referencia los pines del SONOFF son los siguientes:

Pin 0 Botón Manual

Pin 12 Relay

Pin 13 LED

Comments

bepece (author)2017-05-03

​Buenas,
​Estoy esperando con ganas mi Sonoff TH10 para poder empezar en este mundo.
En el Sonoff TH10 se puede conectar un sensor de temperatura de serie para parametrizar por él.

Ahora varias preguntas:
​1. ¿se puede conectar otro tipo de sensor? (por ejemplo, sensor de movimiento)

2. ¿se pueden usar varios sensores al mismo tiempo?

Disculpar mi impaciencia y plantearos dudas sin tener el hardware :D

Gracias.

LuisV150 (author)2017-04-19

Hola.

He flasheado sin problemas el sonoff y todo funciona ok, no obstante la reconexión wifi no funciona, se queda reconectando infinitamente. He leído en otros foros que esto es muy común. ¿Conoces el problema? ¿tiene solución?

Saludos y gracias.

RodriC1 (author)2016-09-23

No me estoy pudiendo conectar al MQTT y antes si, te paso? este es el error que aparece:

Connecting to MQTT... Fatal exception 3(LoadStoreErrorCause):

epc1=0x4000bf3c, epc2=0x00000000, epc3=0x00000000, excvaddr=0x40230440, depc=0x00000000

RodriC1 (author)RodriC12016-09-23

Lo hice andar sacando los PROGMEM! Te hice un pull en Git

Gracias!

cfieiras (author)RodriC12017-04-08

Tengo el mismo error, podrias subir el codigo?

arojas11 (author)2017-03-25

Orden de los pines del Sonoff POW en la tarjeta:
GND
TX
RX
VDD

lerolo (author)2017-02-28

Hola! sabes si el convertidor de usb a serie http://www.ebay.es/itm/252476557271 sirve para programar el SONOFF?

Muchas gracias por adelantado!

CRCibernetica (author)lerolo2017-02-28

El voltaje del convertidor de USB-Serial debe ser 3V. No veo el dato en la descripcion del producto.

lerolo (author)CRCibernetica2017-03-01

El producto que te comentaba tiene estas caracteristicas:

Características:

Controlador PL2303HX

5 pines: 3.3v, 5.0v, TXR, RDX, GND.

SO soportados: Win ME, Win2003, Win XP, Vista, Win 7.

5 cables hembra/hembra tipo Dupont de colores aleatorios pero no repetidos.

Cubierta aislante termoretráctil.

Indicadores led de transmisión de datos.

Fusible protector de autorecuperación de 2,5A.

Sin embargo pregunté al vendedor y me recomendó este otro productor porque dice que necesito un adaptador FTDI a USB:

considero que sería mejor opción adquirir este: http://www.ebay.es/itm/FT232RL-FTDI-USB-a-TTL-Con...

que tiene estas caracteristicas:

Características:


  • Tipo: Conversor USB-Serie TTL
  • Chip: FT232RL
  • Comunicación: Transceptor RX/TX TTL COM Virtual RS232
  • Voltaje: 3,3 o 5V dc mediante jumper
  • Pines: DTR, RX, TX, VCC, CTS, GND +All pin
  • Protecciones: Fusible electrónico hasta 500mA
  • Tamaño: 33 x 17 mm Pitch 2,54mm
  • Conexión: Mini USB
  • Driver: W98/ W2000/ W2003/ W2008/ W-XP/ W-Vista/ W7/ W8/ Linux/ Mac

Antes de conectar en Windows instalar los últimos controladores de FTDI

Pagina driver del fabricante: http://www.ftdichip.com/Drivers/VCP.htm

No he probado nunca a programar ningun Sonoff, por eso pregunto, por ir un poco mas a lo seguro. ¿Que te parece este otro articulo?

Muchas gracias por tu atencion.

RodriC1 made it! (author)2016-07-01

Buenisimo! Funciona perfecto! Felicitaciones buen trabajo

About This Instructable

16,948views

23favorites

License:

More by CRCibernetica:Como Usar El MIT App Inventor Con El Itead BLE ShieldComo conectar el SONOFF WiFi Switch a io.adafruit.com via MQTTComo usar una Printrbot Play de Inventoría
Add instructable to: