WeatherMesh
Des stations météo que je conçois de la breadboard au firmware, jusqu'au boîtier imprimé en 3D.
Le projet
WeatherMesh est mon laboratoire IoT. La station actuelle, sur une carte ESP32-S3, mesure la température, l'humidité, la pression et la lumière, calcule une prévision locale et met tout à disposition sur le réseau : une page web pour la consulter, et des données JSON que Home Assistant lit toutes les 30 secondes.
L'objectif est de maîtriser toute la chaîne moi-même : le câblage, le firmware, l'intégration à la domotique et le boîtier.
Le câblage
Les deux capteurs partagent le même bus I²C : ils se branchent en parallèle sur quatre broches de la carte, et chacun répond à sa propre adresse. Le montage ne demande qu'une soudure, celle des broches des modules.
- Le firmware cherche le BME280 à ses deux adresses possibles et le BH1750 à l'adresse prise quand ADDR n'est pas branchée.
- Les capteurs sont alimentés en 3,3 V. La broche VIN de la carte est une entrée d'alimentation, pas une sortie : elle ne sert pas aux capteurs.
- En service, la station se contente d'un chargeur USB 5 V.
Ce que fait le firmware
- Lecture des deux capteurs et détection automatique de leur présence au démarrage.
- Pression ramenée au niveau de la mer à partir de l'altitude, point de rosée et humidité absolue.
- Tendance de la pression sur 3 heures et prévision en texte, après 30 minutes de mesures accumulées.
- Page web de consultation et point d'accès JSON, lu par Home Assistant pour créer les capteurs du tableau de bord.
- Indicateurs de santé : version du firmware, durée de fonctionnement, alimentation et force du signal Wi-Fi.
Le boîtier imprimé en 3D
J'ai dessiné un boîtier en deux pièces pour la carte et les capteurs : une base de 118 × 62 × 30 mm et un couvercle de 9 mm d'épaisseur. Faites-le tourner pour l'examiner.
Télécharger les STL du boîtier zip, 14 Mo, base et couvercle
Une installation reproductible
Un script prépare l'ordinateur, écrit les réglages dans le firmware, génère les blocs de configuration de Home Assistant et flashe la carte. Les secrets, comme le mot de passe Wi-Fi ou le jeton d'accès, restent dans un dossier lisible par mon seul compte et ne sont jamais publiés avec le code.
Ce qui a coincé
- Capteurs introuvables au premier démarrage : les fils SDA et SCL étaient inversés. C'est désormais le premier point du guide de dépannage.
- Déconnexions Wi-Fi : autour de −80 dBm, la box refusait parfois l'association. La solution a été de rapprocher la station. Le firmware remonte maintenant la force du signal pour le surveiller.
- Capteurs indisponibles dans Home Assistant : deux blocs de configuration portant le même nom s'écrasaient sans message d'erreur. Il faut un seul bloc, avec toutes les sources à la suite.
La suite
- Relier plusieurs stations entre elles en LoRa 868 MHz et tester Meshtastic.
- Ajouter l'identification par NFC/RFID.
- Statut
- En service
- Carte
- DFRobot DFR1154 (ESP32-S3)
- Capteurs
- BME280 et BH1750, bus I²C
- Alimentation
- USB-C, 5 V
- Outils
- PlatformIO, Linux, impression 3D
- Intégration
- Home Assistant, lecture JSON toutes les 30 s
- Code source
- Lien à venir