View Categories

Observation de l’évolution de la température à la MJC « La Citrouille » — Un projet IoT basé sur LoRaWAN

3 min read

Introduction #

Le syndicat intercommunal de Cesson et Vert-Saint-Denis, en collaboration avec la MJC « La Citrouille », mène un projet de régulation thermique pour sa salle de spectacle. L’objectif est de mieux maîtriser les températures afin de garantir un confort optimal tout en réduisant la consommation énergétique.

Ce projet s’appuie sur une infrastructure IoT développée par le Fablab de la MJC, avec des technologies de transmission sans fil longue portée (LoRa), des capteurs environnementaux, une plateforme cloud (TTN), ainsi que des outils de visualisation avancés comme Node-RED, InfluxDB et Grafana.


1. Boîtier de mesure — conception et capteurs #

1.1. Alimentation et boîtier #

Le système est enfermé dans un boîtier compact, alimenté via un chargeur USB 5V standard. Cela permet une installation simple, sans alimentation secteur dédiée.

1.2. Capteur de température DS18B20 #

Le DS18B20 est un capteur de température numérique, connecté via un bus 1-Wire, particulièrement adapté pour des mesures précises sur de longues distances grâce à sa sonde étanche. Il permet ici de relever la température réelle de la salle de concert.

  • Plage de mesure : -55°C à +125°C
  • Précision : ±0.5°C entre -10°C et +85°C
  • Avantage : sonde déportée pouvant être placée à un point stratégique de la salle

1.3. Capteur d’humidité et de température DHT22 #

En complément, un DHT22 mesure l’humidité relative de l’air et une seconde température interne au boîtier, pour comparaison.

  • Plage d’humidité : 0–100 % HR, précision ±2–5 %
  • Température : ±0.5°C entre -40°C et +80°C
  • Interface : signal numérique, facile à intégrer

2. Microcontrôleur Heltec HTCC-AB02 #

Le cœur du système est un microcontrôleur Heltec HTCC-AB02, basé sur un ESP32, intégrant un module LoRa 868 MHz.

2.1. Fonctions principales #

  • Lecture des capteurs (DS18B20 et DHT22)
  • Formatage des données (encodage en paquets LoRa)
  • Transmission sans fil via le protocole LoRaWAN

2.2. LoRa 868 MHz #

Le module utilise la bande ISM européenne 868 MHz, idéale pour les communications longue portée à faible consommation.


3. Passerelle LoRa — réception des données #

3.1. Gateway LoRa installée à la MJC #

Une passerelle LoRaWAN est installée dans les locaux de la MJC. Elle capte les trames envoyées par le microcontrôleur et les redirige vers internet.

3.2. Antenne sur pylône radioamateur #

L’antenne de la passerelle est montée sur un pylône appartenant à la section radioamateur de la MJC.

  • Hauteur optimisée pour maximiser la réception
  • Réduction des interférences grâce à l’élévation

3.3. Indicatif F6KBM #

La section radioamateur de la MJC opère sous l’indicatif officiel F6KBM, enregistré auprès de l’ANFR. Elle contribue à l’aspect technique et réglementaire du projet LoRa.


4. Transmission via TTN — The Things Network #

4.1. Rôle de TTN #

The Things Network (TTN) est une infrastructure réseau LoRaWAN mondiale et ouverte, qui permet aux passerelles d’envoyer les données capteurs vers des serveurs distants via internet.

4.2. Acheminement des trames #

  1. La passerelle capte les trames LoRa
  2. Les données sont transmises vers le serveur TTN
  3. Elles sont ensuite décodées ou relayées à d’autres services via des intégrations webhooks ou MQTT

5. Serveur de traitement des données — Raspberry Pi 5 #

5.1. Récupération des données TTN #

Un Raspberry Pi 5, installé au domicile du radioamateur F5TEB (Patrick), récupère les données via les API ou MQTT proposés par TTN.

5.2. Caractéristiques du Raspberry Pi 5 #

  • Processeur ARM Cortex-A76 quad-core à 2.4 GHz
  • RAM jusqu’à 8 Go
  • Port Ethernet et WiFi pour la connectivité
  • Faible consommation énergétique

6. Traitement avec Node-RED #

6.1. Qu’est-ce que Node-RED ? #

Node-RED est un outil open source de programmation par flux (flow-based programming) pour connecter des API, matériels et services.

6.2. Décodage des trames #

Les trames LoRa contiennent des données brutes codées sur plusieurs octets (ex : température, humidité, tension batterie). Node-RED décode ces valeurs à l’aide de fonctions personnalisées en JavaScript.

Exemple :

// Exemple de décodage binaire
let tempRaw = (msg.payload[0] << 8) | msg.payload[1];
let temperature = tempRaw / 100.0;

7. Stockage longue durée avec InfluxDB #

7.1. InfluxDB : base de données temporelle #

Les données sont enregistrées dans une base de données InfluxDB, spécialement conçue pour gérer des séries temporelles (time series).

7.2. Avantages #

  • Indexation par timestamp
  • Optimisé pour des volumes importants de données de capteurs
  • Langage de requête spécifique (Flux ou InfluxQL)

8. Visualisation des données avec Grafana #

8.1. Présentation #

Grafana est un outil de visualisation de données open-source, utilisé ici pour afficher les mesures de température, humidité, et tension batterie.

8.2. Fonctionnalités #

  • Graphiques dynamiques
  • Accès sécurisé via PC, tablette ou smartphone
  • Possibilité de définir des alertes (ex : température > 25°C)
  • Dashboard personnalisés pour la salle de spectacle

Conclusion #

Ce projet de surveillance de la température et de l’humidité à la MJC « La Citrouille » démontre une intégration complète de technologies IoT open-source pour un usage concret et durable. Il s’appuie sur des compétences locales (radioamateurs, fablab) et des technologies modernes, permettant une régulation fine et une visualisation précise de l’environnement intérieur.

Grâce à cette infrastructure, les responsables de la salle peuvent adapter en temps réel le chauffage ou la ventilation, optimisant ainsi le confort thermique et la consommation énergétique.

Accès aux données via internet #

Pour aller directement en vision seule sur le tableau de la salle de spectacle

vers les données

ATTENTION, rafraîchissez la plage de données sur quelques heures à plusieurs mois !


Powered by BetterDocs