Compile un firmware personalizado para ESP8266 (Tasmota, ESPurna, etc.) con Atom

7 minutos de lectura
OBJETIVOS DE LA GUÍA
  • Complete el firmware con el software Atom Sonoff-Tasmota, lo que lo hace instalable en un dispositivo compatible basado en SOC ESP8266 (ITEAD Sonoff y similares)
  • Nivel de dificultad: basso
CONCEPTOS ENFRENTADOS:
  • Compilación de software
COMPONENTES DE SOFTWARE UTILIZADOS:
Requisitos previos
  • un adaptador USB / TTL y su cable de conexión USB (opcional)
DISPOSITIVOS FÍSICOS UTILIZADOS:
  • Una computadora (Apple, Windows o Linux).
GUÍA más indicada para:

Todos los ambientes

Notas y descargo de responsabilidad
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • cualquier cambio implementado en proantes es un proresponsabilidad personal, así como un proprimer riesgo y peligro (esta guía es solo para fines educativos);
  • cualquier cambio implementado en proantes de que un dispositivo anule la garantía.
Revisión de manejo: +1.0

PRECAUCIÓN: esta guía es parte de MasterGuide inDomus dedicado a riproponderación del dispositivo basado en ESP8266 SOC.

Abstract

Como es bien sabido, los dispositivos basados ​​en SOC (Sistema en un chip) ESP8266 (los de la familia ITEAD Sonoff "Smart Home", en lugar de Shelly "Home Automation sistemas " y muchos otros) se pueden cambiar en términos de firmware, o en la parte del software que decreta la funciónnamey expresa sus funciones.

ESP8266
el ESP8266 SOC.

Para hacer esta modificación de firmware ampliamente es necesario, en orden:

  • conectar la computadora al dispositivo (a través de un dispositivo ad hoc llamado USB / TTL o FTDI);
  • configura el dispositivo en modo "flash" (un modo específico que permite sobrescribir, en su memoria interna);
  • cargar el firmware al dispositivo.

Para "cargarse" en el dispositivo, este firmware personalizado debe estar en formato binario, un solo archivo (generalmente con extensión ". Papelera"). Para adquirir este archivo binario es necesario compilar el código fuente del firmware a través de appungido compilador.

Esta guía muestra en primer lugar cómo instalar y configurar software libre átomo, mientras que en segunda instancia ilustra Cómo compilar varios firmware. para SOC ESP8266.

se inicia

Instalar y configurar Atom

Logo de ATOMátomo es, en primer lugar, un editor de texto Muy potente y versátil. Su peculiaridad radica en el hecho de ser modularo proporciona la capacidad de instalar una serie de paquetes adicionales, incluidos los necesarios para compilar firmware / software, escribir código en diferentes idiomas y mucho más.

Es por eso que inDomus adopta Atom como editor favorito: como veremos, no solo es útil para compilar firmware, sino que también es excelente como editor de archivos de configuración relacionados con HUB domótica y mucho más.

átomo descargas gratis (para Windows, macOS y Linux) del sitio https://atom.io/.
Una vez descargado, instalar como cualquier programa gratuito disponible en Internet.

Para los fines de esta guía es necesario, una vez instalado y ejecutado, installare un paquete adicional llamado "platformi-ide".

Para ir a:

  • su Windows, Menú : expediente > ajustes > instalar
  • su macOS, Menú : átomo > preferencias > instalar
  • en Linux, Menú : editar > preferencias > instalar

y en la búsqueda del agujero de búsqueda, para elappungido "platformi-ide". Una vez que encuentre el paquete, haga clic en "Instalar".

Paquetes de instalación de ATOM
desplazarse para hacer zoom

Después de una instalación exitosa cerrar y volver a abrir Atom, que en este punto proinstalará una serie de paquetes integrativos de forma completamente automática.

Al final, PlatformIO preguntará reiniciar por última vez Atom.

Puerto COM

Un adaptador USB / TTL (FTDI) es el dispositivo simple que nos permite comunicarnos nuestra computadora y el corazón del dispositivo basado en ESP8266 SOC.

Sin necesidad, por el momento, para conectar este dispositivo al que está conectadoproprograma-, proen su lugar, busque conectar este último (mediante un cable USB) a nuestra computadora. Si se requieren controladores, prover la instalación

Luego seleccione el elemento del menú Atom PlatformIO > Monitor en serie.
Se abrirá un finestcomo sigue:

Después de un momento, en la entrada "Puerto"Indicará qué puerto COM tiene la computadora ha asignado al módulo USB / TTL.
Toma nota de ello.
Ahora desconecte el módulo del puerto USB.

NOTA para los usuarios Apple: Atom debería identificar un puerto diferente al clásico COMx. Para comprender cómo configurar la puerta en esta serie, consulte a este hilo. Más allá de lo que se expresa en el enlace, recuerde siempre instalar el controlador correcto para Mac del proprimer adaptador USB / TLL.

