Son et température STM32
InformatiqueTechnologieSTM32 IoT NodeCapteur HC-SR04Écran OLED SSD1306MakeCode
| Projet | Durée | Difficulté | Âge |
|---|---|---|---|
| The Dexter Lab | 1 heure | Intermédiaire | 13-18 ans |
Matériel
- 1 carte programmable "STM32 IoT Node Board"
- 1 capteur à ultrasons HC-SR04
- 1 écran OLED SSD1306
- 1 breadboard + câbles
- 1 câble USB - micro B
De quoi parle-t-on ?
Cette fiche technique accompagne la ressource Température et vitesse du son. Elle décrit le câblage d'un capteur à ultrasons HC-SR04 et d'un écran OLED, ainsi que le programme qui déclenche la mesure et affiche à la fois la température et le temps de parcours du son.
Objectifs d'apprentissage
- Câbler simultanément un capteur à ultrasons et un écran OLED en I2C
- Utiliser un événement de température pour déclencher une action
- Afficher plusieurs valeurs synchronisées sur un écran OLED
Mesurer la variation de la vitesse du son
Câblage
Capteur de distance HC-SR04 :
- Broche GND du capteur sur la broche GND de la carte
- Broche VCC du capteur sur la broche 5V de la carte
- Broche Trig du capteur sur la broche D6 de la carte
- Broche Echo du capteur sur la broche D7 de la carte
Écran OLED SSD1306 (connexion I2C) :
- Broche GND de l'écran à la bande d'alimentation '-' de la breadboard
- Broche VCC de l'écran sur la broche 3.3V de la carte
- Broche SDA de l'écran sur la broche D14 de la carte
- Broche SCL de l'écran sur la broche D15 de la carte
info
Les extensions dans MakeCode sont des groupes de blocs de code qui ne sont pas directement inclus dans les blocs de code de base. Elles ajoutent des blocs pour des fonctionnalités spécifiques. Pour cette activité, installez les extensions hcsr04 et oled.
Programme
input.onTemperatureConditionChanged(TemperatureCondition.Cold, 30, TemperatureUnit.Celsius, function () {
pins.D0.digitalWrite(true)
})
input.onTemperatureConditionChanged(TemperatureCondition.Hot, 30, TemperatureUnit.Celsius, function () {
pins.D0.digitalWrite(false)
})
let minute = 0
forever(function () {
oled.clear()
oled.showValue("minute", minute, 1)
oled.showValue("temp", input.temperature(TemperatureUnit.Celsius), 2)
oled.showValue("time", HCSR04.getTime(MHCSR04TimeUnit.Ms), 3)
minute += 1
pause(60000)
})
Cette fiche fait partie du projet The Dexter Lab, financé par le programme Erasmus+. Contenu sous licence CC BY-SA 4.0.