Passer au contenu principal

Mon premier micro-controleur avec ESPHome (D1_mini)

ESPHome c'est quoi ?

Le projet ESPHome est un projet communautaire permettant de créer des automatismes intégrable dans un serveur Home Assistant à base de microcontrôleurs type ESP :

Le lien du projet ESPHome :
https://esphome.io/image.png
https://esphome.io/components/

Quelques infos sur les microcontrôleurs type ESP :
https://fr.wikipedia.org/wiki/ESP32
https://fr.wikipedia.org/wiki/ESP8266


Comment ça s'installe ?

Une fois logué sur son serveur Home Assistant préféré, on va dans les paramètres, on clique sur Apps (qui nous sert à rajouter des applications tierces dans HA) et on trouve ESPHome dans la barre de recherche.

image.pngimage.png

Une fois le logiciel installé, on n'oublie pas d'activer quelques paramètres recommandés comme le démarrage automatique d'ESPHome, les mises à jours auto ainsi que le raccourcis dans la barre latérale d'Home Assistant.

image.png



Le microcontrôleur

Le microcontrôleur utilisé ici est le bien connu D1_Mini (basé sur un ESP8266)

image.pngPour une description plus complète, on vous renvoi vers le wiki de nos copains brestois, les petits Débrouillards :
https://www.wikidebrouillard.org/wiki/Item:D1_mini 


Mon code YAML pour débuter

Voici un exemple de code en YAML pour permettre (avant tout autre rajout type capteur, sonde, interrupteur) à notre carte de se connecter à notre serveur Home assistant via ESPHome.

Attention, la clé API est celle de votre ESPHome.
Il ne faudra pas oublier non plus de saisir le nom de sa box (SSID) et le mot de passe correspondant dans l'onglet "secrets" en haut à droite de l'interface ESPHome

esphome:
  name: capteur-temp-serre
  friendly_name: capteur temp serre

esp8266:
  board:  d1_mini

# Active les journaux (logs) pour le débogage ()
logger:

# Permet à Home Assistant de découvrir l'ESP automatiquement
api:
  encryption:
    key: "mCFuxUyPOZ2HNTax72TKoCeG3Btb0j0qsG7pWzBBt+k="

# Permet de faire les futures mises à jour sans fil (OTA = Over The Air)
ota:
  - platform: esphome
    password: "0d9662546dc9759763b213a7aa5f3b7c"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Génère un point d'accès de secours si le Wi-Fi coupe
  ap:
    ssid: "Capteur-Temp-Serre"
    password: "tregor22300"

captive_portal:

Pour téléverser ce premier programme dans notre microcontrôleur, on clique sur "Install" depuis l'item crée : 

image.pngimage.png

  1. En branchant son ESP  en USB sur son PC (marche bien sous Windows, moins sous Linux)
  2. En branchant son ESP en USB sur le directement sur le serveur Home Assistant
  3. En téléchargeant le programme (.bin) sur son ordinateur et en le televersant avec un locigiciel comme ESPtool.
    Dans ce cas, on ouvrira le terminal depuis le dossier contenant le .bin et on lancera ces 3 commandes :
sudo apt install esptool    #pour installer l'application
sudo dmesg | grep tty       #pour vérifier le port utilisé par le périphérique (souvent ttyUSB0)
sudo esptool --port /dev/ttyUSB0 --baud 460800 write_flash 0x00000 capteur-humidite.bin  #la commande de televersement en precisant bien le bon port (ttyUSB0 dans notre cas) ainsi que le nom du fichier.bin (capteur-humidite.bin)

Par la suite, quand on modifiera/rajoutera des choses dans notre programme, on pourra le faire directement en wifi (4) !

On ne peut téléverser en wifi que si on a un paragraphe OTA défini dans notre programme !