- Potrebne komponente
- EM18 RFID bralni modul
- MLX90614 Infrardeči termometer
- Shema vezja
- Razlaga kode
- Shranjevanje podatkov senzorjev v Excelov list iz Arduino Controller
Od izbruha Covid-19 se infrardeči termometri uporabljajo kot presejalno orodje za skeniranje ljudi na letališčih, železniških postajah in v drugih prenatrpanih obratih. Ti pregledi se uporabljajo za identifikacijo potencialnih bolnikov s Covid-19. Vlada je določila obvezno pregledovanje vseh pred vstopom v pisarno, šolo ali katero koli drugo gnečo.
Torej, v tej vadnici bomo z Arduinom izdelali brezkontaktni sistem za nadzor brezkontaktne temperature na osnovi RFID. Ko zaposleni optično preberejo RFID kartico, ta izmeri telesno temperaturo zaposlenih z brezkontaktnim infrardečim termometrom in ime in temperaturo tega zaposlenega zabeleži neposredno na excel list. Za izdelavo tega projekta bomo uporabili Arduino Nano, MLX90614, čitalnik EM18 RFID in ultrazvočni senzor. Ultrazvočni senzor se uporablja za izračun razdalje med termometrom in osebo. Termometer bo meril temperaturo le, če je razdalja manjša od 25 CM. Gre za nekaj podobnega sistemu prisotnosti na osnovi RFID, ki beleži tudi telesno temperaturo vsake osebe.
Potrebne komponente
- Arduino Nano
- EM-18 RFID modul
- MLX90614 Brezkontaktni temperaturni senzor
- Ultrazvočni senzor
- Breadboard
- Jumper žice
EM18 RFID bralni modul
Eden od pogosto uporabljenih RFID čitalnikov za branje 125 kHz oznak je bralnik RF-EM-18. Ta poceni modul RFID Reader odlikuje nizka poraba energije, nizek faktor oblike in enostaven za uporabo. Čitalniški modul EM-18 lahko zagotavlja izhod prek dveh komunikacijskih vmesnikov, tj. RS232 in WEIGAND26.
EM18 RFID čitalnik ima oddajnik, ki oddaja radijski signal. Ko je oznaka RFID v območju signala oddajnika, ta signal zadene transponder, ki je znotraj kartice. Oznaka črpa moč iz elektromagnetnega polja, ki ga generira bralni modul. Nato transponder pretvori radijski signal v uporabno obliko napajanja. Po pridobivanju moči transponder prenese vse informacije, na primer določen ID, v obliki RF signala v modul RFID. Nato se ti podatki pošljejo mikrokrmilniku s pomočjo UART komunikacije.
Če želite izvedeti več o RFID in oznakah, si oglejte naše prejšnje projekte, ki temeljijo na RFID.
MLX90614 Infrardeči termometer
Preden nadaljujemo z vadnico, je pomembno vedeti, kako deluje senzor MLX90614. Na trgu je na voljo veliko temperaturnih senzorjev, senzorje DHT11 in LM35 pa pogosto uporabljamo za številne namene, kjer je treba meriti atmosfersko vlažnost ali temperaturo.
Pred tem smo ta senzor uporabljali v IR toplotni pištoli, ki lahko zazna temperaturo določenega predmeta (ne okolice), ne da bi neposredno prišla v stik s predmetom. Tu spet uporabljamo isti senzor za izračun temperature predmeta. MLX90614 je en tak senzor, ki uporablja IR energijo za zaznavanje temperature predmeta. Če želite izvedeti več o vezju infrardečega in IR senzorja, sledite povezavi.
Senzor MLX90614 izdeluje integrirani sistem Melexis Microelectronics, v njem sta vgrajeni dve napravi, ena je infrardeči termopilotni detektor (senzorska enota), druga pa DSP naprava za kondicioniranje signala (računska enota). Deluje na podlagi Stefan-Boltzmannovega zakona, ki pravi, da vsi predmeti oddajajo IR energijo in da bo intenzivnost te energije neposredno sorazmerna s temperaturo tega predmeta. Senzorska enota v senzorju meri, koliko IR energije odda ciljni objekt, in jo računska enota s pomočjo 17-bitnega vgrajenega ADC pretvori v vrednost temperature in podatke posreduje prek komunikacije I2C protokol. Za umerjanje vrednosti temperature predmeta senzor meri tako temperaturo predmeta kot tudi temperaturo okolice. Značilnosti senzorja MLX90614 so podane spodaj, za več podrobnosti glejte podatkovni list MLX90614.
Shema vezja
Shema vezja za brezkontaktni temperaturni senzor na osnovi RFID z uporabo Arduina je podana spodaj:
Kot je prikazano na vezju, so povezave zelo preproste, saj smo jih uporabili kot module, ki jih lahko neposredno zgradimo na plošči. Lučka LED, priključena na zatič BUZ modula bralnika EM18, postane visoka, ko nekdo optično prebere oznako. Modul RFID pošilja podatke krmilniku zaporedno; tako je oddajniški zatič modula RFID povezan s sprejemnim zatičem Arduina. Povezave so nadalje razvrščene v spodnji tabeli:
Arduino Nano |
EM18 RFID modul |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Ultrazvočni senzor (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trig |
D6 |
Odmev |
Razlaga kode
Napisati moramo kodo Arduino, ki lahko bere podatke iz ultrazvočnega senzorja, MLX90614, EM18 RFID bralni modul, ter pošlje ime in temperaturo osebe v Excel list. Za to kodo morate prenesti knjižnici Wire in MLX90614. Po prenosu knjižnic jih dodajte v svoj Arduino IDE.
Popolna koda za to brezkontaktno spremljanje telesne temperature je podana na koncu strani. Tu bo isti program razložen v majhnih delčkih.
Kot običajno začnite s kodo, tako da vključite vse zahtevane knjižnice. Tu se knjižnica Wire uporablja za komunikacijo po protokolu I2C, knjižnica Adafruit_MLX90614.h pa za branje podatkov senzorja MLX90614.
#include
Nato določimo nožice ultrazvočnega senzorja, na katerega smo vzpostavili povezavo
const int trigPin = 5; const int echoPin = 6;
Po tem določite spremenljivke za shranjevanje podatkov RFID modula, ultrazvočnega senzorja in MLX90614 senzorja.
dolgotrajno; int razdalja; String RfidReading; float TempReading;
Znotraj funkcije void setup () inicializiramo serijski monitor za odpravljanje napak in temperaturni senzor MLX90614. Nastavite tudi zatiča Trig in Echo kot izhodni in vhodni zatič.
void setup () {Serial.begin (9600); // Inicializiramo serijsko komunikacijo s serijskim monitorjem pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Znotraj funkcije void loop () izračunajte razdaljo med osebo in senzorjem in če je razdalja manjša ali enaka 25 cm, pokličite funkcijo bralnika () za skeniranje oznake.
void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); trajanje = pulseIn (echoPin, HIGH); razdalja = trajanje * 0,0340 / 2; if (razdalja <= 25) {bralnik (); }
void reader () se uporablja za branje kartice RFID tag. Ko je kartica približana modulu bralnika, modul bralnika prebere serijske podatke in jih shrani v vhodno spremenljivko.
neveljaven bralnik () {if (Serial.available ()) {count = 0; medtem ko (Serial.available () && count <12) {input = Serial.read (); štetje ++; zamuda (5);
V naslednjih vrsticah primerjajte podatke optično prebrane kartice z vnaprej določenim ID-jem oznake. Če se ID oznake ujema s optično prebrano kartico, nato preberite temperaturo osebe in pošljite temperaturo in ime osebe na excel list.
if (input == tag) zastavica = 1; sicer zastava = 0; štetje ++; RfidReading = "Ashish"; }} if (zastava == 1) {temp_read (); Write_streamer (); }
Znotraj funkcije temp_read () preberite podatke senzorja MLX90614 v Celzijusu in jih shranite v spremenljivko 'TempReading' .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Ko sta strojna in programska oprema pripravljeni, je čas, da program naložite na Arduino Nano Board. Takoj, ko se vaš program naloži, ultrazvočni senzor začne izračunavati razdaljo. Ko je izračunana razdalja manjša od 40 cm, se odčita temperatura in karta.
Shranjevanje podatkov senzorjev v Excelov list iz Arduino Controller
Zdaj bomo za pošiljanje podatkov na Excelov list uporabili PLX-DAQ. To je vtična programska oprema Excel, ki vam pomaga zapisovati vrednosti iz Arduina neposredno v Excelov list na prenosnem računalniku ali računalniku. Uporabite povezavo za prenos datoteke. Po prenosu izvlecite datoteko in kliknite datoteko.exe, da jo namestite. Na namizju bo ustvaril mapo z imenom PLS-DAQ.
Zdaj odprite datoteko »Preglednica PLX-DAQ« v namizni mapi. Če so makri v vašem Excelu onemogočeni, boste videli varnostni blok, kot je prikazano na spodnji sliki:
Kliknite Možnosti-> Omogoči vsebino -> Dokončaj -> V redu, da omogočite makre. Po tem boste dobili naslednji zaslon:
Zdaj izberite hitrost prenosa kot "9600" in vrata, na katera je povezan vaš Arduino, in nato kliknite Poveži, da začnete pretakanje podatkov. Vaše vrednosti bi se morale začeti zapisovati, kot je prikazano na spodnji sliki.
Tako lahko zgradite napravo za pregled brezkontaktne temperature in podatke shranite v Excel Sheet.
Delovni video in popolna koda sta podana na koncu strani.