- Componenten vereist
- EM18 RFID-lezermodule
- MLX90614 Infraroodthermometer
- Schakelschema
- Code Uitleg
- Sensorgegevens opslaan in Excel-blad van Arduino Controller
Sinds het uitbreken van Covid-19 worden infraroodthermometers gebruikt als een screeningstool om de mensen op luchthavens, treinstations en andere drukke instellingen te scannen. Deze scans worden gebruikt om potentiële patiënten met Covid-19 te identificeren. De overheid stelde het verplicht om iedereen te scannen voordat ze het kantoor, de school of een andere drukke plaats betraden.
Dus in deze tutorial gaan we een op RFID gebaseerd contactloos temperatuurcontrolesysteem bouwen met behulp van een contactloze temperatuursensor met Arduino. Wanneer werknemers de RFID-kaart scannen, meet deze de lichaamstemperatuur van werknemers met een contactloze infraroodthermometer en logt de naam en temperatuur van die werknemer rechtstreeks op het Excel-blad. We zullen Arduino Nano, MLX90614, EM18 RFID-lezer en ultrasone sensor gebruiken om dit project te bouwen. De ultrasone sensor wordt gebruikt om de afstand tussen de thermometer en de persoon te berekenen. De thermometer meet de temperatuur alleen als de afstand kleiner is dan 25 cm. Het is zoiets als een op RFID gebaseerd aanwezigheidssysteem, dat ook de lichaamstemperatuur van elke persoon registreert.
Componenten vereist
- Arduino Nano
- EM-18 RFID-module
- MLX90614 Contactloze temperatuursensor
- Ultrasoon sensor
- Breadboard
- Doorverbindingsdraden
EM18 RFID-lezermodule
Een van de meest gebruikte RFID-lezers voor het lezen van 125 kHz-tags is de EM-18 RFID-lezer. Deze goedkope RFID-lezermodule heeft een laag stroomverbruik, een lage vormfactor en is gemakkelijk te gebruiken. EM-18 Reader Module kan output leveren via twee communicatie-interfaces, namelijk RS232 en WEIGAND26.
EM18 RFID-lezer heeft een transceiver die een radiosignaal uitzendt. Wanneer de RFID-tag binnen het zendersignaalbereik komt, raakt dit signaal de transponder die zich in de kaart bevindt. De tag haalt stroom uit het door de lezermodule gegenereerde elektromagnetische veld. De transponder zet het radiosignaal vervolgens om in de bruikbare vorm van stroom. Bij het krijgen van stroom stuurt de transponder alle informatie, zoals een specifieke ID, in de vorm van een RF-signaal naar de RFID-module. Vervolgens worden deze gegevens via UART-communicatie naar de microcontroller gestuurd.
Bekijk onze eerdere RFID-gebaseerde projecten voor meer informatie over RFID en tags.
MLX90614 Infraroodthermometer
Voordat we verder gaan met de tutorial, is het belangrijk om te weten hoe de MLX90614-sensor werkt. Er zijn veel temperatuursensoren op de markt en we gebruiken de DHT11 Sensor en LM35 uitgebreid voor veel toepassingen waarbij luchtvochtigheid of temperatuur gemeten moet worden.
We gebruikten deze sensor eerder in een IR-thermisch pistool dat de temperatuur van een bepaald object (niet de omgeving) kan detecteren zonder direct in contact te komen met het object. Hier gebruiken we weer dezelfde sensor om de temperatuur van een object te berekenen. De MLX90614 is zo'n sensor die IR-energie gebruikt om de temperatuur van een object te detecteren. Volg de link voor meer informatie over het infrarood- en IR-sensorcircuit.
De MLX90614- sensor is vervaardigd door het Melexis Microelectronics Integrated-systeem, er zijn twee apparaten in ingebouwd, de ene is de infrarood thermozuil detector (sensoreenheid) en de andere is een signaalconditionerings-DSP-apparaat (rekeneenheid). Het werkt op basis van de wet van Stefan-Boltzmann die stelt dat alle objecten IR-energie uitzenden en dat de intensiteit van deze energie recht evenredig is met de temperatuur van dat object. De sensoreenheid in de sensor meet hoeveel IR-energie wordt uitgezonden door een doelobject en de rekeneenheid zet deze om in temperatuurwaarde met behulp van een 17-bit ingebouwde ADC en voert de gegevens uit via de I2C-communicatie protocol. De sensor meet zowel de objecttemperatuur als de omgevingstemperatuur om de objecttemperatuurwaarde te kalibreren. Kenmerken van de MLX90614-sensor worden hieronder gegeven, voor meer details raadpleegt u het MLX90614-gegevensblad.
Schakelschema
Het schakelschema voor op RFID gebaseerde contactloze temperatuursensor met Arduino wordt hieronder weergegeven:
Zoals te zien is in het schakelschema, zijn de aansluitingen heel eenvoudig, aangezien we ze als modules hebben gebruikt, kunnen we ze direct op een breadboard bouwen. De LED die is aangesloten op de BUZ-pin van de EM18 Reader-module wordt hoog wanneer iemand de tag scant. De RFID-module stuurt gegevens in serie naar de controller; vandaar dat de zenderpin van de RFID-module is verbonden met de ontvangerpin van Arduino. De aansluitingen zijn verder ingedeeld in onderstaande tabel:
Arduino Nano |
EM18 RFID-module |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Ultrasone sensor (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trig |
D6 |
Echo |
Code Uitleg
We moeten een Arduino-code schrijven die gegevens van de ultrasone sensor MLX90614, EM18 RFID-lezermodule kan lezen en de naam en temperatuur van een persoon naar een Excel-sheet sturen. Voor deze code moet u de bibliotheken Wire en MLX90614 downloaden. Na het downloaden van de bibliotheken, voegt u ze toe aan uw Arduino IDE.
De volledige code voor deze contactloze lichaamstemperatuurbewaking vindt u aan het einde van de pagina. Hier wordt hetzelfde programma uitgelegd in kleine fragmenten.
Start zoals gewoonlijk de code door alle vereiste bibliotheken op te nemen. Hier wordt de Wire-bibliotheek gebruikt om te communiceren met behulp van het I2C-protocol en wordt de Adafruit_MLX90614.h- bibliotheek gebruikt om de MLX90614-sensorgegevens te lezen.
# omvatten
Vervolgens definiëren we de pinnen van de ultrasone sensor waarmee we de verbinding hebben gemaakt
const int trigPin = 5; const int echoPin = 6;
Definieer daarna de variabelen om de RFID-module, ultrasone sensor en MLX90614 sensorgegevens op te slaan.
lange duur; int afstand; String RfidReading; drijven TempReading;
In de void setup () -functie initialiseren we de seriële monitor voor foutopsporing en de MLX90614-temperatuursensor. Stel ook de Trig- en Echo-pinnen in als uitvoer- en invoerpinnen.
void setup () {Serial.begin (9600); // Initialiseer seriële communicatie met de seriële monitor pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Bereken binnen de functie void loop () de afstand tussen de persoon en de sensor en als de afstand kleiner is dan of gelijk is aan 25 cm, bel dan de functie reader () om de tag te scannen.
void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duur = pulseIn (echoPin, HIGH); afstand = duur * 0,0340 / 2; if (afstand <= 25) {lezer (); }
De functie void reader () wordt gebruikt om de RFID-tagkaart te lezen. Zodra de kaart in de buurt van de leesmodule is gebracht, leest de leesmodule de seriële gegevens en slaat deze op in de invoervariabele.
ongeldige lezer () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); tel ++; vertraging (5);
Vergelijk in de volgende regels de gescande kaartgegevens met de vooraf gedefinieerde tag-ID. Als de tag-ID overeenkomt met de gescande kaart, lees dan de temperatuur van de persoon en stuur de temperatuur en naam van de persoon naar het Excel-blad.
if (input == tag) vlag = 1; anders vlag = 0; tel ++; RfidReading = "Ashish"; }} if (vlag == 1) {temp_read (); Write_streamer (); }
Binnen de temp_read () functie, lees MLX90614 sensordata in graden Celsius en opslaan in de 'TempReading' variable.
leegte temp_read () {TempReading = mlx.readObjectTempC ();}
Zodra de hardware en software klaar zijn, is het tijd om het programma te uploaden naar je Arduino Nano Board. Zodra je programma wordt geüpload, begint de ultrasone sensor met het berekenen van de afstand. Als de berekende afstand kleiner is dan 40 cm, leest hij de temperatuur en de kaart.
Sensorgegevens opslaan in Excel-blad van Arduino Controller
Om gegevens naar het Excel-blad te verzenden, gaan we PLX-DAQ gebruiken. Het is een Excel Plug-in-software die u helpt om waarden van Arduino rechtstreeks naar een Excel-sheet op uw laptop of pc te schrijven. Gebruik de link om het bestand te downloaden. Pak het bestand uit na het downloaden en klik op.exe-bestand om het te installeren. Er wordt een map met de naam PLS-DAQ op uw bureaublad gemaakt.
Open nu het 'PLX-DAQ-spreadsheet'-bestand vanuit de bureaubladmap. Als macro's op uw Excel zijn uitgeschakeld, ziet u een beveiligingsblok zoals weergegeven in onderstaande afbeelding:
Klik op Opties-> Inhoud inschakelen -> Voltooien -> OK om de macro's in te schakelen. Hierna krijg je het volgende scherm te zien:
Selecteer nu de baudrate als "9600" en de poort waarop uw Arduino is aangesloten en klik vervolgens op Connect om de datastreaming te starten. Uw waarden zouden moeten worden geregistreerd, zoals weergegeven in de onderstaande afbeelding.
Zo bouwt u een contactloos temperatuurmeetapparaat en slaat u de gegevens op in het Excel-blad.
Aan het einde van de pagina vindt u een werkende video en volledige code.