#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.

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 :
- Veille profonde (Deep-Sleep) : Le microcontrôleur s'endort totalement entre les mesures (consommation tombée à quelques microampères).
- Mesure unique (Single-Shot) : Le capteur SCD41 n'est allumé que 5 secondes par cycle, le temps exact de capturer la valeur.
- Coupure du moteur : Le servomoteur SG90 est désactivé (
detach()) dès qu'il a fini sa course pour couper l'appel de courant. - 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

- 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.