Tabla de contenido:

Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: 3 pasos (con imágenes)
Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: 3 pasos (con imágenes)

Video: Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: 3 pasos (con imágenes)

Video: Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: 3 pasos (con imágenes)
Video: Установка прошивки Multi-PAN (RCP) с Zigbee и Thread на стиках Sonoff ZBDongle-E и ZB-GW04 2024, Noviembre
Anonim
Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266
Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266

¿Qué es Sonoff?

Sonoff es una línea de dispositivos para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea son Sonoff Basic y Sonoff Dual. Estos son conmutadores habilitados para Wi-Fi basados en un gran chip, ESP8266. Si bien la infraestructura de Sonoff puede funcionar bastante bien para usuarios básicos, es posible que otros quieran piratear ese hardware y ejecutar su propio código en él. El hardware de Sonoff Smart Switches es asombroso, considerando su bajo precio:

  • ESP8266 con flash de 1 MB
  • Adaptador de corriente integrado de 220 V CA
  • Relé 10A (o dos en Sonoff Dual)
  • LED integrado (o dos en Sonoff Dual)
  • Botón a bordo

Si desea tener un control total sobre este hardware utilizando su lenguaje de programación favorito, este tutorial es para usted.

Paso 1: piratear el hardware

Hackear el hardware
Hackear el hardware
Hackear el hardware
Hackear el hardware
Hackear el hardware
Hackear el hardware

ESP8266 se programa a través del puerto serie. Tanto Sonoff Basic como Sonoff Dual lo tienen en el PCD.

Es posible que deba soldar un encabezado de clavija en la PCB para conectar fácilmente un adaptador USB-UART.

Paso 2: preparación para piratear el software

Preparación para piratear el software
Preparación para piratear el software

Me encanta Python, así que voy a usar el firmware MicroPython. También puede utilizar cualquier SDK compatible. Procedamos a actualizar MicroPython en lugar del firmware propietario de Sonoff:

Instale el paquete esptool python que facilita el flasheo del ESP8266:

pip instalar esptool

Descargue el último firmware estable de MicroPython desde la página de descargas de MicroPython. Conecte un adaptador USB-UART a la placa. Por seguridad, se recomienda alimentar la placa desde el adaptador en lugar de la toma de 220 V CA. Tenga en cuenta que solo puede usar 3.3V, si conecta el chip ESP8266 a una fuente de alimentación de 5V, morirá.

Inicie ESP8266 en el modo Flash. Puede hacerlo bajando el pin GPIO0 mientras enciende el dispositivo:

  • En Sonoff Basic, el GPIO0 es simplemente el botón. Conecte el adaptador USB-UART a su PC mientras mantiene presionado el botón y está en el modo Flash.
  • En Sonoff Dual, las cosas son un poco más difíciles. Necesita cortocircuitar dos almohadillas en la PCB mientras enciende la placa. Las almohadillas necesarias se muestran en la imagen de arriba. Use pinzas o suelde un alambre pequeño entre ellas.

Cuando el ESP8266 está en modo flash, el LED de la placa no debería parpadear.

Asegúrese de que puede acceder al puerto serie abierto por el adaptador USB-UART. En Linux es probablemente / dev / ttyUSB0, en Mac debería buscar algo como "usbserial" o "usbmodem" en la salida del comando ls / dev / cu. * O ls / dev / tty. *, En Windows debería ser COM3 o mas alto. Instale los controladores del adaptador USB-UART si es necesario.

Borre el flash con la herramienta esptool. Reemplace / dev / ttyUSB0 para su puerto si es necesario:

esptool.py --port / dev / ttyUSB0 erase_flash

Es posible que deba ejecutar esptool.py como superusuario para acceder al puerto serie.

Paso 3: parpadeando

Brillante
Brillante

Si el borrado fue exitoso, corte la energía de la placa, reinicie el ESP8266 en el modo Flash nuevamente y actualice su firmware:

esptool.py --port / dev / ttyUSB0 --baud 460800 write_flash --flash_size = detectar 0 esp8266-20170823-v1.9.2.bin

Si el flasheo fue exitoso, corte la energía de la placa, conéctela nuevamente sin presionar el botón y abra el puerto serial en un terminal. En Linux y Mac, puede usar screen / dev / ttyUSB0 115200 (reemplace / dev / ttyUSB0 para su puerto si es necesario), en Windows puede usar PuTTY (la velocidad en baudios predeterminada es 115200). Una vez que se conecte, presione Entrar, y si ve tres corchetes angulares del shell de Python, ¡todo funciona!

>> >>> help () ¡Bienvenido a MicroPython! Para obtener documentos en línea, visite https://docs.micropython.org/en/latest/esp8266/. Para que la información de diagnóstico se incluya en los informes de errores, ejecute 'import port_diag'. Configuración básica de WiFi: importar red sta_if = network. WLAN (network. STA_IF); sta_if.active (True) sta_if.scan () # Buscar puntos de acceso disponibles sta_if.connect ("", "") # Conectarse a un AP sta_if.isconnected () # Verificar conexión exitosa # Cambiar nombre / contraseña del AP de ESP8266: ap_if = network. WLAN (network. AP_IF) ap_if.config (essid = "", authmode = network. AUTH_WPA_WPA2_PSK, password = "") Comandos de control: CTRL-A - en una línea en blanco, ingrese el modo REPL sin procesar CTRL- B - en una línea en blanco, ingrese al modo REPL normal CTRL-C - interrumpa un programa en ejecución CTRL-D - en una línea en blanco, haga un reinicio suave de la placa CTRL-E - en una línea en blanco, ingrese pegar mode Para obtener más ayuda sobre un objeto específico, escriba help (obj) >>>

En el siguiente instructable, describiremos cómo interactuar con la plataforma Cloud4RPi a través de un protocolo MQTT.

Recomendado: