[Article] Domotiser son poulailler avec ESPHome

Domotiser des objets qui sont, à la base, dépourvus d’intelligence, devient monnaie courante dans le monde du DIY. Aujourd’hui, je vous propose de me suivre dans la domotisation de la porte de mon poulailler grâce aux ESP et à la librairie ESPHome. Nous verrons les composants à acheter, le schéma de câblage ainsi que la programmation des ESP pour finir par l’intégration dans Home Assistant.

10 « J'aime »

Top, merci mille fois Leor
J’ai une question hors sujet pour savoir si je peux me lancer:
En semaine je n’habite pas dans ma maison, un poulailler de 2/3 poules peut’il être complétement autonome plusieurs jours; quid de 15 jours de vacances ?

1 « J'aime »

Salut @Bruno

Un poulailler peut très bien être autonome plusieurs jours. Bien évidemment il faut bien prévoir l’accès à l’eau et la nourriture.
15 jours ça me semble jouable bien que plus compliqué, l’état du poulailler va commencer à être problématique, pas mal de crottes, au delà ça me semble compliqué.

Dans les deux cas il reste la question des œufs à ramasser. En quelques jours ça va, au bout de 15 jours ça risque de faire un sacré paquet et savoir lesquels consommer risque d’être hasardeux.
Si quelqu’un passe régulièrement alors je n’y vois pas trop de problèmes.

Sinon, tu peux toujours domotiser l’arrivée en eau et en nourriture :grin:

Je rejoins l’avis de @LeorFinacre.
Nous avons nous 3 poules depuis plusieurs années et voyageons beaucoup.
Nous sollicitons des voisins et ils sont ravis de passer de temps en temps en échange des œufs. Le minimum à mon sens est de passer 1 fois tous les 3 à 4 jours, mais pas plus.

Merci pour votre RETEX

Bravo,
super article que je vais essayer de suivre pas à pas, étant justement en instance de réception de poules, avec le poulailler qui sera au fond du jardin, tout juste en limite de portée de wifi…
Me voila, virtuellement, dans le poulailler qui est en construction:

Je vais découvrir l’ESPhome, et les cablages, donc les explications et les étapes que tu proposes sont précieuses.

2 « J'aime »

Très content que le guide puisse servir et hâte d’avoir de tes nouvelles une fois le projet débuté de ton côté ! N’hésite pas revenir si tu as des questions ou problèmes.

Bonjour,
Merci pour cet article qui nous pousse à nous lancer ;o)
Je suis intéressé par la partie ESP32-CAM avec interfaçage dans Home Assistant.
Serait-il possible de mettre à disposition (dans l’article ou vers un lien) les fichiers à compiler dans l’ESP32-Cam et les STL/Fusion de la caméra orientable ?
Merci beaucoup !

Bonjour,
Le code de l’ESP32 Cam est déjà dans l’article.
Pour les liens des STL je les ai rajouté dans l’article mais les voilà ici également :

2 « J'aime »

Merci beaucoup !
Question : est ce que l’on peut faire le montage sans l’ESP8266,
et faire remonter via l’ESP32-CAM le flux video, la commande On/off des LED IR, la température et l’humidité du DHT22 ? (et faire un on/off de l’ensemble ESP32 + LED IR via un switch 2 voies en zigbee)
Merci pour ton aide.

Dans mon exemple, l’ESP32 Cam remonte déjà le flux vidéo, l’activation de la LED IR et la température.
Pour remonter les autres infos, il va falloir deux entrées pour les capteurs de fins de courses, deux entrées encore pour les sens de rotation du moteur et rassembler les GND ensemble.

Tout en sachant que cette carte contient des entrées déjà utilisées, pour par exemple, la gestion du flash embarqué.

Je n’ai pas étudié les pins de l’ESP32 cam en détails mais ça me semble juste. Sachant qu’il y en a certains qui, s’ils sont connectés, peuvent empêcher le boot / redémarrage de l’ESP car ils attendent un signal haut, ou bas et suivant ce qui est connecté ça peut interférer.

L’idée n’est pas mauvaise et je serai curieux de savoir si c’est possible si tu tentes l’expérience :slight_smile:

1 « J'aime »

Bonjour,
Je suis totalement et vais essayer de suivre ton pas à pas @LeorFinacre. Seulement ca comence un peu mal car je ne trouve pas la carte DHT22.
Aurais tu un autre lien?
Merci

Salut, l’article a été mis à jour avec le lien vers la carte.
Voici tout de même le lien ici

Bon courage pour la réalisation et n’hésite pas à revenir poser des questions ici ! :slight_smile:

2 « J'aime »

Bonjour,
Un souci lors de l’installation de la camera : j’ai copié / collé le code yaml et suite à l’installation j’ai le log suivant :

INFO ESPHome 2024.4.0
INFO Reading configuration /config/esphome/poulcam.yaml...
WARNING GPIO0 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
WARNING GPIO5 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Detected timezone 'Europe/Paris'
WARNING GPIO15 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
Failed config

