Me relagaron unos dispositivos Iot de la marca sononff, obviamente no me resistí y empecé a investigarlo, al darme cuenta que tenia un chip esp8266, pense en cambiarle el firmware. Se me ocurrió usar un arduino uno como usb to serial ya que no tengo el adaptador de usb/serial/ttl.
Use Tosmata que es un firmware open source y muy funcional. Porque quería cambiar un dispositivo Iot que ya tiene su app? porque queria usar mi brocker privado y centralizar todo en mi app de uso personal. Remocomiendo tasmota para esp8266 ya que podemos usar el codigo como base para otras ideas de sobre dispositivos IoT. Paso a compartirles el paso a paso para que puedan cambiar el firmware del dispositivo sonoff y usar de interfaz de comunicación un aduino uno.
Utilizaremos el sonoff classic en el tutorial
Para usar arduino como interfase realice la conexión con los típicos cables para trabajar con arduino y las protoboard. No es necesario soldar los cables en la plaqueta de sonoff. Una vez actualiado el firmware ya no tenemos que interactuar con la plaqueta de sonoff.
Importante: no usar la conexión de 5v ya que esta quema al sonoff.
Imagenes y driagrama de conexionado
Tenemos que preparar el entorno. En un carpeta descagamos el sonoff.bin y esptool.
Veremos algo como esto:
Nos movemos dentro de la carpeta esptool es intalamos las dependecias.
pip install esptool
Conectamos nuestro arduino por medio del usb y verificamos con que nombre quedo montando nuestro arduino, el dispostivo puede figurar como tty.usb***** o cu.usb*****, dejo el comando a continuación.
ls /dev/cu.usb*
o
ls /dev/tty.usb*
Ahora vamos a iniciar la comunicación y actualización, lo primero es desconectar el usb, luego volvemos a conectar el usb y en simultaneo debemos tener precionado el boton de reset del sonoff(imagena a continuación), esto no permitira entrar en el modo loader del sonoff.
Realizaremos un backup del sonoff. Con el siguiente comando que genererá una archivo de backup con el nombre «sonoff-classic.bin».Siempre es importante tener un backup para tener la oportunidad de volver a cero si algo no funciona como queremos.
Ejecutaremos el «esptool.py» con varios parametros, el primero es el puerto , segundo leer la flash actual, tercero dirección, cuarto el tamano de lectura del file(en este caso un 1MB) y quinto el nombre del backup
./esptool/esptool.py -p /dev/cu.usbmodem145401 read_flash 0 0x100000 sonoff-origin.bin
Realizamos nuevamente el procedimiento de conectar el usb y precionar el boton de loader
Escribiremos el firmware en el sonoff, para ello ejecutaremos el comando de escritura.
Ejecutaremos el «esptool.py» con los parametros, el primero es el puerto, el segundo escribir la nueva flash, tercero el tamaño de la memoria de sonoff, cuarto modo de flash, quinto dirección de inicio y sexto el nombre del nuevo firmware
./esptool/esptool.py -p /dev/cu.usbmodem145401 write_flash -fs 1MB -fm dout 0x0 sonoff.bin
Tendremos un output similar a este:
esptool.py v2.8-dev Serial port /dev/cu.usbmodem145401 Connecting.... Detecting chip type... ESP8266 Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: 5c:cf:7f:7a:43:26 Uploading stub... Running stub... Stub running... Configuring flash size... Compressed 515872 bytes to 355877... Wrote 515872 bytes (355877 compressed) at 0x00000000 in 30.8 seconds (effective 134.1 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin...
Ahora exploramos nuestra redes wifi y aparecera una rede wifi llamada sonoff-*****, nos conectamos y por defecto nos llevara a la página de configuración donde podremos conecatarlo a nuesrtra red wifi, en caso de que no nos lleve automaticamente se puede ir con la ip por defecto 192.168.4.1 a la web de configuración.