Módulos Sonoff manejados con Virtuino

Nuestro compañero Diego ha colocado un estupendo tutorial en el foro con el que contamos en BilbaoMakers. Como el asunto tiene tanto interés lo voy a transcribir (es un copy paste directo) a este blog para que tenga toda la divulgación que merece. Os dejo con él.

 

Bueno, he conseguido una cosa muuuy grande y es hacer funcionar el módulo básico de Sonoff con Virtuino.

Los módulos Sonoff son esta cosa que traen el famoso controlador wifi ESP8266 + fuente de alimentación 220V + relé todo incluido en una cajita y muy baratito: http://sonoff.itead.cc/en/

Para hacerlo funcionar con Virtuino tenemos que conseguir cargarle el firmware NodeMCU y meter un programita que nos permita operar la salida que gobierna el relé. Los pasos son los siguientes:

OJO OJO!!!!. HACER TODO ESTO CON EL MÓDULO DESCONECTADO DE LA CORRIENTE 220V. NO CONECTAR EN NINGÚN MOMENTO MIENTRAS LA CAJA DEL SONOFF LA TENGAMOS ABIERTA O NOS ACABARÁ DANDO UN PEPINAZO DE AUPA, ADEMÁS DE QUE, COMO LO TENGAMOS CONECTADO A 220V A LA VEZ QUE AL PC, ALGO NOS CARGAMOS SEGURO.

1.- Soldar 4 postes en el módulo Sonoff para poder pillar las señales GND, RX, TX y VCC (3.3V). En la foto adjunta, en amarillo, cual es el grupo de agujeros. El 1 (DHT11) no lo vamos a usar ahora.

2.- Conseguir un FTDI de 3.3V (el ESP8266 va a esta tensión) y hacerse un cable para llevar a la placa VCC, GND y TX y RX cruzadas. Esto es lo que vamos a usar para programar.

3.- Ahora nos bajamos este programita tan chulo que tienen preparado los chicos de NodeMCU para cargarle el firmware al parato: https://github.com/nodemcu/nodemcu-flas … 64/Release
El programita lo configuramos al puerto de nuestro FTDI, y con el módulo desconectado para que no tenga alimentación, le damos a instalar el firm. Acto seguido, rápido rápido, dejamos apretado el botón del Sonoff, lo conectamos al FTDI para que se alimente y después soltamos el botón. El truco de esto es que el ESP8266 del módulo se pone en modo programación cuando lo enciendes (lo alimento con el FTDI) si mantienes el botón apretado.

4.- Ahora preparamos el IDE de Arduino. Tenemos que tener la ultima versión para poder hacer esto. Hay que ir y añadirle las Placas del ESP8266. Esto se consigue en Archivos –> preferencias y hay una apartado que dice: «Gestor de URL Adicionales de tarjetas». Ahí añadimos esta URL que tiene la info de varias placas de ESP8266: http://arduino.esp8266.com/stable/packa … index.json

5.- Una vez añadidas las placas añadiremos también la librería de VirtuinoESP, que se baja de aquí: http://users.sch.gr/iliaslamprou/index. … -downloads y se añade en: Programa –> Añadir fichero.

6.- Cerramos el IDE de Arduino y lo abrimos de nuevo. Vamos a ver si tenemos las placas del ESP. Elegimos la NodeMCU 1.0. Ponemos tambien la config de velocidad de nuestro FTDI. Que quede asín ma o meno.

7.- Ahora cargamos este programita que cuelgo aquí en el IDE y configuramos la info de nuestra WIFI (SSID y parametros IP). Para meterlo en el Sonoff más o menos como antes para el firmware. Con él desconectado, darle a subir y rápido rápido dejar el botón apretado y conectarlo. Cuando veamos que el led TX del FTDI parpadea un poco (el IDE ya está intentando programarlo) soltar el botón y empezarán a parpadear los LED del FTDI. En el IDE salen unos puntos como que esta subiendo algo. Esperamos (tarda).

Sonoff_Virtuino.7z

