Aller au contenu principal

Station air extérieur

InformatiqueTechnologieMicro:bit / NUCLEO-L476RG / ArduinoCapteur MICS6814Capteur HM3301Capteur DHT11Écran LCDVittascience
ProjetDuréeDifficultéÂge
SteamCity1-2 heuresIntermédiaire12-16 ans

Matériel

  • 1 carte programmable (NUCLEO-L476RG, micro:bit ou Arduino)
  • 1 capteur multicanal MICS6814 (gaz / COV)
  • 1 capteur HM3301 (particules fines PM)
  • 1 capteur DHT11 (température / humidité)
  • 1 écran LCD I2C
  • 1 module Openlog pour enregistrement sur carte SD (optionnel)
  • Câbles de connexion
  • Ordinateur + éditeur Vittascience
Station air extérieur

De quoi parle-t-on ?

Cette fiche technique accompagne la ressource Outdoor Air Quality. Elle présente trois montages progressifs : un système de surveillance des COV avec écran LCD, un système multi-capteurs combinant COV, particules fines et humidité, et enfin un système de collecte automatisée sur carte SD.

Objectifs d'apprentissage

  • Câbler plusieurs capteurs en I2C (MICS6814, HM3301) et un capteur numérique (DHT11)
  • Utiliser l'éditeur Vittascience avec plusieurs cartes cibles (NUCLEO, micro:bit, Arduino)
  • Combiner boutons et capteurs pour afficher différentes mesures
  • Enregistrer les données sur carte SD via un module Openlog

Fiche 1 : Surveillance des COV avec écran LCD

Les interfaces de programmation pour les cartes NUCLEO-L476RG, micro:bit et Arduino sont très similaires. Nous présentons ici un programme conçu pour micro:bit.

Éditeurs : vittascience.com/l476, vittascience.com/arduino ou vittascience.com/microbit.

Câblage :

  • Capteur multicanal MICS6814 → port I2C
  • Écran LCD → port I2C
  • Module Openlog (carte SD) → port numérique (D2–D8 pour Arduino, P0 pour micro:bit)
Assemblage COV micro:bit
Assemblage — micro:bit
Assemblage COV Arduino
Assemblage — Arduino

Code

from microbit import *
from lcd_i2c import LCD1602
from gas_gmxxx import GAS_GMXXX

lcd = LCD1602()
multichannel_v2 = GAS_GMXXX(0x08)

while True:
lcd.setCursor(0, 0)
lcd.writeTxt('Mesure VOC')
lcd.setCursor(0, 1)
lcd.writeTxt(str(multichannel_v2.calcVol(multichannel_v2.measure_VOC())))
Programme COV - vue blocs
Programme COV — vue blocs

Fiche 2 : Collecte multi-capteurs

Même plateforme (Vittascience). On ajoute le capteur HM3301 (particules fines) et le DHT11 (température/humidité).

Câblage :

  • HM3301 et MICS6814 → ports I2C
  • DHT11 → port numérique (D2–D8 ou P0/P1/P2 selon la carte)
  • Écran LCD → port I2C
  • Openlog → port numérique

Les boutons A et B permettent de sélectionner la mesure à afficher (COV, PM10, température).

Assemblage multi-capteurs micro:bit
Assemblage multi-capteurs — micro:bit
Assemblage multi-capteurs Arduino
Assemblage multi-capteurs — Arduino

Code

from microbit import *
from lcd_i2c import LCD1602
from gas_gmxxx import GAS_GMXXX
from hm330x import HM330X
from dht11 import DHT11

lcd = LCD1602()
multichannel_v2 = GAS_GMXXX(0x08)
hm3301 = HM330X()
dht11_0 = DHT11(pin0)

while True:
if button_a.is_pressed():
lcd.setCursor(0, 0)
lcd.writeTxt('Mesure VOC:')
lcd.setCursor(0, 0)
lcd.writeTxt(str(multichannel_v2.calcVol(multichannel_v2.measure_VOC())))
if button_b.is_pressed():
lcd.setCursor(0, 0)
lcd.writeTxt('Concentration PM 10:')
lcd.setCursor(0, 0)
lcd.writeTxt(str(hm3301.getData(5)))
if button_a.is_pressed() and button_b.is_pressed():
lcd.setCursor(0, 0)
lcd.writeTxt('Mesure temperature:')
lcd.setCursor(0, 0)
lcd.writeTxt(str(dht11_0.getData(d=1)*9/5 + 32))
Programme multi-capteurs
Programme multi-capteurs — vue blocs

Fiche 3 : Enregistrement automatisé sur carte SD

Ce programme envoie les données vers un module Openlog via UART pour les enregistrer sur carte SD.

Code

from microbit import *
from hm330x import HM330X
from gas_gmxxx import GAS_GMXXX

hm3301 = HM330X()
multichannel_v2 = GAS_GMXXX(0x08)

while True:
uart.init(baudrate=4800, bits=8, parity=None, tx=pin0, rx=pin14)
uart.write(('{}' * 3).format(hm3301.getData(3), ';', multichannel_v2.calcVol(multichannel_v2.measure_NO2())) + '\n')
Programme enregistrement carte SD
Programme d'enregistrement vers la carte SD — vue blocs

Cette fiche fait partie du projet SteamCity, financé par le programme Erasmus+. Contenu sous licence CC BY-SA 4.0.