Pierre Droulon Embarqué et IoT · Nantes
Tous les projets

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.

Câblage de la station : les capteurs BME280 et BH1750 sont reliés en parallèle aux mêmes broches de la carte DFR1154. 3,3 V et masse pour l'alimentation, GPIO 43 pour SDA et GPIO 44 pour SCL. La broche ADDR du BH1750 reste libre. DFRobot DFR1154 ESP32-S3 3,3 VGNDGPIO 43GPIO 44 BME280 I²C 0x76 ou 0x77 VCCGNDSDASCL BH1750 I²C 0x23 VCCGNDSDASCL ADDR libre
3,3 V Masse SDA (GPIO 43) SCL (GPIO 44)
  • 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.

Aperçu allégé pour le web. Les fichiers d'impression complets sont à télécharger ci-dessous.

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

Écrire un message

Je vous réponds sous 48 heures.

Votre adresse sert uniquement à vous répondre. En savoir plus

Message envoyé

Merci, je vous réponds rapidement.