Aller au contenu principal

Capteur CO2 plantes STM32

InformatiqueTechnologieSTM32 IoT NodeCapteur MH-Z19BÉcran OLED SSD1306MakeCode
ProjetDuréeDifficultéÂge
The Dexter Lab1-2 heuresIntermédiaire12-16 ans

Matériel

  • 1 carte programmable "STM32 IoT Node Board"
  • 1 capteur de CO2 MH-Z19B
  • 1 écran OLED SSD1306
  • 1 breadboard + câbles
  • 1 câble USB - micro B
Capteur CO2 plantes STM32

De quoi parle-t-on ?

Cette fiche technique accompagne la ressource Plantes et CO2. Elle regroupe les étapes de programmation pour mesurer la concentration en CO2 dans l'air, afficher les valeurs sur un écran OLED et exporter les mesures au format CSV pour une analyse ultérieure.

Objectifs d'apprentissage

  • Câbler et programmer un capteur de CO2 (MH-Z19B) avec MakeCode
  • Afficher plusieurs valeurs simultanément sur un écran OLED
  • Utiliser le datalogger de MakeCode pour enregistrer des données au format CSV
  • Combiner plusieurs capteurs internes et externes dans un même programme

Étape 1 : Mesurer le taux de CO2 dans l'air

Câbler le capteur MH-Z19B :

  • GND du capteur sur GND de la carte
  • Vin du capteur sur 5V de la carte
  • PWM du capteur sur A0 de la carte
Capteur CO2 connecté
info

Pour cette activité, installez les extensions Serial et mh-z19b.

Programme

Serial.attachToConsole()
forever(function () {
Serial.writeValue("co2 level", input.getCO2Concentration(pins.A0))
pause(500)
})

Étape 2 : Afficher les données sur un écran OLED

Connecter l'écran SSD1306 (I2C) :

  • GND à la bande d'alimentation '-' de la breadboard
  • VCC sur 3.3V
  • SDA sur D14
  • SCL sur D15
Capteur CO2 avec écran OLED
info

Pour cette activité, installez les extensions mh-z19b et oled.

Programme

forever(function () {
oled.clear()
oled.showString("CO2 level", 1)
oled.showNumber(input.getCO2Concentration(pins.A0), 2)
pause(500)
})

Étape 3 : Exporter les données au format CSV

Datalogger CO2
info

Pour cette activité, installez les extensions mh-z19b et datalogger.

Programme (mesure jour/nuit toutes les 12 heures = 43 200 000 ms)

datalogger.setEnabled(true)
forever(function () {
datalogger.addValue("jour", input.getCO2Concentration(pins.A0))
pause(43200000)
datalogger.addValue("nuit", input.getCO2Concentration(pins.A0))
datalogger.addRow()
pause(43200000)
})

Étape 4 : Exporter CO2, température et humidité au format CSV

Les capteurs d'humidité et de température sont intégrés à la carte.

Programme (mesure toutes les heures = 3 600 000 ms)

datalogger.setEnabled(true)
forever(function () {
datalogger.addValue("CO2", input.getCO2Concentration(pins.A0))
datalogger.addValue("humidity", input.humidity())
datalogger.addValue("temperature", input.temperature(TemperatureUnit.Celsius))
datalogger.addRow()
pause(3600000)
})

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