Compilez un firmware personnalisé pour ESP8266 (Tasmota, ESPurna etc.) avec Atom

7 minutes de lecture
OBJECTIFS DU GUIDE
  • Complétez le firmware avec le logiciel Atom Sonoff-Tasmota, le rendant ainsi installable sur un appareil compatible basé sur SOC ESP8266 (ITEAD Sonoff et similaires)
  • Niveau de difficulté: basso
CONCEPTS FACE:
  • Compilation de logiciels
COMPOSANTS LOGICIELS UTILISÉS:
Pré-requis
  • un adaptateur USB / TTL et son câble de connexion USB (en option)
DISPOSITIFS PHYSIQUES UTILISÉS:
  • Un ordinateur (Apple Windows ou Linux).
GUIDE plus indiqué pour:

Tous les environnements

Notes et avertissement
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • tout changement mis en œuvre dans proavant est un prola responsabilité personnelle, ainsi que propremier risque et danger (ce guide est à des fins éducatives uniquement);
  • tout changement mis en œuvre dans proavant qu'un appareil annule la garantie.
Avis de conduite: 1.0

ATTENTION: ce guide fait partie de MasterGuide inDomus dédié à ripropondération de l'appareil basé sur ESP8266 SOC.

Abstrait

Comme on le sait, les dispositifs basés sur SOC (Système sur puce) ESP8266 (ceux de la famille ITEAD Sonoff "Smart Home", plutôt que du Shelly "Home Automation systèmes " et beaucoup d'autres) peuvent être changés en termes de firmware, ou dans la partie du logiciel décrivant la fonctionnameet exprime ses fonctions.

ESP8266
le ESP8266 SOC.

Pour effectuer cette modification du firmware de manière générale il est nécessaire, dans l'ordre:

  • connecter l’ordinateur au périphérique (via un périphérique ad hoc appelé USB / TTL ou FTDI);
  • mettre l'appareil en mode "flash" (mode spécifique autorisant le remplacement, dans sa mémoire interne);
  • télécharger le firmware sur le périphérique.

Pour être "chargé" sur le périphérique, ce firmware personnalisé doit être au format binaire, un fichier unique (généralement avec l'extension ". Bin« ). Pour acquérir ce fichier binaire il faut compiler le code source du firmware via, appoint, un compilateur.

Ce guide montre tout d'abord comment installer et configurer logiciel libre Atome, tandis que dans la deuxième mesure illustre comment compiler divers firmware. pour SOC ESP8266.

Il commence

Installer et configurer Atom

Logo ATOMAtome c'est tout d'abord un éditeur de texte très puissant et polyvalent. Sa particularité réside dans le fait d’être moduler, ou offre la possibilité d'installer une série de packages supplémentaires, notamment ceux nécessaires à la compilation de microprogrammes / logiciels, à l'écriture de code dans différentes langues et bien plus encore.

C'est pourquoi inDomus adopte Atom comme éditeur préféré: non seulement est-il utile de compiler un microprogramme, comme nous le verrons, mais il est également excellent en tant qu'éditeur pour les fichiers de configuration liés à HUB domotique et beaucoup plus.

Atome vous téléchargez gratuitement (pour Windows, macOS et Linux) du site https://atom.io/.
Une fois téléchargé, installer comme tout logiciel gratuit disponible sur Internet.

Pour les besoins de ce guide, il est nécessaire, une fois installé et exécuté, installare un paquet supplémentaire appelé "platformi-ide".

Pour aller à:

  • su Windows, Menu : fichier > réglages > installer
  • su macOS, Menu : atome > préférences > installer
  • sur Linux, Menu : éditer > préférences > installer

et dans la recherche de trou de recherche, pour laappoint, "platformi-ide». Une fois le paquet trouvé, cliquez sur "Installer".

ATOM installer des packages
faire défiler pour zoomer

Après une installation réussie fermer et rouvrir Atom, qui à ce stade proinstallera automatiquement une série de paquets intégratifs.

À la fin, PlatformIO demandera redémarrer pour la dernière fois Atom.

Port COM

Un adaptateur USB / TTL (FTDI) est l'appareil simple qui nous permet de mettre en communication notre ordinateur et le coeur de l'appareil basé sur ESP8266 SOC.

Sans besoin, pour le moment, pour connecter cet appareil à celui quiprogrammation, procherchez plutôt à connecter ce dernier (via un câble USB) à notre ordinateur. Si des conducteurs sont requis, provoir l'installation.

Puis sélectionnez l'élément de menu Atom PlatformIO > Moniteur série.
Un fi va s'ouvrirnestcomme suit:

Au bout d'un moment, dans l'entrée "Port”Indiquera le port COM de l'ordinateur a assigné au module USB / TTL.
Prenez note de cela.
Maintenant, déconnectez le module du port USB.

NOTE pour les utilisateurs Apple: Atom devrait identifier un port différent du COMx classique. Pour comprendre comment configurer la porte dans cette série, reportez-vous à à ce fil. Au-delà de ce qui est exprimé dans le lien, pensez toujours à installer le bon pilote pour Mac del propremier adaptateur USB / TLL.

Après avoir installé le bon pilote, dans le rapport système de la Macsous USB, vous aurez besoin (en connectant l’adaptateur USB / TTL) d’une voix semblable à celui ci-dessous:

FT232R sur MacCompiler le firmware

Sonoff-Tasmota

"Re"Incontournable parmi les micrologiciels personnalisés dédiés aux composants domotiques basés sur ESP8266 SOC, Sonoff-Tasmota permet d'introduire un grand nombre de fonctionnalités et de personnalisations, Parmi lesquels propaquets de communication supplémentaires, gestion des capteurs externes et bien plus encore.

A chaque nouvelle version, Sonoff-Tasmota est publié déjà pré-rempli pour tous ceux qui veulent se limiter mettre à jour une version précédente déjà installée (utilisant le support OTA - sans fil - peut-être en utilisant TasmoAdmin); ceux qui doivent installer à la place Sonoff-Tasmota sur un appareil pour la première fois, alors ils devront nécessairement prosuivre dans la lecture et acquérir - à l’aide du compilateur Atom - une propremier fichier . Bin.


Pour configurer et compiler le firmware Sonoff-Tasmota ça va d'abord téléchargé. Tu peux le faire directement depuis la page GitHub del projet; une fois téléchargé, vous devez décompresser le fichier zip où vous préférez.

À ce stade, chez Atom, sélectionnez l'élément de menu "Fichier > Ajoutez Prodossier ject"Et puis sélectionnez le dossier où le fichier .zip a été précédemment décompressé et contient le code du firmware Tasmota.

À ce stade, il est possible de "configurer" le progiciel, une configuration qui se terminera naturellement à l'intérieur du fichier binaire proappris de la compilation et, avec lui, sur l'appareil. Tasmota il est en fait fourni "basique", sans personnalisations, qui sont nécessaires pour que, à la fin de la programmation, le dispositif basé sur ESP8266 SOC peut fonctionner correctement.

Plus précisément, le proprocessus est la suivante:

  • configurer le fichier "platformio.ini";
  • configurer le fichier "sonoff/my_user_config.h";
  • compiler le firmware.
platformio.ini

Ce que nous allons d’abord personnaliser, c’est le fichier "platformio.ini».

Le premier élément à configurer est "env_default": Cette entrée communique avec le compilateur quelle partie du code compiler basé sur les besoins. Cet article ne peut pas ne pas être configuré, sous peine d'être rempli.

Le choix peut être fait en fonction de la liste disponible qui, par défaut, est entièrement "commentée" (toutes les lignes ont le préfixe "#« ). Il suffit d'enlever l'un des "#”(Relatif à la ligne d'intérêt) rendre opérationnel, lors de la compilation, la portion de code correspondante.

Dans l’exemple suivant, nous configurons l’environnement plus traditionnel et standard, c’est-à-dire «env_default = sonoff":

faire défiler pour zoomer

Les éléments commentés ci-dessous identifient les alternatives, à savoir la compilation ou une partie minimale du firmware ("env_default = sonoffMinime") Ou des versions linguistiques complètes ("env_default = sonoff-E"Est l'italien), ou le standard (appoint, comme suggéré ci-dessus, "env_default = sonoff").

Alors trouvez la section "[Core_active]Et le configurer comme suit:

[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}

cela garantira que le micrologiciel est compilé à l'aide de la plate-forme principale PlatformIO Version 2.3.0, que comproplus stable (surtout en évitant déconnexions continues Wi-Fi par l'appareil, un phénomène qui se produit parfois lorsqu’on utilise d’autres versions du noyau supérieur).

Trouvez le alors les éléments suivants (e appurare sont configurés comme suit:

monitor_speed             = 115200
upload_speed              = 115200
upload_resetmethod        = nodemcu

Immédiatement suivre, identifier l'article "upload_port =") Et entrez l'identifiant COM en tant que valeur, qui peut être exprimée

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

Puis configurez le COM assigné à l'entrée "upload_port =", Indiquant évidemment la porte et la découverte à l'étape précédente.

Nb Si la destination du fichier binaire compilé est une mise à journameOTA (Over The The Air), cette étape de configuration de l’élément «upload_port ="Peut être sauté.

Une fois que tout est terminé, enregistrer et fermer le fichier.

sonoff/my_user_config.h

Maintenant, vous devez configurer nom et mot de passe de Wi-Fi dans lequel l'appareil doit entrer automatiquement quand il est allumé.

Ouvrir le fichier "sonoff/my_user_config.h"Et trouver les objets" #définir STA_SSID1"Et"#define STA_PASS1":

faire défiler pour zoomer

Entrez le nom ici de proavant Wi-fi (dans le premier article) et le connexe Mot de passe (deuxième article).

Enfin, enregistrer et fermer le fichier.

COMPILATION

Nous sommes maintenant propour "compiler" notre paquet de firmware.

Chez Atom, cliquez sur le menu "plate - forme > construire».
Au cas où tout se passe bien, le proCedura devrait propour produire une sortie de ce type:

faire défiler pour zoomer

À ce stade, le fichier (appelé "firmware.bin") Aura été généré sur le système de fichiers de l'ordinateur, à l'emplacement"% directorycontenentetasmota/.pioevens/sonoff».

Ce fichier rappréinitialise le "terminé" du firmware personnalisé Sonoff-Tasmota, proen cours d'installation sur l'appareil.

Espurna

Pour configurer et compiler le firmware ESPurna, commencez par téléchargé. Tu peux le faire directement depuis la page GitHub del projet; une fois téléchargé, vous devez décompresser le fichier zip où vous préférez.

À ce stade, chez Atom, sélectionnez l'élément de menu "Fichier > Ajoutez Prodossier ject"Et puis sélectionnez le dossier"/ code”Contenu à son tour du dossier dans lequel le fichier .zip a été précédemment décompressé.

À ce stade, il est possible de "configurer" le progiciel, une configuration qui se terminera naturellement à l'intérieur du fichier binaire proappris de la compilation et, avec lui, sur l'appareil. Tasmota il est en fait fourni "basique", sans personnalisations, qui sont nécessaires pour que, à la fin de la programmation, le dispositif basé sur ESP8266 SOC peut fonctionner correctement.

Plus précisément, le proprocessus est la suivante:

  • configurer le fichier "platformio.ini";
  • configurer le fichier "espurna/config/general.h";
  • compiler le firmware.
platformio.ini

Ce que nous allons d’abord personnaliser, c’est le fichier "platformio.ini».

Le premier élément à configurer est "env_default": Cette entrée communique avec le compilateur quel environnement de code à compiler basé sur les besoins. Cet article ne peut pas ne pas être configuré, sous peine d'être rempli.

Pour décider quel environnement indiquer, il est nécessaire de faire défiler le fichier jusqu'à l'entrée

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

ESPurna soutient nombreux types d'appareils: les blocs suivants "ESPURNA CORE BUIDS"Identifiez les différents périphériques et la clé incluse dans" [env:] "dans le bloc de prol’intérêt est celui qui doit être indiqué à “env_default».

Par exemple, le bloc qui identifie le "Sonoff BasicCommence par

[env:itead-sonoff-basic]

donc, pour que la compilation génère une piste liée à ce périphérique, l’entrée "env_default"Sera configuré comme ceci:"env_default = itead-sonoff-basic».

Choisi l'appareil et donc la clé à insérer dans la voix "env_default", Il est nécessaire enregistrer et fermer le fichier.

Espurna / config / general.h

Maintenant, vous devez configurer nom et mot de passe de Wi-Fi dans lequel l'appareil doit entrer automatiquement quand il est allumé.

Ouvrir le fichier "Espurna / config / general.h"Et trouvez le bloc suivant:

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

#ifndef WIFI1_PASS
#define WIFI1_PASS                  ""
#endif

e provoir insert, entre les sommets des entrées “#définir WIFI1_SSID"Et"#define WIFI1_PASSRespectivement le nom du proPRAI Wi-Fi et le mot de passe associé.

Enfin il faut enregistrer et fermer le fichier.

COMPILATION

Nous sommes maintenant propour "compiler" notre paquet de firmware.

Chez Atom, cliquez sur le menu "plate - forme > construire».
Au cas où tout se passe bien, le proCedura devrait propour produire une sortie de ce type:

Plateforme ESPurna
faire défiler pour zoomer

À ce stade, le fichier (appelé "firmware.bin") Aura été généré sur le système de fichiers de l'ordinateur, à l'emplacement"% directorycontenentetasmota/.pioenvs/nome-dell-environment-compilato/firmware.bin».

Ce fichier rappprésente le "compilé" du micrologiciel personnalisé ESPurna, proen cours d'installation sur l'appareil.


ITEAD Sonoff BasicATTENZIONE: rappelez-vous qu'il y a sur notre communauté FORUM une section ad hoc dédiée à Sonoff (et plus généralement aux appareils ESP8266), pour tout doute, question, information sur le mérite spécifique de ces composants.


Veuillez commenter ci-dessous