Contents
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 :
- 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. - 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.
- 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
. - Capteur BH1750 : Il mesure la luminosité toutes les 60 secondes et envoie les données sous le nom
BH1750 Illuminance
. - 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
etota
: Intégration avec Home Assistant et mises à jour sans fil.
Installation et mise en route
- Câblage : Connectez le BH1750 à l’ESP-01 (VCC et GND à 3.3V, SDA à GPIO0, SCL à GPIO2).
- 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 fichiersecrets.yaml
. - 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 !