Section Numérique   –   Lycée Saint-Paul IV

Station Météorologique

image_accueil


I. Présentation

1. L'équipe projet

Pour cette année de Terminale S nous avons choisi la spécialité Informatique et Sciences du Numérique (ISN) dans laquelle nous avons dû réaliser un projet au cours du second semestre.

Nous avons choisi d'enrichir la station météorologique de notre lycée, projet que nous avions commencé l'année précédente dans le cadre de l'enseignement facultatif de première générale ICN ( Informatique et Création Numérique).


Notre équipe est composée de :

- Léna Foustoul
- Dorian Lapra
- Tristan Le Lidec
- Luca Olier


2. Objectif du projet

Ce projet a débuté l'an dernier. L'équipe qui y a participé à réalisé le montage des capteurs de la station météo ainsi que le code du microcontroleur Arduino Uno pour gérer ces cinq capteurs (thermomètre, anémomètre, baromètre, girouette, hygromètre).


L'équipe de l'an passé était composée de :

- Jérémy Bariteau
- Samuel Boyer
- Tristan Le Lidec
- Luca Olier
- Anthony Rococo


Cette année nous avions des objectifs plus poussés tel que l'ajout de nouveaux capteurs (particules fines et pluviomètre), le remplacement de liaison filaire au profit d'une liaison radio permettant la mise en place de la station à distance du poste de traitement des données et la réalisation du prototype de la station capable de résister aux différents aléas climatiques.







II. Matériel et montage

1. Les capteurs de la station météorologique.


• L'anémomètre et le pluviomètre.

pluviomètre anemomètre
Notre pluviomètre a pour référence LEXCA001
Notre anémomètre quant à lui est un modèle LEXCA003

Ces deux capteurs fonctionnent de la même façon. En effet, un petit aimant crée une fermeture de circuit et nous les montons donc comme des boutons poussoirs à l'aide d'une résistance de tirage "pull up" de 10 kΩ.

Le pluviomètre est branché sur la broche digitale 2 de l'Arduino Uno et l'anémomètre sur la broche digitale 3.

Vous pouvez voir un schéma de ce montage réalisé avec Fritzing ci-dessous.


montage poussoir


• Le baromètre.

baromètre
Notre baromètre est un capteur analogique.
Il mesure la pression avec compensation de la température.


Sa référence est MPX4115A.
Vous pouvez accéder à sa datasheet ici



Vous pouvez voir un schéma de son montage réalisé avec Fritzing ci-dessous.


montage barometre


• Le capteur de particules fines.

capteur de particules fines
En plus des cinq capteurs de notre station de l'an dernier, nous avons ajouté un pluviomètre et un capteur de particules fines.
Ce capteur fonctionne sur le principe de la diffraction d'une lumière infrarouge.
Le capteur renvoie un signal numérique par liaison série contenant les taux de particules fines PM1, PM2,5 et PM10 en μg/m³.

Sa référence est SEN0177. Vous pouvez télécharger sa datasheet ici ou consulter la page dédiée sur le site de DFRobot

Il nous semble important de préciser ici un point important conditionnant le bon fonctionnement de la station dans son ensemble. La consommation du capteur est de l'ordre de la centaine de mA. Dès lors un fonctionnement continue sur plusieurs jours nuageux associé à la consommation également importante du module radio Xbee aura raison de la capacité réduite de notre batterie (3Ah). Nous avons donc connecté la broche "SET" du capteur à une broche digitale de l'Arduino Uno avec un pont diviseur pour réduire la tension produite par le microcontroleur de 5V à 3,3V environ. Cette sortie digitale nous permet ainsi de mettre le capteur en veille 4 minutes sur 5, économisant d'autant notre batterie.
Vous pouvez voir un schéma illustrant son branchement ci-dessous.

Il est a noter tout de même que dans notre montage, nous avons connecté les broches RX et TX du capteur aux broches digitales 10 et 11 de l'arduino et le connecteur "SET" à la broche digitale 8.


montage capteur de particules fines

montage capteur de particules fines

Pour approfondir sur la détection des particules fines, vous trouverez ici une excellente page de l'Association Nationale pour la Prévention et l'Amélioration de la Qualité de l'Air



• La girouette.

girouette
Notre girouette est un capteur analogique.
A chacun des 8 caps de la rose des vents une fermeture entraine une valeur particulière de résistance aux 2 bornes du capteur. Là où cela devient plus suptile, c'est que pour les position intermédiaires, cela occasionne la fermeture des deux résistances adjacentes entrainant une nouvelle valeur qui n'est autre que la résistance équivalente aux deux en parallèle. Vous trouverez ci-dessous le tableau des équivalence entre résistances et orientation du vent.

Pour le montage, le capteur est monté en pont diviseur associé à une résistance de 10kΩ comme illustré ci-dessous.

Sa référence est LEXCA002. Vous trouverez ici les informations données par le fournisseur.

Vous pouvez voir un schéma de son montage réalisé avec Fritzing ci-dessous.


montage girouette


• L'hygromètre.

hygromètre
Notre hygromètre est un capteur analogique.

Il fournit en sortie une tension variable en fonction de l'humidité relative. Le code effectue en suite une approximation affine de cette relation entre humidité et tension.

Pour le montage, le capteur est monté en pont diviseur associé à une résistance de 10kΩ comme illustré ci-dessous.

Sa référence est HIH4010. Vous pouvez télécharger sa datasheet.


montage hygromètre


• Le thermomètre.

thermomètre
Notre thermomètre est une simple thermistance CTN.

