Veamos en esta entrada como programar los interruptores inálambricos Sonoff con el mismo firmware que llevan los nodos de Logic Wire.

sonoff-headline

¿Qué es Sonoff?

Sonoff es un producto de Itead Studio. Básicamente son unos interruptores WiFi, que emplean un relé de láminas para controlar una carga de potencia (10 A según las especificaciones). Curiosamente parecidos a los nodos de control de Logic Wire, pero sin relación alguna de parentesco. ¿Su coste? Poco más de 4.50 €. Sorprendente.

Internamente, montan un chip ESP8266EX con 1 MiB de flash. Además, llevan un pulsador conectado al GPIO0 (necesario para poner el chip en modo programación), y un LED en GPIO13. El relé es accesible por el pin GPIO12. Y todo ello en una práctica caja de plástico ABS, con tornillos de sujeción.

Cómo cargar un nuevo firmware

En este ejemplo, usaremos el firmware disponible en el repositorio de Logic Wire, en Light Node. Solo es necesario realizar una pequeña modificación en la configuración de los pines, y cambiar el Makefile para que se adapte al nuevo tamaño de la flash. Estos cambios ya están aplicados en el código del repositorio, por lo que simplemente es necesario compilar con el habitual make.

Para programar el Sonoff, será necesario soldar una tira de 4 pines en el hueco disponible para ello. El pinout es el siguiente:

sonoff-serial-pinout

Para entrar en modo programación, conecta primero el FTDI a esta tira de pines. Después, pulsa el switch que incorpora el Sonoff y, sin soltar el switch, conecta la alimentación del dispositivo. Una vez haya arrancado, se puede soltar el botón. En ese estado, para cargar el firmware ejecuta:

$ make upload

Este firmware incorpora programación vía OTA, por lo que, en adelante, es posible programarlo utilizando ese medio, ejecutando:

$ make ota-upload NODE_IP=a.b.c.d

Todas las herramientas y mecanismos descritos en la entrada sobre Logic Wire antes mencionada son aplicables a este dispositivo.

Referencias