- Componenti richiesti
- Modulo lettore RFID EM18
- Termometro a infrarossi MLX90614
- Schema elettrico
- Spiegazione del codice
- Memorizzazione dei dati del sensore nel foglio Excel dal controller Arduino
Dallo scoppio del Covid-19, i termometri a infrarossi vengono utilizzati come strumento di screening per scansionare le persone negli aeroporti, nelle stazioni ferroviarie e in altri stabilimenti affollati. Queste scansioni vengono utilizzate per identificare potenziali pazienti di Covid-19. Il governo ha reso obbligatorio scansionare tutti prima di entrare in ufficio, a scuola o in qualsiasi altro luogo affollato.
Quindi, in questo tutorial, costruiremo un sistema di monitoraggio della temperatura senza contatto basato su RFID utilizzando un sensore di temperatura senza contatto con Arduino. Quando i dipendenti scansionano la scheda RFID, misurerà la temperatura corporea dei dipendenti con un termometro a infrarossi senza contatto e registrerà il nome e la temperatura di quel dipendente direttamente sul foglio Excel. Useremo Arduino Nano, MLX90614, lettore RFID EM18 e sensore a ultrasuoni per costruire questo progetto. Il sensore a ultrasuoni viene utilizzato per calcolare la distanza tra il termometro e la persona. Il termometro misurerà la temperatura solo quando la distanza è inferiore a 25 cm. È qualcosa come un sistema di presenza basato su RFID, che registra anche la temperatura corporea di ogni persona.
Componenti richiesti
- Arduino Nano
- Modulo RFID EM-18
- Sensore di temperatura senza contatto MLX90614
- Sensore ultrasonico
- Breadboard
- Cavi per ponticelli
Modulo lettore RFID EM18
Uno dei lettori RFID ampiamente utilizzati per la lettura di tag a 125 kHz è il lettore RFID EM-18. Questo modulo lettore RFID a basso costo presenta un basso consumo energetico, un fattore di forma ridotto e un facile utilizzo. Il modulo lettore EM-18 può fornire output tramite due interfacce di comunicazione, ovvero RS232 e WEIGAND26.
Il lettore RFID EM18 dispone di un ricetrasmettitore che trasmette un segnale radio. Quando il tag RFID entra nel raggio del segnale del trasmettitore, questo segnale colpisce il transponder che si trova all'interno della carta. Il tag trae energia dal campo elettromagnetico generato dal modulo lettore. Il transponder trasforma quindi il segnale radio nella forma utilizzabile di potenza. Dopo essere stato alimentato, il transponder trasferisce tutte le informazioni, come un ID specifico, sotto forma di un segnale RF al modulo RFID. Quindi questi dati vengono inviati al microcontrollore utilizzando la comunicazione UART.
Per saperne di più su RFID e tag, controlla i nostri precedenti progetti basati su RFID.
Termometro a infrarossi MLX90614
Prima di procedere con il tutorial, è importante sapere come funziona il sensore MLX90614. Ci sono molti sensori di temperatura disponibili sul mercato e abbiamo utilizzato ampiamente il sensore DHT11 e l'LM35 per molte applicazioni in cui è necessario misurare l'umidità o la temperatura atmosferica.
Abbiamo precedentemente utilizzato questo sensore nella pistola termica IR che può rilevare la temperatura di un particolare oggetto (non ambiente) senza entrare direttamente in contatto con l'oggetto. Qui stiamo ancora usando lo stesso sensore per calcolare la temperatura di un oggetto. L'MLX90614 è uno di questi sensori che utilizza l'energia IR per rilevare la temperatura di un oggetto. Per ulteriori informazioni sul circuito del sensore a infrarossi e IR, seguire il collegamento.
Il sensore MLX90614 è prodotto dal sistema Melexis Microelectronics Integrated, ha due dispositivi incorporati al suo interno, uno è il rilevatore a termopila a infrarossi (unità di rilevamento) e l'altro è un dispositivo DSP di condizionamento del segnale (unità di calcolo). Funziona in base alla legge di Stefan-Boltzmann che afferma che tutti gli oggetti emettono energia IR e l'intensità di questa energia sarà direttamente proporzionale alla temperatura di quell'oggetto. L'unità di rilevamento nel sensore misura quanta energia IR viene emessa da un oggetto mirato e l'unità di calcolo la converte in valore di temperatura utilizzando un ADC integrato a 17 bit ed emette i dati attraverso la comunicazione I2C protocollo. Il sensore misura sia la temperatura dell'oggetto che la temperatura ambiente per calibrare il valore della temperatura dell'oggetto. Di seguito vengono fornite le caratteristiche del sensore MLX90614, per maggiori dettagli fare riferimento alla scheda tecnica MLX90614.
Schema elettrico
Di seguito è riportato lo schema del circuito per il sensore di temperatura senza contatto basato su RFID che utilizza Arduino:
Come mostrato nello schema elettrico, i collegamenti sono molto semplici poiché li abbiamo usati come moduli, possiamo costruirli direttamente su una breadboard. Il LED collegato al pin BUZ del modulo lettore EM18 si accende quando qualcuno scansiona il tag. Il modulo RFID invia i dati al controllore in seriale; quindi il pin del trasmettitore del modulo RFID è collegato al pin del ricevitore di Arduino. Le connessioni sono ulteriormente classificate nella tabella seguente:
Arduino Nano |
Modulo RFID EM18 |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Sensore a ultrasuoni (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trig |
D6 |
Eco |
Spiegazione del codice
Dobbiamo scrivere un codice Arduino in grado di leggere i dati dal sensore a ultrasuoni, MLX90614, modulo lettore RFID EM18 e inviare il nome e la temperatura di una persona a un foglio Excel. Per questo codice, devi scaricare le librerie Wire e MLX90614. Dopo aver scaricato le librerie, aggiungile al tuo IDE Arduino.
Il codice completo per questo monitoraggio della temperatura corporea senza contatto è fornito alla fine della pagina. Qui lo stesso programma verrà spiegato in piccoli frammenti.
Come al solito, avvia il codice includendo tutte le librerie richieste. Qui la libreria Wire viene utilizzata per comunicare utilizzando il protocollo I2C e la libreria Adafruit_MLX90614.h viene utilizzata per leggere i dati del sensore MLX90614.
#includere
Definiamo quindi i pin del sensore ad ultrasuoni a cui abbiamo effettuato il collegamento
const int trigPin = 5; const int echoPin = 6;
Successivamente, definire le variabili per memorizzare i dati del modulo RFID, del sensore a ultrasuoni e del sensore MLX90614.
lunga durata; int distanza; String RfidReading; float TempReading;
All'interno della funzione void setup () , inizializziamo il monitor seriale per il debug e il sensore di temperatura MLX90614. Inoltre, imposta i pin Trig ed Echo come pin di output e input.
void setup () {Serial.begin (9600); // Inizializza la comunicazione seriale con il pinMode del monitor seriale (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
All'interno della funzione void loop () , calcola la distanza tra la persona e il sensore e se la distanza è inferiore o uguale a 25 cm, chiama la funzione reader () per scansionare il tag.
void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); durata = pulseIn (echoPin, HIGH); distanza = durata * 0,0340 / 2; if (distanza <= 25) {reader (); }
La funzione void reader () viene utilizzata per leggere la scheda tag RFID. Una volta che la scheda viene avvicinata al modulo lettore, il modulo lettore legge i dati seriali e li memorizza nella variabile di ingresso.
void reader () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); count ++; ritardo (5);
Nelle righe successive, confrontare i dati del biglietto da visita scansionato con l'ID tag predefinito. Se l'ID del tag corrisponde alla carta scansionata, leggere la temperatura della persona e inviare la temperatura e il nome della persona al foglio Excel.
if (input == tag) flag = 1; altro flag = 0; count ++; RfidReading = "Ashish"; }} if (flag == 1) {temp_read (); Write_streamer (); }
All'interno della funzione temp_read () , leggere i dati del sensore MLX90614 in Celsius e memorizzarli nella variabile "TempReading" .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Una volta che l'hardware e il software sono pronti, è il momento di caricare il programma nella tua scheda Arduino Nano. Non appena il tuo programma viene caricato, il sensore a ultrasuoni inizia a calcolare la distanza. Quando la distanza calcolata è inferiore a 40 cm, legge la temperatura e la scheda.
Memorizzazione dei dati del sensore nel foglio Excel dal controller Arduino
Ora per inviare i dati al foglio Excel, useremo PLX-DAQ. È un software Excel Plug-in che ti aiuta a scrivere valori da Arduino direttamente in un foglio Excel sul tuo laptop o PC. Usa il link per scaricare il file. Dopo aver scaricato, estrai il file e fai clic sul file.exe per installarlo. Creerà una cartella denominata PLS-DAQ sul desktop.
Ora apri il file "PLX-DAQ spreadsheet" dalla cartella del desktop. Se le macro sono disabilitate su Excel, vedrai un blocco di sicurezza come mostrato nell'immagine sottostante:
Fare clic su Opzioni-> Abilita il contenuto -> Fine -> OK per abilitare le macro. Dopo questo otterrai la seguente schermata:
Ora seleziona il baud rate come “9600” e la porta a cui è connesso il tuo Arduino e poi clicca su Connetti per avviare lo streaming dei dati. I tuoi valori dovrebbero iniziare a essere registrati come mostrato nell'immagine qui sotto.
In questo modo è possibile costruire un dispositivo di screening della temperatura senza contatto e memorizzare i dati nel foglio Excel.
Alla fine della pagina sono riportati un video funzionante e il codice completo.