Después de instalar el controlador correcto, en el informe del sistema de Mac, en USB, necesitará (conectando el adaptador USB / TTL) una voz similar al de abajo:

FT232R encendido MacCompila el firmware

Sonoff-Tasmota

"Re"Sin rival entre el firmware personalizado dedicado a los componentes de automatización del hogar basados ​​en ESP8266 SOC, Sonoff-Tasmota permite introducir una gran cantidad de funciones y personalizaciones, Entre los que proPaquetes de comunicación adicionales, gestión de sensores externos y mucho más.

En cada nueva versión lanzada, Sonoff-Tasmota se lanza ya precargado para todos aquellos que quieren limitarse para actualizar una versión anterior ya instalada (usando soporte OTA - inalámbrico - tal vez usando TasmoAdmin); aquellos que tienen que instalar en su lugar Sonoff-Tasmota en un dispositivo por primera vez, entonces necesariamente tendrán que prosiga en la lectura y adquiera - usando el compilador Atom - un proprimer archivo . Papelera.


Para configurar y compilar el firmware Sonoff-Tasmota va primero de todo descargado. Puedes hacerlo directamente desde la página de GitHub del projet; una vez descargado, debe descomprimir el archivo zip donde prefiera.

En este punto, en Atom, seleccione el elemento del menú "Envíe el > Añadir ProCarpeta ject"Y luego seleccione la carpeta donde el archivo .zip ha sido descomprimido previamente y contiene el código del firmware Tasmota.

En este punto, es posible "configurar" el paquete de software, una configuración que naturalmente terminará dentro del archivo binario proaprendido de la compilación y, con él, en el dispositivo. Tasmota de hecho se suministra "básico", sin personalizaciones, que son necesarias para que, al final del programmation, el dispositivo basado en ESP8266 SOC puede funcionar correctamente.

Específicamente, el proproceso es el siguiente:

  • configurar el archivo "platformio.ini";
  • configurar el archivo "sonoff/my_user_config.h";
  • compilar el firmware.
platformio.ini

Lo que vamos a personalizar primero es el archivo "platformio.ini".

El primer elemento para configurar es "env_default": Esta entrada se comunica al compilador qué porción del código compilar basado en las necesidades. Ese articulo no se puede configurar, bajo pena de ser llenado.

La elección se puede hacer en función de la lista disponible que, de forma predeterminada, está "comentada" (todas las líneas tienen el prefijo "#"). Es suficiente para eliminar uno de los "#"(Relativo a la línea de interés) hacer operativo, en la compilación, la parte correspondiente del código.

En el siguiente ejemplo configuramos el entorno más tradicional y estándar, que es "env_default = sonoff":

desplazarse para hacer zoom

Los elementos comentados a continuación identifican las alternativas, es decir, la compilación o una parte mínima del firmware ("env_default = sonoff-Mínima") O versiones de idioma completo ("env_default = sonoff-E"Es el italiano), o el estándar (appungido, como se sugirió anteriormente, "env_default = sonoff").

Luego encuentra la sección "[Core_active]"Y configurarlo como sigue:

[core_active]
; Select one core set for platform and build_flags
platform                  = ${core_2_3_0.platform}
build_flags               = ${core_2_3_0.build_flags}
;platform                  = ${core_2_4_2.platform}
;build_flags               = ${core_2_4_2.build_flags}
;platform                  = ${core_2_5_0.platform}
;build_flags               = ${core_2_5_0.build_flags}
;platform                  = ${core_stage.platform}
;build_flags               = ${core_stage.build_flags}

esto asegurará que el firmware se compila utilizando la plataforma principal PlatformIO versión 2.3.0que compromás estable (especialmente para evitar desconexiones continuas Wi-Fi por el dispositivo, un fenómeno que a veces ocurre cuando se usan otras versiones de núcleo superior).

Encuéntralo entonces los siguientes elementos (e appLos urare se configuran de la siguiente manera:

monitor_speed             = 115200
upload_speed              = 115200
upload_resetmethod        = nodemcu

Siga inmediatamente, identifique el artículo "upload_port =") E ingrese el COM de identificación como un valor, que se puede expresar

su Windowsupload_port = COM1
su macOS / Linuxupload_port = /dev/cu.usbserial-00000000

Luego configure el COM asignado en la entrada "upload_port =", Indicando obviamente la puerta y el descubrimiento en el paso anterior.

NB En caso de que el destino del archivo binario compilado sea una actualizaciónnameOTA (Over-The-Air), este paso de configuración del elemento "upload_port ="Se puede omitir.

Una vez que todo esté completo, guarda y cierra el archivo.

sonoff/my_user_config.h