C'est donc un capteur analogique.
Il fournit en sortie une tension variable en fonction de la température.

Le capteur est monté en pont diviseur associé à une résistance de 10kΩ comme illustré ci-dessous.

Sa référence est TTC3. Vous pouvez télécharger sa datasheet.


montage thermistance


Et tout ça mis ensemble, vous obtenez un magnifique plat de spaghetti...

montage de l'ensemble

construction de la station construction de la station construction de la station construction de la station

construction de la station construction de la station construction de la station construction de la station


2. Le microcontrôleur de la station météorologique et son module radio.

Arduino
Afin de gérer l'ensemble de tous ces capteurs et le module radio pour l'emmission des données, nous avons utilisé un microcontrôleur Arduino Uno.

Il se programme en langage C++.

Il est basé sur un microcontrôleur Atmege328p et dispose de 6 entrée analogiques et 14 entrées/sorties numériques.
Les entrées analogiques sont en fait couplées à un convertisseur analogique/numérique codant les tensions à l'entrée comprises entre 0 et 5V sur 10 bits soit une précision de mesure de 5/1023 ≈ 4,9mV.

Pour en savoir un peu plus sur ce microcontrôleur et la façon de le programmer, nous vous conseillons cet excellent site qui a en plus le mérite d'être en Français !


Xbee
La station sera installée prochainement sur le toit du batiment du CDI.
Afin de récupérer les données il a été nécessaire d'envisager une autre solution qu'une liaison filaire.
En effet la section numérique où sera installé le poste de traitement des données est à 140 m en ligne droite de la position de la station.

Nous avons donc opté pour une transmission des données par module radio Xbee de la société DIGI travaillant à une fréquence de 2,4 Ghz.

Pour de plus amples informations sur ce module, vous pouvez consulter la datasheet fournie par le constructeur.

2. La réception des données et le traitement sur Raspberry Pi.

Un second module Xbee est connecté à un port usb de l'ordinateur sur lequel s'exécute le programme de traitement des données. Nous avons choisi d'utiliser comme ordinateur dédié un Raspberry Pi.

Le Raspberry Pi est un nano-ordinateur à carte unique (monocarte), conçu par le créateur de jeu David Braben. Ce nano-ordinateur fonctionne avec différentes distributions du système d'exploitation libre Linux. Nous travaillons ici sous Raspbian. A noter que la dernière version Rpi 3 peut fonctionner sous windows :(

Image du Raspberry Pi

Le Raspberry Pi 2



III. Code et rendu

1. Code C++ du μcontrôleur Arduino Uno.

Le code du microcontrôleur effectue un cycle de 5 minutes. Durant environ 50 secondes il effectue l'acquisition d'une série de 15 valeurs de chaque capteur toute les secondes puis calcule la médiane de cette série afin d'éliminer les éventuelles valeurs aberrantes. Il effectue ensuite une série de 10 envois de ces médianes afin d'être certain qu'au moins une transmission réussira.

Vous disposez ci-dessous de l'intégralité du code commenté.

Intégralité du code C++ du μcontrôleur Arduino Uno


Attention : tous les signes inférieur ont été remplacés par le mot afin de
ne pas être considérés dans le code html comme des ouvertures de balise




2. Code Python de réception des données

Ici encore, le train de données reçu est stocké dans des listes dont on essaie de calculer une médiane afin, encore une fois, de s'affranchir d'une éventuelle information aberrantes due à la transmission radio.

Le code trace également une courbe en temps quasi réel (décalage de 5 minutes) à l'aide d'un canvas de la bibliothèque PIL de Python. Cette image du graphique régulièrement actualisée est envoyée au serveur du site.

Vous disposez ci-dessous de l'intégralité du code malheureusement non-commenté :(
Et oui, quand la parresse nous tient...

Intégralité du code Python deréception exécuté sur le Raspberry Pi

Attention : tous les signes inférieur ont été remplacés par le mot afin de
ne pas être considérés dans le code html comme des ouvertures de balise



III. Suivi en temps réel.

Pour l'année scolaire 2018-2019, des améliorations doivent être réalisées par les élèves.

Un groupe d'élèves a pour mission de proposer la mise en place d'une base de données et la création d'une application de consultation de cette base de données à destination des autres disciplines, Histoire et Géographie, Physique Chimie, Sciences et Vie de la Terre, que ce soit pour les classes du lycée ou des collèges voisins : nos amis de l'Etang, de Soubou et de Solesse.

Un autre groupe doit réaliser des pages de présentation des données de la station en temps réel. Les données doivent être disponibles sous formes de tableau de bord avec les valeurs instantanées ainsi que des courbes de suivi sur une période donnée (jour ou mois) pour chaque paramètre transmis par la station.

En attendant, vous trouverez

ici

des courbes d'une qualité volontairement dégradée (les élèves vous proposeront mieux !).

Il s'agit pour le premier graphe de la température et de l'humidité. Nous y avons ajouter deux indicateurs qui tendent à rendre compte de l'influence de l'humidité sur l'impression de chaleur ressentie. Il s'agit de l'indice de chaleur (HI) utilisé par les américains et de l'humidex proposé par les canadiens. La simple divergence des valeurs de ces deux indices incite à la plus grande prudence dans leur interprétation.

Sur un second graphique, vous pourrez suivre les précipitations de la journée et le taux de particules fines d'une taille comprise entre 0,3 et 10μm exprimé μg/m³.

Enfin, sur un dernier graphique nous vous proposons la pression atmosphérique et le vitesse du vent.

www.000webhost.com