ESP8266 + DHT22 + MQTT + Home-Assistant
Un petit projet pour apprendre à fabriquer une sonde de température connectée (IoT).
Vous pouvez retrouver l'intégralité de ce projet sur mon blog
http://www.projetsdiy.fr/esp8266-dht22-mqtt-projet-objet-connecte/
Matériel nécessaire
Pour réaliser ce projet vous aurez besoin des éléments suivants :
- Un module WiFi ESP8266 de préférence basé sur un ESP-12. J'utilise une
Wemos D1 mini qui coûte 5€ environ.
- Une sonde de température DHT11 ou
DHT22
- Une Led
- Une résistance 220 ohms
- Un câble USB (pour programmer et alimenter l'ESP)
- Une batterie LiPo 3.7V ou un boitier de 2 piles AA si vous voulez
Logiciels nécessaires
Pour recevoir les mesures de votre objets et piloter la led, vous aurez besoin d'un ordinateur avec les logiciels suivants d'installés. Un
Raspberry Pi 3 sera parfait
- Broker MQTT. Mosquitto est très simple et performant. Voici un article de présentation http://www.projetsdiy.fr/mosquitto-broker-mqtt-raspberry-pi/
- Un serveur domotique. Si vous débutez, Home-Assistant est très simple à installer et à utiliser même si l'anglais n'est pas votre fort (http://www.projetsdiy.fr/home-assistant-serveur-domotique-raspberry-pi/).
Branchement
Code
Téléchargez et ouvrez le fichier DTH22_LED.ino avec l'IDE Arduino
Si vous découvrez les modules ESP8266, lisez cet article qui explique comment les programmer avec l'IDE Arduino http://www.projetsdiy.fr/esp-01-esp8266-flasher-firmware-origine/
Installer Home-Assistant
Python 3 (ou supérieur) doit être présent sur votre ordinateur
puis
pip3 install homeassistant
Pour les utilisateurs de Windows 10 (ou 7)
python -m pip install homeassistant
Intégration MQTT + Home-Assistant
Allez dans le répertroire d'installation d'Home-Assistant
cd ~/.homeassistant
puis
sudo nano configuration.yaml
Ajoutez une section mqtt
mqtt:
broker: localhost
port: 1883 #par défaut
client_id: home-assistant-1
keepalive: 60
username: USERNAME #optionnel
password: PASSWORD #optionnel
protocol: 3.1 #par défaut
et maintenant deux sensors (température et humidité)
sensor:
platform: mqtt
state_topic: "sensor/temperature"
name: "Température"
qos: 0
unit_of_measurement: "°C"
#value_template: '{{ payload }}'
sensor 2:
platform: mqtt
state_topic: "sensor/humidity"
name: "Humidité"
qos: 0
unit_of_measurement: "°C"
#value_template: '{{ payload }}'
et enfin un switch pour piloter la Led
switch:
platform: mqtt
name: "Cuisine"
command_topic: "homeassistant/switch1" #Topic sur lequel on publie l'état de l'interrupteur
payload_on: "ON" # ON pour allumer
payload_off: "OFF" # et OFF pour éteindre (à vous de choisir)
optimistic: true
qos: 0
Rechargez la page d'Home-Assistant. Vous avez maintenant deux indicateurs (température et humidité) ainsi qu'un switch pour allumer / éteindre la Led
J'espère que ce petit projet vous sera utile pour débuter en domotique.