Wemos: ESP 8266
Puede ser alimentado por USB, pero ojo, el conector no es robusto y se desolda con facilidad.
Hay multitud de 'firmware' preparado para instalárselo, como Tasmota o Espurna.
Para acceder a él con facilidad, puede usarse el conversor USB-RS232 FTD232.
Una vez conectado el conversor, puede usarse el IDE de Arduino. Para ello hay que instalar la placa ESP en el IDE. No he intentado conectarlo para programarlo.
TASMOTA:
Una vez que el ESP8266 tiene cargado el firmware de Tasmota, lo alimentamos con un cable miniUSB.
Entonces, empieza a generar un punto de acceso wifi. En mi caso: tasmota_805E4E-7758.
Lo seleccionamos con el móvil. Al hacerlo, aparecerá un mensaje indicando que se ha establecido la conexión sin acceso a internet. Si aguardamos un poco, aparecerá en el móvil una pantalla solicitando conexión a una wifi. Le damos acceso.
Para conectarnos desde el ordenador, tenemos que tener su IP, que podemos buscar en el Router.
Hasta ahora, no he conseguido conectarme a Tasmota de ninguna manera.
Documentación:
ESP con el IDE de Arduino: https://naylampmechatronics.com/blog/56_usando-esp8266-con-el-ide-de-arduino.html
Conectarlo a una wifi: https://www.luisllamas.es/como-conectar-un-esp8266-a-una-red-wifi-modo-sta/
Si prefieres poner ip fija a la wifi: https://www.luisllamas.es/como-configurar-una-ip-estatica-en-el-esp8266/
Un modo automatizado en el que crea un portal cautivo en el que puedes configurar la wifi desde el móvil, sin tener que escribir la contraseña y el SSID en el código en C: https://programarfacil.com/esp8266/wifimanager-configura-wifi-esp8266/
Nuestro medidor de co2: https://github.com/jredrejo/co2_santiagoapostol
Firmware para el ESP:
Controlar un Sonoff con Tasmota: https://domoticaencasa.es/tasmota-sonoff-esp8266-arduino-ide/
NodeMCU
Al conectarlo a Windows la primera vez, se inicia automáticamente un proceso de instalación de drivers. Además, siempre que lo conectemos sonará el pitido típico de conectar o desconectar dispositivo.
ERROR TÍPICO: que el cable miniusb no esté bien. Ni sonará el pitido, ni se podrán subir programas ni nada.
Para ver en qué puerto está conectado se puede usar el Administrador de Hardware de Windows. Aparece como en la imagen de la derecha.
Para que el IDE de Arduino pueda manejarlo, hay que instalar la placa siguiendo estas instrucciones.
Luego, una vez seleccionados placa y puerto, se cargan los programas igual que con Arduino. Aunque hay una diferencia: salen warnings sin consecuencias y la carga es mucho más lenta.
Cada vez que se cambia de placa, se eterniza la siguiente compilación. Parece que una vez hecha la primera, se reciclan los archivos y las siguientes son más rápidas.
En la siquiente imagen se ve la selección de la placa. Por otro lado, el mensaje que se muestra en el marco de abajo del IDE es enorme:
La programación de ESP a través del IDE es totalmente abierta.
Sin embargo, para la gente que lo usa en domótica, lo normal es que le instalen distribuciones de firmware ya depuradas como las de Sonoff, Espurna o Tasmota, que además están asociadas a apps gratuitas muy fáciles de usar.
Estas permiten la comunicación de dispositivos a través de una especie de canal de chat aprovechando las wifis domésticas. En ese caso, para no depender de servicios en la nube, como IFTT, se necesita algún ordenador -o simplemente una Raspberry- que actue de servidor. Recomiendan usar Home Asistant. Es una solución más segura, al no necesitar que le abramos las puertas de nuestra casa a esos servicios en la nube.
Experiencia:
Con el IDE de Arduino, la numeración de los pines es la que aparece como GPIO, no las D de la placa:
Parece que los programas funcionan en el Nodemcu 1.0 tanto si selecciono dicha placa como si cojo la Generic ESP8266 Module. Estoy usando Nodemcu 1.0 (ESP 12-E)
SERVIDOR WEB EN NODEMCU:
Servidor WEB con Nodemcu según Naylwindows am.
Con Vexia con Linex me ha ido bien. He seguido las instrucciones de instalación de tarjeta del enlace de Naylam. Aunque da estos avisos funciona sin problema:
ATENCIÓN: Categoría 'Network' en librería lwIP_PPP no es válida. Configurando a 'Uncategorized'
ATENCIÓN: Categoría 'Network' en librería lwIP_enc28j60 no es válida. Configurando a 'Uncategorized'
ATENCIÓN: Categoría 'Network' en librería lwIP_w5500 no es válida. Configurando a 'Uncategorized'
ATENCIÓN: Categoría 'Network' en librería lwIP_w5500 no es válida. Configurando a 'Uncategorized'
Con Vaio tuve que desinstalar Arduino y volver a instalarlo. Hasta ese momento no empezó a funcionar, daba errores de compilación. Sin embargo, una vez instalado Arduino de nuevo, ni siquiera salen Warnings al compilar.
Tengo seleccionado:
Nodemcu ESP 12E Module
Puerto dev/ttyUSB0
Lo he conectado al extensor wifi TP-Link, que supongo que funciona a 2'4GHz.
El router principal está funcionando a 2'4 GHz.
Si cargo el programa con el Monitor serie abierto, aparecen los datos que indica el tutorial. Luego, copiando la IP obtenida al navegador, empieza a funcionar una web muy simple para encender y apagar el LED. Otra forma de dar con la IP es utilizar el administrador del Router.
Una vez funcionando, puedo acceder con Vexia y Vaio a la vez. Funciona tanto si están conectados a la wifi del router, a la del extensor wifi como por cable.
En el móvil funciona exactamente igual esa IP.
Curiosamente, en el Router a veces el Nodemcu sale arriba, como elemento cableado. Quizá se deba a que el TP-Link está conectado por cable. Sin embargo, en una segunda ocasión, sí aparece abajo, con los móviles.
Cuando le he puesto la contraseña y el SSID del router no ha logrado conectarse: en el monitor serie aparecía 'Conectándose a red...' pero no lo llegaba a conseguir. Por alguna razón, con el TP-Link funciona, pero con el Router no. Encontrado el problema: estaba demasiado lejos del Router, le pasaba igual que a veces al ordenador: no llega la señal con la calidad suficiente. En cuanto me he acercado al router se ha conectado sin problema.
También he podido conectarme al router Livebox MiFibra-E2A5, sin conexión a internet: funciona estupendamente, pudiendo controlar Nodemcu tanto desde el móvil como desde el ordenador.
SONOFF Y ESPURNA
Primera conexión, tal y como me lo pasó Edu.
Al alimentarlo empieza a parpadear la luz azul: está generando el punto de acceso propio: ESPURNA-C78943.
Siguiendo este tutorial:
Se dice que las últimas letras del nombre de la SSID son las de su MAC.
Al conetarme a ese punto de acceso con el ordenador, me pide una contraseña, que según el tutorial, incialmente es fibonacci
Una vez conectado el ordenador a ese punto de acceso, pongo la IP para acceder:
192.168.4.1
En el primer acceso, me pide que cambie la contraseña. Para ello, uso el usuario admin y la contraseña fibonacci.
Me pide una nueva siguiendo una pauta de caracteres mínima. Le pongo: Tecno#1EA
Se la doy, la guardo, y a partir de ahí me sale la web que genera el propio Sonoff con Espurna y que me permite activar y desactivar el relé sin problemas.
La próxima vez que entre con el ordenador, tendré que ir a Configuración y borrar la wifi ESPURNA, puesto que tendrá en memoria la contraseña inicial, fibonacci, y tendré que conectarme con la nueva.
A partir de ahí, es rapidísimo entrar con el móvil o el ordenador en la pantalla de administración, para activar o desactivar el relé, ver los valores medidos por el sensor si está conectado o hacer cambios de contraseña, nombre de la SSID y cosas así:
1) Conectar el ordenador o el móvil a la wifi de Espurna: usuario admin y la contraseña Tecno#1EA
2) Entrar con el navegador en 192.168.4.1
3) Activar y desactivar el relé con el navegador.
Pueden conectarse varios móviles y ordenadores simultáneamente a la red espurna y todos actuar a la vez con el relé; lo que hace uno se refleja en la pantalla de todos los dispositivos conectados.
El Sonoff incluye también un botón para control manual del mismo relé.
SOBRE EL ESP8266:
Este dispositivo tiene 2 modos de funcionamiento al alimentarlo:
- El normal: ejecuta el último programa que se le cargó. Este modo se llama FLASH.
- El de carga de un nuevo programa, mediante el sistema de comandos AT, y que es el que nos permitirá usar el IDE de Arduino para cargarle nuevo programa o ‘firmware’. Este modo se llama UART. FLASH es el modo de arranque por defecto. Para que entre en UART es necesario que en el momento de alimentarlo el pin GPIO0 esté a LOW.
NodeMCU: al conectarlo con el cable USB al ordenador, entra en modo UART directamente. También lo hará si mantenemos pulsado el botón FLASH que incorpora, y en ese caso, no arrancará ejecutando el programa que tuviese cargado en memoria.
En los equipos Sonoff esto se consigue manteniendo pulsado el botón que incorporan para el control manual del relé. Han usado el pin GPIO0 para ambas cosas: cuando está cargado el firmware original o el ESPURNA, este botón nos permite controlar el relé. Pero además, nos valdrá si lo mantenemos pulsado al alimentarlo para que arranque en modo UART y nos permita cargar otro programa o firmware.
Es importante recalcar que la velocidad de subida (Upload Speed) dependerá de muchos factores. Prueba con una velocidad alta y ves bajando hasta que consigas cargar el programa.
Una vez que tenemos funcionando ESPURNA:
El chip ESP8266 genera un Punto de Acceso Wifi, es decir, se comporta como un router. Les da IPs a los móviles y ordenadores que se conecten a la ISSD con la contraseña correcta.
Además, es un servidor web: genera la página de control del dispositivo para los navegadores que accedan a 192.168.4.1
Esta es la pantalla que puede verse desde el ordenador una vez conectado: