esp32 domotique espressif

/Interrupteur connecté, à la découverte de l'esp32

7 mai 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.

Code source

Partage

©2024 Jeremy Chaufourier.