- Composants requis
- Module de lecteur RFID EM18
- Thermomètre infrarouge MLX90614
- Schéma
- Explication du code
- Stockage des données du capteur dans une feuille Excel à partir du contrôleur Arduino
Depuis l'épidémie de Covid-19, les thermomètres infrarouges sont utilisés comme outil de dépistage pour scanner les personnes dans les aéroports, les gares ferroviaires et d'autres établissements surpeuplés. Ces scans sont utilisés pour identifier les patients potentiels de Covid-19. Le gouvernement a rendu obligatoire le scan de tout le monde avant d'entrer dans le bureau, l'école ou tout autre endroit bondé.
Donc, dans ce tutoriel, nous allons construire un système de surveillance de la température sans contact basé sur RFID en utilisant un capteur de température sans contact avec Arduino. Lorsque les employés numérisent la carte RFID, elle mesure la température corporelle des employés avec un thermomètre infrarouge sans contact et enregistre le nom et la température de cet employé directement sur la feuille Excel. Nous utiliserons Arduino Nano, MLX90614, lecteur RFID EM18 et capteur à ultrasons pour construire ce projet. Le capteur à ultrasons est utilisé pour calculer la distance entre le thermomètre et la personne. Le thermomètre ne mesurera la température que lorsque la distance est inférieure à 25 cm. C'est quelque chose comme un système de présence basé sur la RFID, qui enregistre également la température corporelle de chaque personne.
Composants requis
- Arduino Nano
- Module RFID EM-18
- Capteur de température sans contact MLX90614
- Capteur à ultrasons
- Planche à pain
- Fils de cavalier
Module de lecteur RFID EM18
L'un des lecteurs RFID largement utilisés pour la lecture des étiquettes 125 kHz est le lecteur RFID EM-18. Ce module de lecteur RFID à faible coût présente une faible consommation d'énergie, un faible facteur de forme et est facile à utiliser. Le module de lecture EM-18 peut fournir une sortie via deux interfaces de communication, à savoir RS232 et WEIGAND26.
Le lecteur RFID EM18 comprend un émetteur-récepteur qui transmet un signal radio. Lorsque l'étiquette RFID arrive dans la plage du signal de l'émetteur, ce signal atteint le transpondeur qui se trouve à l'intérieur de la carte. L'étiquette est alimentée par le champ électromagnétique généré par le module de lecture. Le transpondeur transforme alors le signal radio en une forme d'énergie utilisable. Lors de la mise sous tension, le transpondeur transfère toutes les informations, telles qu'un identifiant spécifique, sous la forme d'un signal RF au module RFID. Ensuite, ces données sont envoyées au microcontrôleur en utilisant la communication UART.
Pour en savoir plus sur la RFID et les étiquettes, consultez nos précédents projets basés sur la RFID.
Thermomètre infrarouge MLX90614
Avant de poursuivre le tutoriel, il est important de savoir comment fonctionne le capteur MLX90614. Il existe de nombreux capteurs de température disponibles sur le marché et nous avons largement utilisé le capteur DHT11 et le LM35 pour de nombreuses applications où l'humidité atmosphérique ou la température doit être mesurée.
Nous avons précédemment utilisé ce capteur dans un pistolet thermique IR qui peut détecter la température d'un objet particulier (pas ambiante) sans entrer directement en contact avec l'objet. Ici, nous utilisons à nouveau le même capteur pour calculer la température d'un objet. Le MLX90614 est l'un de ces capteurs qui utilise l'énergie infrarouge pour détecter la température d'un objet. Pour en savoir plus sur le circuit des capteurs infrarouges et IR, suivez le lien.
Le capteur MLX90614 est fabriqué par le système intégré Melexis Microelectronics, il comporte deux dispositifs intégrés, l'un est le détecteur de thermopile infrarouge (unité de détection) et l'autre est un dispositif DSP de conditionnement de signal (unité de calcul). Il fonctionne sur la base de la loi de Stefan-Boltzmann qui stipule que tous les objets émettent de l'énergie infrarouge et que l'intensité de cette énergie sera directement proportionnelle à la température de cet objet. L'unité de détection dans le capteur mesure la quantité d'énergie IR émise par un objet ciblé et l'unité de calcul la convertit en valeur de température à l'aide d'un ADC intégré de 17 bits et émet les données via la communication I2C. protocole. Le capteur mesure à la fois la température de l'objet et la température ambiante pour calibrer la valeur de température de l'objet. Les caractéristiques du capteur MLX90614 sont indiquées ci-dessous, pour plus de détails, reportez-vous à la fiche technique du MLX90614.
Schéma
Le schéma de circuit pour le capteur de température sans contact basé sur RFID utilisant Arduino est donné ci-dessous:
Comme le montre le schéma électrique, les connexions sont très simples puisque nous les avons utilisées comme modules, nous pouvons les construire directement sur une maquette. La LED connectée à la broche BUZ du module de lecture EM18 s'allume lorsque quelqu'un scanne l'étiquette. Le module RFID envoie des données au contrôleur en série; par conséquent, la broche de l'émetteur du module RFID est connectée à la broche du récepteur d'Arduino. Les connexions sont ensuite classées dans le tableau ci-dessous:
Arduino Nano |
Module RFID EM18 |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Capteur à ultrasons (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trigonométrie |
D6 |
Écho |
Explication du code
Nous devons écrire un code Arduino capable de lire les données du capteur à ultrasons, MLX90614, module de lecteur RFID EM18, et envoyer le nom et la température d'une personne sur une feuille Excel. Pour ce code, vous devez télécharger les bibliothèques Wire et MLX90614. Après avoir téléchargé les bibliothèques, ajoutez-les à votre IDE Arduino.
Le code complet de cette surveillance de la température corporelle sans contact est donné en fin de page. Ici, le même programme sera expliqué dans de petits extraits.
Comme d'habitude, démarrez le code en incluant toutes les bibliothèques requises. Ici, la bibliothèque Wire est utilisée pour communiquer en utilisant le protocole I2C et la bibliothèque Adafruit_MLX90614.h est utilisée pour lire les données du capteur MLX90614.
#comprendre
On définit ensuite les broches du capteur à ultrasons auquel on a fait la connexion
const int trigPin = 5; const int echoPin = 6;
Ensuite, définissez les variables pour stocker les données du module RFID, du capteur à ultrasons et du capteur MLX90614.
longue durée; distance int; String RfidReading; float TempReading;
Dans la fonction void setup () , nous initialisons le moniteur série pour le débogage et le capteur de température MLX90614. Définissez également les broches Trig et Echo comme broches de sortie et d'entrée.
void setup () {Serial.begin (9600); // Initialise la communication série avec le moniteur série pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Dans la fonction void loop () , calculez la distance entre la personne et le capteur et si la distance est inférieure ou égale à 25 cm, appelez la fonction reader () pour scanner l'étiquette.
boucle void () {digitalWrite (trigPin, LOW); delayMicrosecondes (2); digitalWrite (trigPin, HIGH); delayMicrosecondes (10); digitalWrite (trigPin, LOW); durée = pulseIn (echoPin, HIGH); distance = durée * 0,0340 / 2; if (distance <= 25) {lecteur (); }
La fonction void reader () est utilisée pour lire la carte d'étiquette RFID. Une fois la carte rapprochée du module lecteur, le module lecteur lit les données série et les stocke dans la variable d'entrée.
void reader () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); count ++; retard (5);
Dans les lignes suivantes, comparez les données de la carte numérisée avec l'ID d'étiquette prédéfini. Si l'identifiant de l'étiquette correspond à la carte numérisée, lisez la température de la personne et envoyez la température et le nom de la personne sur la feuille Excel.
if (input == tag) flag = 1; autre drapeau = 0; count ++; RfidReading = "Ashish"; }} if (indicateur == 1) {temp_read (); Write_streamer (); }
Dans la fonction temp_read () , lisez les données du capteur MLX90614 en Celsius et stockez-les dans la variable «TempReading» .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Une fois que le matériel et le logiciel sont prêts, il est temps de télécharger le programme dans votre Arduino Nano Board. Dès que votre programme est téléchargé, le capteur à ultrasons commence à calculer la distance. Lorsque la distance calculée est inférieure à 40 cm, il lit la température et la carte.
Stockage des données du capteur dans une feuille Excel à partir du contrôleur Arduino
Maintenant, pour envoyer des données sur une feuille Excel, nous allons utiliser PLX-DAQ. Il s'agit d'un logiciel plug-in Excel qui vous aide à écrire des valeurs d'Arduino directement dans une feuille Excel sur votre ordinateur portable ou PC. Utilisez le lien pour télécharger le fichier. Après le téléchargement, extrayez le fichier et cliquez sur le fichier.exe pour l'installer. Il créera un dossier nommé PLS-DAQ sur votre bureau.
Ouvrez maintenant le fichier «feuille de calcul PLX-DAQ» du dossier du bureau. Si les macros sont désactivées sur votre Excel, vous verrez un bloc de sécurité comme indiqué dans l'image ci-dessous:
Cliquez sur Options-> Activer le contenu -> Terminer -> OK pour activer les macros. Après cela, vous obtiendrez l'écran suivant:
Sélectionnez maintenant le débit en bauds comme «9600» et le port auquel votre Arduino est connecté, puis cliquez sur Connecter pour démarrer le streaming de données. Vos valeurs devraient commencer à être enregistrées comme indiqué dans l'image ci-dessous.
C'est ainsi que vous pouvez créer un dispositif de détection de température sans contact et stocker les données dans la feuille Excel.
Une vidéo de travail et un code complet sont donnés en fin de page.