HA-Luxmetre connecté ESPHome

Intro

Dans mes projets domotiques, j’aime concevoir des solutions simples et efficaces. Aujourd’hui, je vous présente un luxmètre connecté basé sur un ESP8266 (modèle ESP-01) et un capteur de luminosité BH1750. Ce dispositif mesure la luminosité ambiante et l’envoie à Home Assistant pour piloter mes automatisations, comme la gestion des volets. Voici comment je l’ai configuré !

Objectif du projet

Le but est de créer un capteur de luminosité compact et abordable pour surveiller les niveaux de lumière dans ma maison. Couplé à Home Assistant, il me permet de déclencher des actions en fonction de seuils définis (par exemple, ouvrir ou fermer les volets). Avec un ESP8266 et un BH1750, le tout est réalisable pour moins de 5 € !

Le matériel utilisé

  • ESP8266 ESP-01 : Une petite carte Wi-Fi économique et parfaite pour les projets IoT.
  • Capteur BH1750 : Un module I2C qui mesure la luminosité en lux avec une bonne précision.
  • Câbles Dupont : Pour connecter le BH1750 à l’ESP sans soudure (GPIO0 pour SDA, GPIO2 pour SCL).
  • Alimentation 3.3V : L’ESP-01 et le BH1750 fonctionnent en 3.3V, donc une source adaptée est nécessaire.

La configuration avec ESPHome

J’utilise ESPHome pour programmer et gérer l’ESP01. Voici le code YAML que j’ai créé, avec quelques explications :

substitutions:
  device_name: esp135-luxmetre
  adress_ip: "192.168.0.135"
  friendly_name: esp135

esphome:
  name: ${device_name}
esp8266:
  board: esp01_1m
  framework:
    version: recommended  

wifi:
  networks:
    - ssid: !secret wifi_esp
      password: !secret mdpwifi_esp
      priority: 1
    - ssid: !secret wifi
      password: !secret mdpwifi
      priority: 0
  reboot_timeout: 5min
  manual_ip:
    static_ip: ${adress_ip}
    gateway: 192.168.0.254
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  platform: esphome

web_server:
  port: 80

i2c:
  sda: GPIO0
  scl: GPIO2
  scan: False
  id: bus_a

# Etat de la connexion
binary_sensor:
  - platform: status
    name: "${friendly_name}_Status"

sensor:
  - platform: bh1750
    name: "BH1750 Illuminance"
    address: 0x23
    update_interval: 60s

Points clés du code :

  1. Substitutions : Je définis des variables comme le nom (esp135-luxmetre) et l’IP statique (192.168.0.135) pour une configuration propre et réutilisable.
  2. Wi-Fi : Deux réseaux sont configurés avec des priorités (mon réseau principal et un secours). L’IP statique évite les conflits sur mon réseau.
  3. I2C : Le BH1750 est connecté via les GPIO0 (SDA) et GPIO2 (SCL) de l’ESP-01. L’adresse par défaut du capteur est 0x23.
  4. Capteur BH1750 : Il mesure la luminosité toutes les 60 secondes et envoie les données sous le nom BH1750 Illuminance.
  5. Extras :
  • binary_sensor : Un indicateur de statut pour vérifier si l’ESP est en ligne.
  • web_server : Une interface web sur le port 80 pour voir les données en direct.
  • api et ota : Intégration avec Home Assistant et mises à jour sans fil.

Installation et mise en route

  1. Câblage : Connectez le BH1750 à l’ESP-01 (VCC et GND à 3.3V, SDA à GPIO0, SCL à GPIO2).
  2. Flasher le firmware : Utilisez ESPHome Dashboard pour compiler et uploader le code via un adaptateur USB (comme un FTDI). Assurez-vous d’avoir les secrets (wifi_esp, mdpwifi_esp, etc.) dans votre fichier secrets.yaml.
  3. Intégration dans Home Assistant : Une fois l’ESP connecté au Wi-Fi, il est automatiquement détecté par Home Assistant via l’API. L’entité sensor.bh1750_illuminance apparaît alors dans l’interface.

Utilisation dans mes automatisations

Ce luxmètre est au cœur de mon automatisation des volets (voir mon article ). Par exemple, je l’utilise pour basculer un input_boolean.nuit_jour en comparant la luminosité à des seuils définis :

  • Si la luminosité dépasse 50 lux et que le soleil est levé, c’est le « jour ».
  • Si elle tombe sous 20 lux et que le soleil est couché, c’est la « nuit ».

Ces données alimentent ensuite mes scripts pour ouvrir ou fermer les volets automatiquement.

Pourquoi ce projet ?

  • Économique : Avec un coût minime, j’ai un capteur précis et connecté.
  • Flexible : Les mesures toutes les 60 secondes sont un bon compromis entre réactivité et faible consommation.
  • DIY : Pas besoin de matériel coûteux ou de compétences avancées, c’est accessible à tous !

Conclusion

Ce luxmètre basé sur un ESP01 et un BH1750 est une petite merveille pour la domotique. Il m’a permis d’affiner mes automatisations en tenant compte de la luminosité réelle, et son intégration avec Home Assistant est un jeu d’enfant grâce à ESPHome. Si vous voulez surveiller la lumière chez vous ou piloter des appareils en fonction du jour et de la nuit, ce projet est un excellent point de départ. Des idées pour l’améliorer ? Partagez-les en commentaire sur domo.rem81.com !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *