Multistation Météo Qualité de l'air

Cette page contient des modifications qui ne sont pas marquées pour la traduction.

Auteur avatarBenoit BOUMATI | Dernière modification 12/01/2023 par Bben81

Ce tutoriel est mis en place pour servir de documentation pour la création d'une tour météo dans le cadre de la formation hybride numérique IMT Albi - Septembre 2022

Introduction

Dans le cadre de la Formation Hybride Numérique proposée par le réseau des IMT (Institut Mines Telecom), le montage et la programmation d'une station météo permet d'aborder différents thèmes autour de la fabrication numérique.

Si la partie station météo est proposée quasiment clés en main comme support de la formation, il est demandé à chaque candidat de développer un étage supplémentaire à la tour bentolux V3 de son choix en interfaçant un capteur et un actionneur utilisés sous Artduino.

Cette partie permet d'utiliser les compétences acquises lors de la formation (découpe laser, impression 3D, programmation Arduino).

Dans le cadre de mon activité, je suis amené à souvent travailler dans un environnement qui peut vite devenir poussiéreux ou chargé en composants indésirables et nocifs à la santé.

J'ai donc décidé de créer un étage muni de plusieurs capteurs (CO/CO2/COV/PMS) pour pouvoir surveiller mon environnement de travail.

Les données des capteurs sont utilisées pour affichage sur un petit ecran OLED en facade.

