Aller au contenu principal

Station météo STM32

InformatiqueTechnologieSTM32 IoT NodeCapteurs intégrés (T, P, H)AnémomètreÉcran OLED SSD1306MakeCode
ProjetDuréeDifficultéÂge
The Dexter Lab1-2 heuresAvancé13-18 ans

Matériel

  • 1 carte programmable "STM32 IoT Node Board"
  • 1 anémomètre (imprimable 3D)
  • 1 écran OLED SSD1306
  • 1 breadboard + câbles
  • 1 câble USB - micro B
Station météo STM32

De quoi parle-t-on ?

Cette fiche technique accompagne la ressource Solution météo. Elle réunit tous les programmes MakeCode nécessaires pour construire une mini-station météo : température, pression, humidité, vitesse du vent, puis l'affichage synthétique sur un écran OLED.

Anémomètre
Anémomètre
Capteur et écran
Capteur et écran
Code anémomètre
Code anémomètre
Détecteur de passage
Détecteur de passage
Interrupteur
Interrupteur

Objectifs d'apprentissage

  • Utiliser les capteurs internes de la STM32 (température, pression, humidité)
  • Programmer un anémomètre externe et calculer une vitesse
  • Combiner plusieurs mesures dans un même programme
  • Afficher une station météo complète sur un écran OLED

Étape 1 : Mesure de la température

Serial.attachToConsole()
forever(function () {
Serial.writeValue("temperature", input.temperature(TemperatureUnit.Celsius))
pause(500)
})

Étape 2 : Mesure de la pression atmosphérique

Serial.attachToConsole()
forever(function () {
Serial.writeValue("pression", input.pressure(PressureUnit.HectoPascal))
pause(500)
})

Étape 3 : Mesure de l'humidité relative

Serial.attachToConsole()
forever(function () {
Serial.writeValue("humidity", input.humidity())
pause(500)
})

Étape 4 : Mesure de la vitesse du vent

let period = 3
let armLength = 0.1
let speed = 0

Serial.attachToConsole()

forever(function () {
speed = 2 * Math.PI * armLength * input.getAnemometerRotationPerUnit(pins.A0, AnemometerUnit.RPS, period) * 3.6
Serial.writeValue("speed", speed)
})

Étape 5 : Station météo complète sur écran OLED

Câblage anémomètre :

  • Broche '-' de l'anémomètre → bande '-' de la breadboard
  • GND de la carte → bande '-' de la breadboard
  • Broche '+' de l'anémomètre → bande '+' de la breadboard
  • 3.3V de la carte → bande '+' de la breadboard
  • Broche Signal de l'anémomètre → A0 de la carte

Câblage écran OLED I2C : GND, VCC, SDA (D14), SCL (D15).

Installez les extensions anemometer et oled.

let wind = 0
function getAnemometerSpeed (armLength: number, period: number) {
return 2 * Math.PI * armLength * input.getAnemometerRotationPerUnit(pins.A0, AnemometerUnit.RPS, period) * 3.6
}
forever(function () {
wind = getAnemometerSpeed(0.1, 1)
oled.clear()
oled.showValue("temperature", input.temperature(TemperatureUnit.Celsius), 1)
oled.showValue("pressure", input.pressure(PressureUnit.HectoPascal), 2)
oled.showValue("humidity", input.humidity(), 3)
oled.showValue("wind speed", wind, 4)
pause(1000)
})

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