Ahora necesitas configurar nombre y contraseña de Wi-Fi en el que el dispositivo debe ingresar automáticamente cuando está encendido.

Abre el archivo "sonoff/my_user_config.h"Y encuentra los artículos" #definir STA_SSID1"Y"#define STA_PASS1":

desplazarse para hacer zoom

Ingrese el nombre allí de proantes de Wi-fi (en el primer elemento) y el relacionado contraseña (segundo elemento).

Finalmente, guardar y cerrar el archivo.

RECOPILACIÓN

Ahora estamos propara "compilar" nuestro paquete de firmware.

En Atom, haz clic en el menú "plataforma > construir".
En caso de que todo salga bien, el procedura debería propara producir una salida de este tipo:

desplazarse para hacer zoom

En este punto, el archivo (llamado "el firmware") Se habrá generado en el sistema de archivos de la computadora, en la ubicación"% directorycontenentetasmota/.pioevens/sonoff".

Este archivo rapprestablece el "completado" del firmware personalizado Sonoff-Tasmota, proahora se instala en el dispositivo.

Espurna

Para configurar y compilar el firmware ESPurna, lo primero es descargado. Puedes hacerlo directamente desde la página de GitHub del projet; una vez descargado, debe descomprimir el archivo zip donde prefiera.

En este punto, en Atom, seleccione el elemento del menú "Envíe el > Añadir ProCarpeta ject"Y luego seleccione la carpeta"/ código”Contenido a su vez de la carpeta donde se descomprimió previamente el archivo .zip.

En este punto, es posible "configurar" el paquete de software, una configuración que naturalmente terminará dentro del archivo binario proaprendido de la compilación y, con él, en el dispositivo. Tasmota de hecho se suministra "básico", sin personalizaciones, que son necesarias para que, al final del programmation, el dispositivo basado en ESP8266 SOC puede funcionar correctamente.

Específicamente, el proproceso es el siguiente:

  • configurar el archivo "platformio.ini";
  • configurar el archivo "espurna/config/general.h";
  • compilar el firmware.
platformio.ini

Lo que vamos a personalizar primero es el archivo "platformio.ini".

El primer elemento para configurar es "env_default": Esta entrada se comunica al compilador qué entorno de código compilar basado en las necesidades. Ese articulo no se puede configurar, bajo pena de ser llenado.

Para decidir qué entorno indicar, es necesario desplazar el archivo hasta la entrada

# ----------------------------_
# ESPURNA CORE BUILDS
# -----------------------------

ESPurna apoya muchos tipos diferentes de dispositivos: los siguientes bloques "BUENOS DE ESPURNA CORE"Identifique los distintos dispositivos y la clave incluida en" [env:] "en el bloque de proel interés es el que se indicará en "env_default".

Por ejemplo, el bloque que identifica el "Sonoff Basic"Comienza con

[env:itead-sonoff-basic]

por lo tanto, para que la compilación genere una pista relacionada con este dispositivo, la entrada "env_default"Se configurará así:"env_default = itead-sonoff-basic".

Elegí el dispositivo y, por lo tanto, la clave para insertar en la voz "env_default", Es necesario guardar y cerrar el archivo.

Espurna / config / general.h

Ahora necesitas configurar nombre y contraseña de Wi-Fi en el que el dispositivo debe ingresar automáticamente cuando está encendido.

Abre el archivo "Espurna / config / general.h"Y encuentre el siguiente bloque:

// Optional hardcoded configuration (up to 2 networks)
#ifndef WIFI1_SSID
#define WIFI1_SSID                  ""
#endif

#ifndef WIFI1_PASS
#define WIFI1_PASS                  ""
#endif

e prover inserto, entre los vértices de las entradas "#definir WIFI1_SSID"Y"#define WIFI1_PASSRespectivamente el nombre de la proPRAI Wi-Fi y la contraseña relacionada.

Finalmente es necesario guardar y cerrar el archivo.

RECOPILACIÓN

Ahora estamos propara "compilar" nuestro paquete de firmware.

En Atom, haz clic en el menú "plataforma > construir".
En caso de que todo salga bien, el procedura debería propara producir una salida de este tipo:

Plataformas ESPurna
desplazarse para hacer zoom

En este punto, el archivo (llamado "el firmware") Se habrá generado en el sistema de archivos de la computadora, en la ubicación"% directorycontenentetasmota/.pioenvs/nome-dell-environment-compilato/firmware.bin".

Este archivo rappresiente el "compilado" del firmware personalizado de ESPurna, proahora se instala en el dispositivo.


ITEAD Sonoff BasicATTENZIONE: recuerda que hay en nuestra comunidad FORO una sección ad hoc dedicada a Sonoff (y más generalmente a dispositivos ESP8266), para cualquier duda, pregunta, información en el mérito específico de estos componentes.


Por favor comente abajo