/Interrupteur connecté, à la découverte de l'esp32
May 7, 2024
Après une expérience avec le Raspberry Pi Pico, je me tourne vers l'ESP32 pour explorer cette fonctionnalité et essayer de réaliser mon projet d'interrupteur connecté.
Pourquoi l'ESP32?
L'ESP32 se démarque par sa capacité à entrer en mode deep sleep, ce qui le rend idéal pour les projets alimentés par batterie nécessitant une consommation d'énergie minimale. Comparé à d'autres microcontrôleurs, l'ESP32 offre un équilibre entre performances, fonctionnalités et coût, ce qui en fait un choix populaire parmi les développeurs IoT.
Pour mes tests j'utilise un esp32-wroom-32D : Module Wifi, Bluetooth, Double coeur 240MHZ.
Configuration de l'ESP32 avec ESPHome
Pour simplifier la configuration de l'ESP32, j'utilise ESPHome, un module dans home assistant. À l'aide d'un simple fichier YAML, je peux configurer l'ESP32 pour détecter la lumière à l'aide d'un capteur binaire. Voici un exemple de configuration :
binary_sensor:
- platform: gpio
pin:
number: 13
mode:
input: true
pullup: true
name: "Aziz lumière"
deep_sleep:
run_duration:
default: 10s
gpio_wakeup_reason: 10s
sleep_duration: 10min
wakeup_pin: 32
Deep Sleep avec ESP32
Le mode deep sleep de l'ESP32 permet de mettre le microcontrôleur en veille profonde pendant des périodes prolongées, réduisant ainsi considérablement sa consommation d'énergie. En spécifiant les paramètres de run_duration, sleep_duration et wakeup_pin dans notre configuration YAML, je peux contrôler précisément le comportement de l'ESP32 pendant son cycle de sommeil.
Test et Résultats
Au cours des tests avec un ESP32 WROOM, j'ai rencontré une nouvelle problématique : la gestion de la connexion Wi-Fi pendant le mode deep sleep. En effet, pendant la période de sommeil profond, la connexion Wi-Fi est interrompue pour économiser de l'énergie. Quand l'ESP32 se réveille, il faut un certain temps pour rétablir la connexion Wi-Fi, ce qui entraîne une latence rendant encore une fois mon projet non réalisable.
Dans un prochain article, je vais tester l'esp32-h2 qui possède une connexion zigbee pour comparer la latence de connexion.