Mesure Automatique de Température avec Alertes Vocales
Composants et Fournitures
| Arduino UNO | × | 1 |
| UTSOURCE Composants Électroniques | × | 1 |
À Propos du Projet
Ces derniers temps, le monde entier lutte contre le virus Covid-19. La première étape pour identifier les personnes infectées (ou suspectées de l'être) est la mesure de la température corporelle. Ce projet modélise un système capable de mesurer la température automatiquement et d'informer le résultat par synthèse vocale.
Étape 1 : Liste des Composants
- Arduino UNO
- Module carte SD
- Carte SD 8 Go
- Amplificateur PAM8403 et haut-parleur
- Capteur à ultrasons HC-SR04
- Écran OLED 128×64
- Câbles pour breadboard
- Thermomètre infrarouge GY-906 (MLX90614)
Note : En raison de la forte demande, le capteur GY-906 peut être difficile à trouver sur le marché.
Étape 2 : Conception du Circuit
Le système mesure la température via le thermomètre infrarouge GY-906, affiche le résultat sur l'écran OLED 128×64 et l'annonce vocalement via le haut-parleur. Les fichiers audio sont stockés sur la carte SD et lus selon la température mesurée. L'amplificateur PAM8403 booste le volume sonore.
Processus principal :
- L'utilisateur passe la main devant le capteur à ultrasons (≈10 cm)
- Message vocal de bienvenue : « Bienvenue dans le système de mesure de température, veuillez placer votre main ou votre front devant le capteur à environ 2 cm »
- L'utilisateur place sa main/front devant le capteur
- Le système annonce et affiche le résultat. Exemple : « Votre température est de 36,5 °C. Votre température semble normale, restez en bonne santé ! »
Étape 3 : Fabrication du Câblage et Assemblage
Le boîtier est découpé au laser dans du MDF de 3 mm d'épaisseur. Les fichiers de conception sont disponibles en téléchargement. Après découpe, collez les pièces pour former le cadre, installez tous les composants et effectuez le câblage selon le schéma.
Étape 4 : Code et Téléchargement
Le code Arduino gère :
- Détection de présence via le capteur à ultrasons
- Message de bienvenue et instructions vocales
- Lecture de la température et annonce vocale du résultat avec commentaire
Code : Télécharger
Fichiers audio (8-bit, mono, 11025 Hz) : Télécharger
Les fichiers audio ont été enregistrés puis convertis via convertisseur en ligne.
Étape 5 : Test et Mise en Service
Alimentez le système et testez son fonctionnement. Le dispositif mesure la température et l'annonce vocalement de manière fiable.
Code Source
// www.youtube.com/c/engineer2you
#include <SD.h>
#define SD_ChipSelectPin 10
#include <TMRpcm.h>
#include <Adafruit_MLX90614.h>
// Configuration OLED
#include "SSD1306Ascii.h"
#include "SSD1306AsciiAvrI2c.h"
#define I2C_ADDRESS 0x3C
#define RST_PIN -1
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
SSD1306AsciiAvrI2c oled;
TMRpcm tmrpcm;
double temp;
const int trigPin = 17;
const int echoPin = 16;
long duration;
int distance;
int step1_judge = 0;
void setup() {
// Initialisation OLED
#if RST_PIN >= 0
oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else
oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif
oled.setFont(Adafruit5x7);
// Audio
tmrpcm.speakerPin = 9;
Serial.begin(9600);
// Carte SD
if (!SD.begin(SD_ChipSelectPin)) {
Serial.println("SD fail");
oled.clear();
oled.set1X();
oled.println("SD card fail");
return;
} else {
Serial.println("SD ok");
oled.clear();
oled.println("SD card ok");
}
delay(1000);
tmrpcm.play("m_wel.wav");
tmrpcm.volume(1);
oled.clear();
oled.set2X();
oled.println("");
oled.println(" Welcome");
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
mlx.begin();
delay(10000);
}
void loop() {
// Mesure distance
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH, 23529);
distance = duration * 0.034 / 2;
if ((distance < 10) && (distance > 0)) step1_judge++;
else step1_judge = 0;
if (step1_judge > 2) {
step1_judge = 0;
tmrpcm.play("m_wel.wav");
delay(10000);
temp = mlx.readObjectTempC() + 1.2;
// Affichage température
oled.clear();
oled.set2X();
oled.println("");
oled.print(" ");
oled.print(temp, 1);
oled.println("°C");
tmrpcm.play("m_now.wav");
delay(1380);
if (temp < 20) {
tmrpcm.play("m_b20.wav");
delay(1700);
tmrpcm.play("m_nman.wav");
delay(2270);
} else if (temp > 50) {
tmrpcm.play("m_over50.wav");
delay(1740);
tmrpcm.play("m_nman.wav");
delay(2270);
} else {
speak_out(temp);
delay(1500);
if ((temp > 36) && (temp < 37)) {
tmrpcm.play("m_normal.wav");
delay(3268);
}
if (temp > 37) {
tmrpcm.play("m_fever.wav");
delay(2728);
}
}
}
delay(300);
}
void speak_out(double temperature_result) {
temperature_result = temperature_result * 10;
temperature_result = round(temperature_result);
int temp0 = temperature_result;
int temp1 = temp0 / 10;
int temp2 = temp1 % 10;
int temp3 = temp0 % 10;
if (temp1 < 20) { tmrpcm.play("m_below20.wav"); delay(1631); }
if (temp1 > 50) { tmrpcm.play("m_over50.wav"); delay(1747); }
if ((temp1 >= 20) && (temp1 <= 29)) { tmrpcm.play("m_twenty.wav"); delay(600); }
if ((temp1 >= 30) && (temp1 <= 39)) { tmrpcm.play("m_thirty.wav"); delay(500); }
if ((temp1 >= 40) && (temp1 <= 49)) { tmrpcm.play("m_fourty.wav"); delay(691); }
if (temp2 != 0) speak_num(temp2);
if ((temp1 >= 20) && (temp1 <= 50)) {
tmrpcm.play("m_point.wav");
delay(319);
speak_num(temp3);
}
tmrpcm.play("m_dgc.wav");
delay(853);
}
void speak_num(int number) {
switch(number) {
case 1: tmrpcm.play("m_one.wav"); delay(453); break;
case 2: tmrpcm.play("m_two.wav"); delay(499); break;
case 3: tmrpcm.play("m_three.wav"); delay(406); break;
case 4: tmrpcm.play("m_four.wav"); delay(401); break;
case 5: tmrpcm.play("m_five.wav"); delay(354); break;
case 6: tmrpcm.play("m_six.wav"); delay(401); break;
case 7: tmrpcm.play("m_seven.wav"); delay(633); break;
case 8: tmrpcm.play("m_eight.wav"); delay(360); break;
case 9: tmrpcm.play("m_nine.wav"); delay(580); break;
case 0: tmrpcm.play("m_zero.wav"); delay(610); break;
}
}
Schéma de Câblage

Processus de fabrication
- Système de contrôle d'accès intégré QR, RFID et vérification de température
- Mesure de température sur Raspberry Pi avec capteurs 1‑Wire Maxim et pont I2C DS2482
- Construire un capteur de température distant avec Raspberry Pi et Python – Guide étape par étape
- Surveillance transparente température et humidité sur Raspberry Pi avec EzTemp
- Contrôle de température brassage maison DIY : Surveiller et réguler avec Arduino
- Mesure et journalisation précises de thermocouple pour laboratoires et expériences scientifiques
- Construire un système de surveillance température et lumière multi-capteurs avec Raspberry Pi et DS18B20
- Surveillance précise de la température à l'intérieur des structures composites et lignes de collage adhésif
- Explorer les outils de mesure : types, usages et bonnes pratiques