Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

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

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 :

  1. L'utilisateur passe la main devant le capteur à ultrasons (≈10 cm)
  2. 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 »
  3. L'utilisateur place sa main/front devant le capteur
  4. 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 :

  1. Détection de présence via le capteur à ultrasons
  2. Message de bienvenue et instructions vocales
  3. 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

Mesure Automatique de Température avec Alertes Vocales

Processus de fabrication

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