Introduction
Après une configuration de Home Assistant sur un raspberry, divers intégrations et tests… Je me suis lancé dans un projet de création de capteurs et de caméras de sécurité pour ma maison. Je vous présente donc cette station motorisée pour ESP32cam.
Pour ces développements, je m’appuie sur
- Home Assistant (Gestion de la maison)
- Arduino (ESP32/ESP01 et langage C)
- MQTT (communication)
- Blender (modélisation 3D)
- Ender 3 Pro & CURA (impression 3D).
Cette station permet d’avoir une caméra motorisée, alimentée par USB avec un capteur de température DHT22. Le DHT22 est plus précis que le capteur DHT11.
Le modèle 3D de la station
Le modèle 3D a été entièrement dessiné sous Blender. Il permet une rotation autour de l’axe Z de la partie supérieure et une rotation sur l’axe Y de la caméra. Le DHT22 est intégré dans la partie supérieure.
L’épaisseur des parois permet une rigidité de l’ensemble bien qu’elle pourrait être revue légèrement à la baisse.
Le modèle 3D est fourni dans les fichiers du projet ici : Model 3D thingiverse
Electronique :
Sur une plaque à trou de 2cm de large,
Code source
Éditez les informations de connexions du WIFI et MQTT dans la première partie du code.
Éditez les topics MQTT selon vos envies.
Téléverser le code sur votre ESP (schéma ci-dessous si vous devez passer par un USB-tty
Home Assistant
Configuration de base :
Dans votre configuration Home Assistant, il conviendra d’ajouter les variables suivantes :
- Ajout dans le fichier input_numbers :
- Sliders
servo_control: initial: 90 min: 0 max: 180 step: 1 mode: slider
servo_control2: initial: 90 min: 0 max: 180 step: 1 mode: slider
- Ajout dans le fichier sensors :
- Température & humidité
- platform: mqtt name: "Chambre Temperature" unique_id: "Chambre Temperature" state_topic: "sensor/temperature/chambre" qos: 0 unit_of_measurement: "°C"
- platform: mqtt name: "Chambre Humidity" unique_id: "Chambre Humidity" state_topic: "sensor/humidity/chambre" qos: 0 unit_of_measurement: "%" icon: "mdi:water-percent"
- Ajout l’automation suivante :
- alias: 'publish slider1' trigger: - platform: state entity_id: input_number.servo_control action: - service: mqtt.publish data_template: topic:sensor/salon/slider1 payload: '{{ trigger.to_state.state }}' - alias: 'publish slider2' trigger: - platform: state entity_id: input_number.servo_control2 action: - service: mqtt.publish data_template: topic:sensor/salon/slider2 payload: '{{ trigger.to_state.state }}'
Une fois ceci fait, vous pouvez ajouter les différentes variables dans votre Lovelace UI.
Votre Station motorisée pour ESP32cam est maintenant fonctionnelle.
Configuration avancée (en cours de tests)
Installez l’intégration MotionEye et NodeRed dans le SuperViseur de Home Assistant.
Configurez votre caméra dans MotionEye (adresse + détection de présence)
Dans les fichiers de configuration Home assistant :
- Ajout dans le fichier input_boolean :
presence: initial: off
Depuis Node red pour le contrôle de la caméra sur Motion Eye selon la présence dans la maison:
https://github.com/76MPaul/Motorized-ESP32-CAM-station/blob/main/node_red.json