#Le projet en détail

Pourquoi ce projet ?

Le concept du Birdie commercial est excellent : un retour visuel physique, sans écran ni notification anxiogène sur le téléphone. En revanche, le produit officiel coûte 199frs, fonctionne avec une application fermée et n'est pas intégrable à une domotique maison. L'objectif était simple : fabriquer le mien de A à Z pour environ 20–25 frs de composants, tout en le rendant ouvert, réparable et connecté à mon réseau local.

Image

Comment ça fonctionne

Le principe reste fidèle au comportement d'origine :

  • Tant que l'air est bon (< 950 ppm), l'oiseau reste droit.
  • Si le CO2 dépasse 1 000 ppm pendant 10 minutes d'affilée, l'oiseau bascule vers le bas pour signaler qu'il faut ouvrir la fenêtre.
  • Un petit buzzer émet un léger gazouillis au moment du déclenchement.
  • L'oiseau remonte dès que le niveau redescend sous 950 ppm (avec une marge pour éviter qu'il ne fasse des allers-retours constants).

Le principal défi : l'autonomie sur batterie

Faire bouger un servomoteur et alimenter un capteur de CO2 optique (NDIR) sur batterie, c'est généralement le cauchemar de l'IoT. En Wi-Fi classique, la carte consomme trop au réveil et vide la batterie en quelques jours. Pour atteindre 1 à 2 ans d'autonomie sur une cellule 18650 (3 800 mAh), j'ai travaillé sur plusieurs optimisations :

  1. Veille profonde (Deep-Sleep) : Le microcontrôleur s'endort totalement entre les mesures (consommation tombée à quelques microampères).
  2. Mesure unique (Single-Shot) : Le capteur SCD41 n'est allumé que 5 secondes par cycle, le temps exact de capturer la valeur.
  3. Coupure du moteur : Le servomoteur SG90 est désactivé (detach()) dès qu'il a fini sa course pour couper l'appel de courant.
  4. Choix du protocole : J'ai développé une version Zigbee 3.0 et une version BLE (BTHome). En Bluetooth publicitaire, l'émission dure moins de 250 ms, ce qui préserve énormément la batterie comparé au Wi-Fi.

Conception matérielle & 3D

  • Électronique : Seeed Studio XIAO ESP32-C6, module de charge USB-C (TP4056), régulateur boost 5V (MT3608) pour le servo, et un pont diviseur de tension sur une broche analogique pour surveiller l'état de la batterie.
  • Boîtier 3D : Modélisé sur mesure (OpenSCAD), imprimé en PLA. Il intègre des glissières pour insérer le circuit imprimé proprement, un logement pour l'accu 18650, et des inserts filetés M3 posés à chaud pour pouvoir démonter le boîtier proprement sans abîmer le plastique.

Stack technique

Image

  • Hardware : ESP32-C6 (RISC-V), Sensirion SCD41, Servomoteur SG90, TP4056, accu Li-ion 18650.
  • Code : C++ (Arduino / PlatformIO) et ESPHome.
  • Protocoles : Zigbee 3.0 (compatible ZHA / Zigbee2MQTT), Bluetooth Low Energy (BTHome V2), Wi-Fi.
  • Domotique : Home Assistant (remontée CO2, température, humidité et tension batterie sans dépendre d'un cloud).
  • CAO : OpenSCAD, tranches Bambu Studio.