- Componente necesare
- Modulul de citire RFID EM18
- MLX90614 Termometru cu infraroșu
- Diagrama circuitului
- Explicarea codului
- Stocarea datelor senzorului în foaia Excel de la Arduino Controller
De la izbucnirea Covid-19, termometrele cu infraroșu sunt folosite ca instrument de screening pentru scanarea persoanelor din aeroporturi, stații de cale ferată și alte unități aglomerate. Aceste scanări sunt utilizate pentru a identifica potențialii pacienți cu Covid-19. Guvernul a obligat să scaneze pe toată lumea înainte de a intra în birou, în școală sau în orice alt loc aglomerat.
Deci, în acest tutorial, vom construi un sistem de monitorizare a temperaturii fără contact bazat pe RFID utilizând un senzor de temperatură fără contact cu Arduino. Când angajații scanează cardul RFID, acesta va măsura temperatura corpului angajaților cu un termometru cu infraroșu fără contact și va înregistra numele și temperatura acelui angajat direct pe foaia Excel. Pentru a construi acest proiect vom folosi Arduino Nano, MLX90614, cititor RFID EM18 și senzor cu ultrasunete. Senzorul cu ultrasunete este utilizat pentru a calcula distanța dintre termometru și persoană. Termometrul va măsura temperatura numai atunci când distanța este mai mică de 25 CM. Este ceva asemănător unui sistem de prezență bazat pe RFID, care înregistrează și temperatura corpului fiecărei persoane.
Componente necesare
- Arduino Nano
- Modul RFID EM-18
- MLX90614 Senzor de temperatură fără contact
- Senzor cu ultrasunete
- Breadboard
- Sârme jumper
Modulul de citire RFID EM18
Unul dintre cititoarele RFID utilizate pe scară largă pentru citirea etichetelor de 125 kHz este cititorul RFID EM-18. Acest modul de citire RFID cu cost redus oferă un consum redus de energie, factor de formă redus și ușor de utilizat. Modulul de citire EM-18 poate furniza ieșire prin două interfețe de comunicații, adică RS232 și WEIGAND26.
Cititorul RFID EM18 are un transceiver care transmite un semnal radio. Când eticheta RFID intră în intervalul semnalului transmițătorului, acest semnal lovește transponderul care se află în interiorul cardului. Eticheta extrage energie din câmpul electromagnet generat de modulul cititorului. Transponderul transformă apoi semnalul radio în forma utilizabilă de putere. La obținerea alimentării, transponderul transferă toate informațiile, cum ar fi un ID specific, sub forma unui semnal RF către modulul RFID. Apoi aceste date au fost trimise la microcontroler folosind comunicația UART.
Pentru a afla mai multe despre RFID și etichete, consultați proiectele noastre anterioare bazate pe RFID.
MLX90614 Termometru cu infraroșu
Înainte de a continua cu tutorialul, este important să știm cum funcționează senzorul MLX90614. Există mulți senzori de temperatură disponibili pe piață și am folosit extensiv senzorul DHT11 și LM35 pentru multe aplicații în care trebuie măsurate umiditatea sau temperatura atmosferică.
Am folosit anterior acest senzor în pistol termic IR care poate simți temperatura unui anumit obiect (nu ambiental) fără a intra direct în contact cu obiectul. Aici folosim din nou același senzor pentru a calcula temperatura unui obiect. MLX90614 este un astfel de senzor care utilizează energia IR pentru a detecta temperatura unui obiect. Pentru a afla mai multe despre circuitul senzorului infraroșu și IR, urmați linkul.
Senzorul MLX90614 este fabricat de sistemul integrat Melexis Microelectronics, are două dispozitive încorporate, unul este detectorul de termopile cu infraroșu (unitate de detectare), iar celălalt este un dispozitiv DSP de condiționare a semnalului (unitate de calcul). Funcționează pe baza legii Stefan-Boltzmann care afirmă că toate obiectele emit energie IR și intensitatea acestei energii va fi direct proporțională cu temperatura acelui obiect. Unitatea de detectare din senzor măsoară câtă energie IR este emisă de un obiect vizat, iar unitatea de calcul o convertește în valoare de temperatură utilizând un ADC încorporat de 17 biți și transmite datele prin comunicația I2C protocol. Senzorul măsoară atât temperatura obiectului, cât și temperatura ambiantă pentru a calibra valoarea temperaturii obiectului. Caracteristicile senzorului MLX90614 sunt prezentate mai jos, pentru mai multe detalii consultați fișa tehnică MLX90614.
Diagrama circuitului
Diagrama circuitului pentru senzorul de temperatură fără contact bazat pe RFID folosind Arduino este prezentată mai jos:
Așa cum se arată în schema circuitelor, conexiunile sunt foarte simple, deoarece le-am folosit ca module, le putem construi direct pe o placă de calcul. LED-ul conectat la pinul BUZ al modulului Reader EM18 se înalță când cineva scanează eticheta. Modulul RFID trimite date către controler în serie; prin urmare pinul transmițătorului modulului RFID este conectat la pinul receptorului Arduino. Conexiunile sunt clasificate în continuare în tabelul de mai jos:
Arduino Nano |
Modul RF18 EM18 |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Senzor cu ultrasunete (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trig |
D6 |
Ecou |
Explicarea codului
Trebuie să scriem un cod Arduino care poate citi datele de la senzorul cu ultrasunete, MLX90614, modulul de citire RFID EM18 și să trimitem numele și temperatura unei persoane într-o foaie Excel. Pentru acest cod, trebuie să descărcați bibliotecile Wire și MLX90614. După descărcarea bibliotecilor, adăugați-le la ID-ul dvs. Arduino.
Codul complet pentru această monitorizare a temperaturii corpului fără contact este dat la sfârșitul paginii. Aici același program va fi explicat în fragmente mici.
Ca de obicei, porniți codul prin includerea tuturor bibliotecilor necesare. Aici biblioteca Wire este utilizată pentru a comunica utilizând protocolul I2C și biblioteca Adafruit_MLX90614.h este utilizată pentru a citi datele senzorului MLX90614.
#include
Apoi definim pinii senzorului cu ultrasunete la care am făcut conexiunea
const int trigPin = 5; const int echoPin = 6;
După aceea, definiți variabilele pentru a stoca modulul RFID, senzorul cu ultrasunete și datele senzorului MLX90614.
durata lunga; int distanta; String RfidReading; plutitor TempReading;
În interiorul funcției de configurare nulă () , inițializăm monitorul serial pentru depanare și senzorul de temperatură MLX90614. De asemenea, setați pinii Trig și Echo ca pin de ieșire și de intrare.
void setup () {Serial.begin (9600); // Inițializați comunicarea serială cu PinMode Serial Monitor (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
În interiorul funcției bucla de gol () , calculați distanța dintre persoană și senzor și dacă distanța este mai mică sau egală cu 25 cm, atunci apelați funcția cititor () pentru a scana eticheta.
bucla void () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanta = durata * 0,0340 / 2; if (distanță <= 25) {cititor (); }
funcția void reader () este utilizată pentru a citi cardul de etichete RFID. Odată ce cardul este apropiat de modulul cititor, modulul cititor citește datele seriale și le stochează în variabila de intrare.
cititor nul () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); conta ++; întârziere (5);
În rândurile următoare, comparați datele cardului scanat cu ID-ul etichetei predefinite. Dacă ID-ul etichetei se potrivește cu cardul scanat, atunci citiți temperatura persoanei și trimiteți temperatura și numele persoanei pe foaia Excel.
if (input == tag) flag = 1; else flag = 0; conta ++; RfidReading = "Ashish"; }} if (flag == 1) {temp_read (); Write_streamer (); }
În funcția temp_read () , citiți datele senzorului MLX90614 în Celsius și stocați-le în variabila „TempReading” .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Odată ce hardware-ul și software-ul sunt gata, este timpul să încărcați programul pe placa dvs. Arduino Nano. De îndată ce programul dvs. este încărcat, senzorul cu ultrasunete începe să calculeze distanța. Când distanța calculată este mai mică de 40 cm, citește temperatura și cardul.
Stocarea datelor senzorului în foaia Excel de la Arduino Controller
Acum, pentru a trimite date către foaia Excel, vom folosi PLX-DAQ. Este un software Excel Plug-in care vă ajută să scrieți valori de la Arduino direct într-o foaie Excel de pe laptop sau computer. Utilizați linkul pentru a descărca fișierul. După descărcare extrageți fișierul și faceți clic pe fișierul.exe pentru al instala. Acesta va crea un folder numit PLS-DAQ pe desktop.
Acum deschideți fișierul „Foaie de calcul PLX-DAQ” din folderul desktop. Dacă macro-urile sunt dezactivate pe Excel, veți vedea un bloc de securitate așa cum se arată în imaginea de mai jos:
Faceți clic pe Opțiuni-> Activați conținutul -> Finalizare -> OK pentru a activa macrocomenzile. După aceasta veți obține următorul ecran:
Acum selectați rata de transmisie ca „9600” și portul la care este conectat Arduino și apoi faceți clic pe Conectare pentru a începe transmisia de date. Valorile dvs. ar trebui să înceapă să fie înregistrate așa cum se arată în imaginea de mai jos.
Acesta este modul în care puteți construi un dispozitiv de control al temperaturii fără contact și puteți stoca datele în foaia Excel.
Un videoclip funcțional și un cod complet sunt furnizate la sfârșitul paginii.