Una vez que acaba se reiniciará e intentará conectarse a la wifi. Si todo va OK, en el programa he puesto yo que el led verde se quede encendido 2 segundos para indicar que se conectó a la wifi, y después el LED se enciende a la vez que se activa el relé. Desde un PC ya deberíamos hacer ping a la IP que le hayamos puesto. Desde Virtuino configuramos el chisme como cualquier NodeMCU (más info aquí: http://users.sch.gr/iliaslamprou/index. … ng-started ). El gobierno del Relé se hace mediante el canal virtual DV0. El relé no funciona si no está conectado a la corriente 220V, pero el LED sí. Podemos probar si funciona y en ese caso ya sería hora de cerrar el módulo y conectarlo donde queramos. Ahora ya sí a la RED sin peligro de fritura ….

Bueno a ver si lo intenta alguien y le sale. Hace falta un poco de paciencia y una pizca de experiencia con Arduino pero no es muy complicado. Conseguir gobernar esto con Virtuino nos brinda infinitas posibilidades que no tiene el dispositivo con el software original.

La primera versión del tutorial enseguida ha ido evolucionando y, recién publicada,  Diego ya ha realizado las primeras modificaciones.

Pongo la versión definitiva del software en la que ya se puede encender y apagar tambien con el botón del módulo.

La info está dentro del código pero la pongo aquí también. Lo que hace es esto:

// —————————————————————————————————
// Programa Base para el uso del módulo Sonoff Basic con Virtuino
// Gobierna el relé a través del canal DV0.
// El Led parpadea mientras intenta conectar a la WiFi y, una vez conectado, sigue al estado del relé.
// También hace un pequeño flasheo cíclico cada 2s al estado contrario para vigilar que el módulo vive.
// Aparte, desde Virtuino también se puede gobernar manualmente con el pulsador y el estado se actualiza en el canal DV0 de Virtuino.
// —————————————————————————————————
// Version 1.0 – Junio de 2017
// Diego Maroto. BilbaoMakers
// —————————————————————————————————

Este no es un tutorial teórico porque se está implementando en un dispositivo tras otro. Así,  Diego nos va ofreciendo a cada paso mejoras y reflexiones. Como podéis comprobar, el asunto está abierto y en continuo proceso de mejora.

Ayer configuramos otros tres sonoff con este método y van ¡GENIALLLL!

Lo iremos puliendo un poco más porque esta ha sido la primera «arrancada». No tengo muy claro que haya que instalar el NodeMCU primero. Creo que se puede programar directamente desde Arduino. Con el próximo módulo nuevo que consigamos hay que hacer la prueba.

Poco a poco vamos a aprender mucho de este cacharrillo y de todas las placas con ESP8266 que es un SoC (System on a Chip). Muuuy interesante!!!

6 comentarios en “Módulos Sonoff manejados con Virtuino”

  1. Muchas gracias por compartir esta super interesante publicación. Quería consultarle si cuando yo realice está programación para controlar el dispositivo desde virtuino sigue la funcionalidad con el ewlink que es la APP propia de Sonoff. Y si las funciones que estén programas en el ewlink se siguen manteniendo como temporizadores, tiempo de auto apagado, entre otros. Gracias

  2. muy interesante a la brevedad lo pondre en practica solo una observacion cuando se refieran a descargas eléctricas hay que decirlo con sus nombres reales tal cual por los novatos y por respeto a los que se han electrocutado por que ponerlo como algo gracioso? como lo mencionas » sin peligro de fritura ….» esa es mi opinion gracias saludos.

  3. Un pedazo de tutorial!!!! Muchísimas gracias. Ya tengo pedido el ftdi y empezaré a programar un sonoff que tengo que perdió su software al actualizarse mal. Mi problema es que no tengo mucho conocimiento con la app virtuino pero he visto que se pueden cargar proyectos. Podrías subir alguna para que nos sirva de plantilla? Un millón de gracias.

  4. Me parece super interesante el articulo.
    pero… disculpad mi pregunta de super novato…
    Una vez flasheado el codigo en el Sonoff, ¿como se interactua? ¿alguna app en el movil?

    1. No sé si te voy a ser de mucha ayuda ya que solo soy el que ha transcrito el artículo.
      Sonoff tiene su propia app para interactuar con él desde el móvil. Lo interesante de este procedimiento es que accedes al ESP y puedes programarle para que haga lo que tú quieras con el IDE de Arduino. Por supuesto que la conectividad es lo más importante de un módulo como el Sonoff por lo que, para restituirsela, se usa Virtuino que es una app muy interesante. En principio parece que corre solo en Android aunque no estoy seguro de que no tengas la versión para IOS. De lo que sí estoy seguro es de lo que el autor te hubiera contestado respecto a esto: Cuanto antes cambies a Android, mejor para ti 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.