Une interaction avec des LEDs (Strip LED pour la partie qualité de l'air, et RINGLeds pour la partie météo) est mise en place pour doubler l'information de manière visuelle.

Ce dernier étage se termine par la mise en place d'une lampe lithophanie montée sur un système rotatif motorisé commandé par l'action sur le bouton poussoir, pour une durée (timer) défini dans le code, mais qui a terme devrait être programmable à l'aide de l'encodeur rotatif . Ce choix, en plus du côté esthétique, permet de tester et valider l'utilisation d'un relais commandé par Arduino pour alimenter une ampoule et un moteur en 12V. Le but étant à terme de pouvoir commander la mise en route automatique d'un système filtrant de purification d'air.

La LED de 10mm est quant à elle utilisée pour transformer la tour en veilleuse discrète qui se commande de la même manière que la lampe rotative.

Pour que les informations nombreuses restent visibles, j'ai dédié à chaque fonction un écran particulier.

Au nombre de 8 pour l'instant, ils pourront être facilement modifiés pour faire évoluer la multi-station. Le fonctionnement détaillé est décrit dans la partie "code"



Étape 1 - ALIMENTATION

Mon projet nécessitant une alimentation étagées avec du 12V, du 9V et du 5V, j'ai redessiné un étage d'alimentation de 15cm/15cm pour pouvoir y insérer une alimentation 220AC/12VCC, un étage de transformation et un relais de commande pour alimenter en 12V le moteur et la lampe de la lithophanie rotative.

L'étage de transformation a été réalisé à l'aide de deux LM7805CV en parallèle de manière à pouvoir disposer d'une intensité suffisante (chaque LM7805CV étant limité à 1.5A) pour pouvoir alimenter le LEDRing et le StripLED, ainsi que d'un LM7809CV pour alimenter la carte ARDUINO. Pour sécuriser l'ensemble un petit ventilateur de 40mm est placé en face arrière du boitier pour évacuer la chaleur émises par l'alimentation. Lors des essais, aucune chaleur excessive ne s'est dégagée du boitier. A voir en fonctionnement continu.

Le schéma électrique a été réalisé à l'aide du logiciel libre EasyEDA. et est fourni en pièce jointe.



Étape 2 - Plan et découpe

Pour la base du projet, des plans de bentos déjà préparés nous ont été remis lors de la formation ainsi que les pièces nécessaires pour la partie station météo.

En restant sur le même type de conception j'ai modelisé une boite à encoche à l'aide de l'extension "lasercut box" du logiciel Inkscape.

Tous les plans nécessaires à cette réalisation se trouvent en pièces jointes.



Étape 3 - Sation météo

Pour la partie station météo, le capteur utilisé est un BME280 qui permet facilement d'obtenir la température, la pression et le taux d'humidité dans l'air.

Ce capteur permet aussi, à la suite d'un étalonnage , de calculer l'altitude en se basant sur la pression atmosphérique au niveau de la mer.

Dans notre utilisation, nous récupérerons les données du capteur pour les afficher sur un écran OLED.

Une interaction avec le LEDRing est programmée pour chaque donnée du capteur.

Pour la température, une LED s'allume au droit de la sérigraphie associée sur la face avant du boitier, les valeurs mini et maxi sont définies dans le code .

Pour la Pression, une LED s'allume au droit du pictogramme barométrique correspondant sur la face avant du boitier.

Pour l'humidité, toutes les LEDs du LEDRing s'allument de la même couleur en fonction du taux d'humidité relevé par le capteur.

Les seuils choisis pour les différentes fonctions sont définis dans le code et pourront être modifiées à l'usage.

Étape 4 - Etage de capteur de qualite de l'air

La station météo étant destinée à être utilisée dans un environnement d'atelier, j'ai choisi d'utiliser trois type de capteur pour pouvoir monitorer plusieurs gaz rentrant en ligne de compte lors de la surveillance de la qualité de l'air.

Capteur PMS2.5: pour détecter les particules fines, poussières, fumées.

Capteur SEN0440: pour la mesure du monoxyde de carbone.

Capteur SGP30: pour la mesure des taux de CO2 et de composés organiques volatiles (COV).

Le capteur SEN440 permettant de mesurer la concentration de

* CO   (Carbon Monoxide)  (1    - 1000)PPM

     *   CH4 (Methane)          (1000 - 25000)PPM

     *   C2H5OH (Ethanol)          (10   - 500)PPM

     *   H2   (Hydrogen)         (1    - 1000)PPM

     *   NH3     (Ammoniac)          (1    - 500)PPM

Les différentes fonctions de calcul sont présentes dans le code en commentaire pour pouvoir facilement modifier le gaz surveillé.



Étape 5 - La lampe planète lithophanie rotative

Le système de rotation a été modélisé sous Fusion 360 avec comme contrainte de garder l'axe de rotation libre et fixe de manière à pouvoir insérer une lampe à l’intérieur de la lithophanie. Le choix retenu est inspiré des systèmes de plateau rotatif pour scanner 3D sur lequel vient s'inscrire un pas de vis femelle au format métrique M27/3. Ce choix permettra par la suite de facilement remplacer la planète par tout objet présentant un pas de vis mâle au même format.

La couronne extérieure de 90 dents en module M1 supportant le plateau est emprisonnée dans un boitier, et entraînée par un pignon (M1-8T), le tout représentant un rapport de démultiplication d'environ 11 permettant une rotation d'environ 7 tours par minutes.



Étape 6 - Les impressions

Plusieurs impressions ont été réalisées pour le projet. Tout d'abord, le bouton du potentiomètre a été modélisé et imprimé durant le temps présentiel de la formation.

Ensuite, l'étage lampe de chevet modélisé aux même dimensions que la boite de base est imprimé en PLA sur imprimante ultimaker3 avec support .

La lampe rotative est la partie qui a demandé le plus d'impression, toutes réalisées en PLA blanc.

Les lythophanies (étage lampe de chevet et planète rotative) ont été réalisées à l'aide du logiciel Luban3D puis modifiées sous Fusion360. Slicées à l'aide de CURA et imprimées en PLA blanc sur des imprimantes ultimaker3 Extended.

La planète a été coupée en deux selon l'équateur et imprimée en deux parties pour éviter l'emploi de support. Les deux parties sont ensuite assemblées à la superglue.

Pour finir, des petits pions de centrage et 3 caches leds sont imprimés en PLA.

Étape 7 - Le code sur Arduino.

Le code a été développé étape par étape, en testant à l'aide d'exemples simples les différents capteurs ou actionneurs utilisés dans le projet.

Une fois le fonctionnement de chaque composant compris et validé, l'étape suivante a été la réflexion sur le fonctionnement souhaité et la réalisation d'un organigramme. Organigramme adapté au fur et à mesure de l'écriture du code en fonction des limites et difficultés rencontrées qui seront résolues ultérieurement.

L'idée de départ était de disposer d'un menu déroulant avec une IHM composée d'un encodeur rotatif et d'un écran. A défaut de menu déroulant, l'encodeur permet pour l'instant de passer de l'affichage d'une fonction à une autre.


Fonctionnement de la BentoLux V3

IHM : 1 sélecteur rotatif avec bouton poussoir

1 écran pour afficher les données.

1 led ring pour afficher des données de capteur météo

1 stripLed pour afficher des couleurs en fonction des données de capteur CO

1 Potentiomètre

1 LED blanche de 10mm (chevet) commandée en analogique en fonction de la valeur du potentiomètre.

1 relais de commande 12V

1 lampe bulb 12V (lampe planète litho) commandée par le relais

1 moteur CC 12V 72RPM démultiplié par système d’entraînement pignon(8)/couronne(90)

Un tas de capteurs (météo, qualité de l’air, horloge RTC).


Plusieurs modes en fonction de la position de l’encodeur rotatif.

A terme, la mise en place d’un menu déroulant accessible par appui du BP, et accès a la fonction choisie après validation de l’entrée dans le menu.

Pour l’instant, la rotation de l’encodeur renvoi la position de l’encodeur, elle même bornée pour toujours obtenir une valeur correspondant à un mode.

Allumage de la BentoLux :

Le logo de l’atelier s’affiche durant 5sec, programmé dans le setup SSD_1306


(case 0) : Écran d’accueil – position de départ de l’encodeur rotatif

Écran avec date et heure sans seconde

LED Ring éteint

StripLed en surveillance du taux de CO


(case 1) : Heure

Ecran avec heure/minute/secondes

LED Ring éteint

StripLed en surveillance du taux de CO


(case 2) : Temperature

Ecran 1ere ligne : temperature et seconde ligne tempC en degré C.

LED Ring – Led au droit de la serigraphie du boitier

StripLed en surveillance du taux de CO


(case 3) : Humidité

Ecran 1ere ligne : humidité et seconde ligne humC en %.

LED Ring – complet – couleur fonction du taux d’humidité

StripLed en surveillance du taux de CO


(case 4) : Pression

Ecran 1ere ligne : pression : et seconde ligne presC en hPa.

LED Ring – Led au droit de la serigraphie du boitier

StripLed en surveillance du taux de CO


(case 5) : qualité de l’air

Ecran ligne 0 taux de CO, ligne 16 taux de CO2, ligne 32 taux de COV, ligne 48 taux de PMS2,5.

LEDRing eteint

StripLed en surveillance du taux de CO


(case 6) : timer chevet

Ecran ligne 1 lampe de chevet, ligne 2 « _TIMER_LAMPES_ sec » ou « ETEINT ».

LEDring eteint

StripLed en surveillance du taux de CO


(case 7) : timer litho

Ecran ligne 1 litho planete, ligne 2 « _TIMER_LAMPES_ sec » ou « ETEINT.

LEDring eteint

StripLed en surveillance du taux de CO


Dans tous les cas, le timer associé à une lampe se déclenche lors de l’allumage de la lampe et est affiché sur l’écran. Si aucune action sur le BP, à la fin du timer la lampe s’éteint.

Si on éteint manuellement la lampe (par appui sur BP), on coupe la lampe et on ne surveille plus le timer.

Le fréquence de rafraîchissement de l’affichage est définie pour chaque fonction comme arguments de la fonction et permet un affichage stable, quelque soit la fonction utilisée.

Les prochaines améliorations porteront sur la détection du type d’appui sur le bouton poussoir (appui court ou appui long) pour faciliter la mise en place de fonction de réglages et de paramétrage directement à l’aide de l’interface homme machine (durée du timer, seuil de surveillance, réglage de l’heure, etc.). L’implémentation d’un menu et de sous-menus.

Une amélioration de la phase de démarrage avec suppression du délais dans le setup de l’ecran OLED qui présente le logo de l’atelier tout en permettant le lancement des initialisations des capteurs de gaz.

Continuer de lire la littérature sur les capteurs utilisés pour affiner leur fonctionnement en procédant à leur étalonnage à l’aide des données météo réelles.

La volonté d'utiliser un second écran pour simplifier la lecture des informations a été freinée par manque de temps, mais fait partie des améliorations envisagées. En effet, la librairie utilisée ne semble pas permettre l'utilisation de deux écrans simultanément. Des tests seront fait avec une autre librairie pour gérer un second écran.

Commentaires

Draft