- Būtini komponentai
- EM18 RFID skaitytuvo modulis
- MLX90614 infraraudonųjų spindulių termometras
- Grandinės schema
- Kodo paaiškinimas
- Jutiklio duomenų saugojimas „Excel“ lape iš „Arduino“ valdiklio
Nuo „Covid-19“ protrūkio infraraudonųjų spindulių termometrai naudojami kaip atrankos priemonė žmonių, esančių oro uostuose, geležinkelio stotyse ir kitose sausakimšose įstaigose, nuskaitymui. Šie nuskaitymai naudojami potencialiems Covid-19 pacientams nustatyti. Vyriausybė įpareigojo visus nuskaityti prieš įeinant į biurą, mokyklą ar bet kurią kitą sausakimšą vietą.
Taigi šioje pamokoje mes sukursime RFID pagrįstą bekontakčio temperatūros stebėjimo sistemą, naudodami bekontaktį temperatūros jutiklį su „Arduino“. Kai darbuotojai nuskaitys RFID kortelę, ji matuos darbuotojų kūno temperatūrą bekontakčiu infraraudonųjų spindulių termometru ir tiesiogiai „Excel“ lape užregistruos to darbuotojo vardą ir pavardę bei temperatūrą. Šiam projektui sukurti naudosime „Arduino Nano“, MLX90614, EM18 RFID skaitytuvą ir ultragarso jutiklį. Ultragarso jutiklis naudojamas atstumui tarp termometro ir asmens apskaičiuoti. Termometras matuos temperatūrą tik tada, kai atstumas yra mažesnis nei 25 CM. Tai kažkas panašaus į RDA pagrįstą lankomumo sistemą, kuri taip pat fiksuoja kiekvieno žmogaus kūno temperatūrą.
Būtini komponentai
- „Arduino Nano“
- EM-18 RFID modulis
- MLX90614 bekontaktis temperatūros jutiklis
- Ultragarsinis jutiklis
- Bandomoji Lenta
- Šuolių laidai
EM18 RFID skaitytuvo modulis
Vienas iš plačiai naudojamų RFID skaitytuvų 125 kHz žymoms skaityti yra EM-18 RFID skaitytuvas. Šis nebrangus RFID skaitytuvo modulis pasižymi mažu energijos suvartojimu, mažu formos koeficientu ir patogiu naudoti. „EM-18 Reader“ modulis gali išvesties ryšį per dvi ryšio sąsajas, ty RS232 ir WEIGAND26.
EM18 RFID skaitytuvas turi radijo signalą perduodantį imtuvą. Kai RFID žyma patenka į siųstuvo signalo diapazoną, šis signalas patenka į atsakiklį, esantį kortelės viduje. Žyma semiasi energijos iš skaitytuvo modulio sukurto elektromagneto lauko. Tada atsakiklis paverčia radijo signalą į naudingą galios formą. Gavęs energijos, atsakiklis visą informaciją, pvz., Konkretų ID, RF signalo pavidalu perduoda į RFID modulį. Tada šie duomenys išsiųsti į mikrovaldiklį naudojant UART ryšį.
Norėdami sužinoti daugiau apie RDA ir žymas, patikrinkite ankstesnius RDA pagrįstus projektus.
MLX90614 infraraudonųjų spindulių termometras
Prieš tęsdami pamoką, svarbu žinoti, kaip veikia MLX90614 jutiklis. Rinkoje yra daugybė temperatūros jutiklių ir mes daug naudojome DHT11 jutiklį ir LM35 daugelyje programų, kuriose reikia matuoti atmosferos drėgmę ar temperatūrą.
Anksčiau šį jutiklį naudojome IR termopistolete, kuris gali suvokti konkretaus objekto (ne aplinkos) temperatūrą, tiesiogiai nesusilietęs su objektu. Čia mes vėl naudojame tą patį jutiklį objekto temperatūrai apskaičiuoti. MLX90614 yra vienas iš tokių jutiklių, kurie naudoja IR energiją objekto temperatūrai nustatyti. Norėdami sužinoti daugiau apie infraraudonųjų spindulių ir IR jutiklių grandines, spustelėkite nuorodą.
MLX90614 jutiklį gamina integruota „Melexis Microelectronics“ sistema, jame yra du įtaisai, vienas iš jų yra infraraudonųjų spindulių termopilių detektorius (jutimo blokas), kitas - signalo kondicionavimo DSP įrenginys (skaičiavimo įrenginys). Jis veikia remdamasis Stefano-Boltzmanno dėsniu, kuris teigia, kad visi objektai skleidžia IR energiją, o šios energijos intensyvumas bus tiesiogiai proporcingas to objekto temperatūrai. Jutiklio jutiklis matuoja, kiek IR energijos išskiria taikinys, o skaičiavimo įrenginys paverčia ją temperatūros verte, naudodamas įmontuotą 17 bitų ADC, ir perduoda duomenis per I2C ryšį protokolas. Jutiklis matuoja objekto temperatūrą ir aplinkos temperatūrą, kad sukalibruotų objekto temperatūros vertę. MLX90614 jutiklio savybės pateikiamos žemiau, jei norite gauti daugiau informacijos, žr. MLX90614 duomenų lapą.
Grandinės schema
RFID pagrindu veikiančio bekontakčio temperatūros jutiklio, naudojančio „Arduino“, schema pateikta žemiau:
Kaip parodyta schemoje, jungtys yra labai paprastos, nes mes juos naudojome kaip modulius, mes galime juos tiesiogiai pastatyti ant duonos lentos. Šviesos diodas, prijungtas prie „EM18 Reader“ modulio BUZ kaiščio, įsižiebia, kai kas nors nuskaito žymą. RFID modulis siunčia duomenis valdikliui nuosekliai; taigi RFID modulio siųstuvo kaištis yra prijungtas prie „Arduino“ imtuvo kaiščio. Jungtys toliau klasifikuojamos toliau pateiktoje lentelėje:
„Arduino Nano“ |
EM18 RFID modulis |
5V |
Vcc |
BND |
BND |
5V |
SEL |
Rx |
Tx |
„Arduino Nano“ |
MLX90614 |
5V |
Vcc |
BND |
BND |
A5 |
SCL |
A4 |
SDA |
„Arduino Nano“ |
Ultragarsinis jutiklis (HCSR-04) |
5V |
Vcc |
BND |
BND |
D5 |
Trig |
D6 |
Aidas |
Kodo paaiškinimas
Turime parašyti „Arduino“ kodą, kuris galėtų nuskaityti duomenis iš ultragarso jutiklio, MLX90614, EM18 RFID skaitytuvo modulio ir išsiųsti asmens vardą bei pavardę ir temperatūrą į „Excel“ lapą. Norėdami gauti šį kodą, turite atsisiųsti „Wire“ ir MLX90614 bibliotekas. Atsisiuntę bibliotekas, pridėkite jas prie „Arduino IDE“.
Pilnas šio bekontakčio kūno temperatūros stebėjimo kodas pateikiamas puslapio pabaigoje. Čia ta pati programa bus paaiškinta mažais fragmentais.
Kaip įprasta, pradėkite kodą įtraukdami visas reikalingas bibliotekas. Čia „Wire“ biblioteka naudojama bendraujant naudojant I2C protokolą, o „ Adafruit_MLX90614.h“ biblioteka naudojama MLX90614 jutiklio duomenims nuskaityti.
# įtraukti
Tada mes apibrėžiame ultragarso jutiklio kaiščius, prie kurių mes prijungėme
const int trigPin = 5; const int echoPin = 6;
Po to nustatykite kintamuosius, kurie saugo RFID modulį, ultragarso jutiklį ir MLX90614 jutiklio duomenis.
ilga trukmė; int atstumas; String RfidReading; plūdė TempReading;
Funkcijos void setup () viduje mes inicijuojame serijinį monitorių derinimui ir MLX90614 temperatūros jutiklį. Be to, nustatykite „Trig“ ir „Echo“ kaiščius kaip išvesties ir įvesties kaiščius.
negaliojanti sąranka () {Serial.begin (9600); // Pradėti nuoseklų ryšį su nuosekliojo monitoriaus pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Funkcijos „ void loop“ () viduje apskaičiuokite atstumą tarp asmens ir jutiklio ir, jei atstumas yra mažesnis arba lygus 25 cm, paskambinkite skaitytuvo () funkcijai, kad nuskaitytumėte žymą.
void loop () {digitalWrite (trigPin, LOW); vėlavimasMikrosekundės (2); „digitalWrite“ (trigPin, HIGH); vėlavimasMikrosekundės (10); „digitalWrite“ (trigPin, LOW); trukmė = pulseIn (echoPin, HIGH); atstumas = trukmė * 0,0340 / 2; jei (atstumas <= 25) {skaitytojas (); }
funkcija void reader () naudojama nuskaityti RFID žymos kortelę. Kai kortelė priartinama prie skaitytuvo modulio, skaitytojo modulis nuskaito serijos duomenis ir saugo juos įvesties kintamajame.
void reader () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); skaičius ++; vėlavimas (5);
Kitose eilutėse palyginkite nuskaitytus kortelės duomenis su iš anksto nustatytu žymos ID. Jei žymos ID atitinka nuskaitytą kortelę, tada perskaitykite asmens temperatūrą ir nusiųskite asmens vardą bei temperatūrą į „Excel“ lapą.
if (įvestis == žymė) vėliava = 1; else flag = 0; skaičius ++; RfidReading = "Ašishas"; }} if (flag == 1) {temp_read (); Write_streamer (); }
Funkcijos temp_read () viduje nuskaitykite MLX90614 jutiklio duomenis Celsijaus laipsniais ir išsaugokite juos kintamajame „TempReading“ .
negaliojanti temp_read () {TempReading = mlx.readObjectTempC ();}
Kai aparatinė įranga ir programinė įranga bus paruošta, laikas įkelti programą į „Arduino Nano“ plokštę. Kai tik jūsų programa bus įkelta, ultragarso jutiklis pradeda skaičiuoti atstumą. Kai apskaičiuotas atstumas yra mažesnis nei 40 cm, jis nuskaito temperatūrą ir kortelę.
Jutiklio duomenų saugojimas „Excel“ lape iš „Arduino“ valdiklio
Dabar norėdami siųsti duomenis į „Excel“ lapą, naudosime „PLX-DAQ“. Tai yra „Excel“ papildinio programinė įranga, padedanti įrašyti reikšmes iš „Arduino“ tiesiai į „Excel“ lapą nešiojamajame kompiuteryje. Norėdami atsisiųsti failą, naudokite nuorodą. Atsisiųsdami išimkite failą ir spustelėkite.exe failą, kad jį įdiegtumėte. Tai jūsų darbalaukyje sukurs aplanką pavadinimu PLS-DAQ.
Dabar atidarykite failą „PLX-DAQ skaičiuoklė“ iš darbalaukio aplanko. Jei „Excel“ išjungtos makrokomandos, pamatysite saugos bloką, kaip parodyta žemiau esančiame paveikslėlyje:
Spustelėkite Parinktys-> Įgalinti turinį -> Baigti -> Gerai, kad įgalintumėte makrokomandas. Po to gausite šį ekraną:
Dabar pasirinkite perdavimo greitį kaip „9600“ ir prievadą, prie kurio prijungtas „Arduino“, tada spustelėkite Prisijungti, kad pradėtumėte duomenų srautą. Jūsų vertės turėtų pradėti registruotis, kaip parodyta paveikslėlyje žemiau.
Taip galite sukurti bekontakčio temperatūros tikrinimo įrenginį ir saugoti duomenis „Excel“ lape.
Darbinis vaizdo įrašas ir visas kodas pateikiami puslapio pabaigoje.