esp32_camera: [source /config/esphome/poulcam.yaml:35]
  external_clock: 
    pin: 0
    frequency: 20000000.0
  i2c_pins: 
    sda: 26
    scl: 27
  data_pins: 
    - 5
    - 18
    - 19
    - 21
    - 36
    - 39
    - 34
    - 35
  vsync_pin: 25
  href_pin: 23
  pixel_clock_pin: 22
  power_down_pin: 32
  name: Poulcam
  on_stream_start: 
    - then: 
        - lambda: !lambda |-
            id(cam_streaming).publish_state(true);
        - switch.turn_on: 
            
            ID 'relay_ir_light' of type light::LightState doesn't inherit from switch_::Switch. Please double check your ID is pointing to the correct value.
            id: relay_ir_light
  on_stream_stop: 
    - then: 
        - lambda: !lambda |-
            id(cam_streaming).publish_state(false);
        - switch.turn_off: 
            
            ID 'relay_ir_light' of type light::LightState doesn't inherit from switch_::Switch. Please double check your ID is pointing to the correct value.
            id: relay_ir_light
  max_framerate: 25.0
  idle_framerate: 0.2
  resolution: 1024X768
  jpeg_quality: 10
  vertical_flip: True
  horizontal_mirror: True
  contrast: 0
  brightness: 1
  saturation: 0
  disabled_by_default: False
  special_effect: NONE
  agc_mode: AUTO
  aec2: False
  ae_level: 0
  aec_value: 300
  aec_mode: AUTO
  agc_value: 0
  agc_gain_ceiling: 2X
  wb_mode: AUTO
  test_pattern: False
switch.gpio: [source /config/esphome/poulcam.yaml:132]
  platform: gpio
  name: IR Light Switch
  
  ID relay_ir_light redefined! Check light->0->id.
  id: relay_ir_light
  pin: 
    number: 2
    inverted: False
    mode: 
      output: True
      input: False
      open_drain: False
      pullup: False
      pulldown: False
    ignore_strapping_warning: False
    drive_strength: 20.0
  disabled_by_default: False
  restore_mode: ALWAYS_OFF
  interlock_wait_time: 0ms

Je précise que je n’ai pas encore cablé le capteur de température ni la led IR, je n’ai fait qu’une connection USB via une carte MB permettant de l’alimenter en USB et la connecter une première fois.
J’ai suivi l’article sur les premiers pas avec ESP home et que c’est mon premier ESP32 programmé via HA ;o)
Est ce que mon log est « normal » lié au fait que je n’ai pas encore fait les cablage vers la led IR par exemple ?

Je précise que j’ai du coup 1 appareil qui remonte avec 1 seul entité (mise à jour).

Ce ne sont que des warnings. J’ai aussi ce type de warnings sur certaines cartes à base d’ESP.
Est ce que la caméra fonctionne ?

Je ne sais pas et c’est ce que j’aimerais vérifier. Comment fait-on pour y accèder? (via http://ip_de_la_camera:8080 ?)

Dans HA, sous appareil et services, dans l’intégration ESPHome, tu dois retrouver l’appareil correspondant à ton ESPCam, et une entité caméra doit avoir été créée. Tu peux l’utiliser ensuite dans le dashboard avec la carte picture-entity.

Salut, le log que tu vois apparaître est « normal » comme le précise @Argonaute
Tu devrais pouvoir accéder à l’interface de la caméra grâce à son webserver embarqué.

L’adresse devrait être http://IP_CAMERA:8080
Et le flux en direct devrait apparaître.

Par contre tu dois quand même avoir une erreur à la ligne 35. Voici le démarrage de ma cam et les logs associés. En théorie après les warnings tu as l’adresse IP de ta caméra et les infos de debug etc

INFO ESPHome 2024.3.1
INFO Reading configuration /config/poulcam.yaml...
WARNING GPIO0 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
WARNING GPIO5 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Detected timezone 'Etc/UTC'
WARNING GPIO15 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
WARNING GPIO2 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Starting log output from 192.168.1.69 using esphome API
INFO Successfully connected to poulcam @ 192.168.1.69 in 0.051s
INFO Successful handshake with poulcam @ 192.168.1.69 in 0.206s
[08:54:32][I][app:102]: ESPHome version 2024.3.1 compiled on Apr  2 2024, 11:55:32
[08:54:32][C][wifi:580]: WiFi:
[08:54:32][C][wifi:408]:   Local MAC: E4:65:B8:70:B0:7C
[08:54:32][C][wifi:413]:   SSID: [redacted]
[08:54:32][C][wifi:416]:   IP Address: 192.168.1.69
[08:54:32][C][wifi:420]:   BSSID: [redacted]
[08:54:32][C][wifi:421]:   Hostname: 'poulcam'
[08:54:32][C][wifi:423]:   Signal strength: -72 dB ▂▄▆█
[08:54:32][C][wifi:427]:   Channel: 11
[08:54:32][C][wifi:428]:   Subnet: 255.255.255.0
[08:54:32][C][wifi:429]:   Gateway: 192.168.1.1
[08:54:32][C][wifi:430]:   DNS1: 0.0.0.0
[08:54:32][C][wifi:431]:   DNS2: 0.0.0.0
[08:54:32][C][logger:166]: Logger:
[08:54:32][C][logger:167]:   Level: DEBUG
[08:54:32][C][logger:169]:   Log Baud Rate: 115200
[08:54:32][C][logger:170]:   Hardware UART: UART0

Quand tu dis que tu as copié / collé le code, est-ce que tu as tout copié collé ? Car les premières lignes dans le fichier sont propres à l’installation de MA carte. Ce qu’il faut faire c’est ajouter un nouvel appareil sur ESP Home et ensuite le configurer en copiant collant toutes les lignes de l’article qui se trouvent en dessous de

captive_portal:

Et en prenant également les lignes 5 et 6 pour la substitution du nom. (Optionnel)