- Erforderliche Komponenten
- EM18 RFID-Lesemodul
- Infrarot-Thermometer MLX90614
- Schaltplan
- Code Erklärung
- Speichern von Sensordaten in Excel Sheet vom Arduino Controller
Seit dem Ausbruch von Covid-19 werden Infrarot-Thermometer als Screening-Tool verwendet, um die Personen an Flughäfen, Bahnhöfen und anderen überfüllten Einrichtungen zu scannen. Diese Scans werden verwendet, um potenzielle Patienten von Covid-19 zu identifizieren. Die Regierung machte es obligatorisch, alle zu scannen, bevor sie das Büro, die Schule oder einen anderen überfüllten Ort betraten.
In diesem Tutorial werden wir ein RFID-basiertes kontaktloses Temperaturüberwachungssystem mit einem kontaktlosen Temperatursensor mit Arduino erstellen. Wenn Mitarbeiter die RFID-Karte scannen, misst sie die Körpertemperatur der Mitarbeiter mit einem berührungslosen Infrarot-Thermometer und protokolliert den Namen und die Temperatur dieses Mitarbeiters direkt auf dem Excel-Blatt. Wir werden Arduino Nano, MLX90614, EM18 RFID Reader und Ultraschallsensor verwenden, um dieses Projekt zu erstellen. Mit dem Ultraschallsensor wird der Abstand zwischen Thermometer und Person berechnet. Das Thermometer misst die Temperatur nur, wenn der Abstand weniger als 25 cm beträgt. Es ist so etwas wie ein RFID-basiertes Anwesenheitssystem, das auch die Körpertemperatur jeder Person aufzeichnet.
Erforderliche Komponenten
- Arduino Nano
- EM-18 RFID-Modul
- MLX90614 Kontaktloser Temperatursensor
- Ultraschallsensor
- Steckbrett
- Überbrückungsdrähte
EM18 RFID-Lesemodul
Einer der weit verbreiteten RFID-Leser zum Lesen von 125-kHz-Tags ist der EM-18-RFID-Leser. Dieses kostengünstige RFID-Lesemodul zeichnet sich durch geringen Stromverbrauch, geringen Formfaktor und einfache Bedienung aus. Das EM-18-Lesemodul kann die Ausgabe über zwei Kommunikationsschnittstellen bereitstellen, dh RS232 und WEIGAND26.
Der EM18 RFID Reader verfügt über einen Transceiver, der ein Funksignal sendet. Wenn das RFID-Tag in den Sendersignalbereich gelangt, trifft dieses Signal auf den Transponder in der Karte. Das Tag bezieht Strom aus dem vom Lesemodul erzeugten Elektromagnetfeld. Der Transponder wandelt dann das Funksignal in die nutzbare Energieform um. Nach dem Einschalten überträgt der Transponder alle Informationen, z. B. eine bestimmte ID, in Form eines HF-Signals an das RFID-Modul. Diese Daten werden dann über UART-Kommunikation an den Mikrocontroller gesendet.
Weitere Informationen zu RFID und Tags finden Sie in unseren früheren RFID-basierten Projekten.
Infrarot-Thermometer MLX90614
Bevor wir mit dem Tutorial fortfahren, ist es wichtig zu wissen, wie der MLX90614-Sensor funktioniert. Es gibt viele Temperatursensoren auf dem Markt und wir haben den DHT11-Sensor und den LM35 ausgiebig für viele Anwendungen verwendet, bei denen Luftfeuchtigkeit oder Temperatur gemessen werden müssen.
Wir haben diesen Sensor zuvor in einer IR-Thermokanone verwendet, die die Temperatur eines bestimmten Objekts (nicht der Umgebung) erfassen kann, ohne direkt mit dem Objekt in Kontakt zu kommen. Hier verwenden wir wieder denselben Sensor, um die Temperatur eines Objekts zu berechnen. Der MLX90614 ist ein solcher Sensor, der IR-Energie verwendet, um die Temperatur eines Objekts zu erfassen. Um mehr über die Infrarot- und IR-Sensorschaltung zu erfahren, folgen Sie dem Link.
Der Sensor MLX90614 wird vom integrierten System Melexis Microelectronics hergestellt. In ihn sind zwei Geräte eingebettet, einer ist der Infrarot-Thermopile-Detektor (Sensoreinheit) und der andere ist ein DSP-Gerät zur Signalaufbereitung (Recheneinheit). Es basiert auf dem Stefan-Boltzmann-Gesetz, das besagt, dass alle Objekte IR-Energie emittieren und die Intensität dieser Energie direkt proportional zur Temperatur dieses Objekts ist. Die Sensoreinheit im Sensor misst, wie viel IR-Energie von einem Zielobjekt emittiert wird, und die Recheneinheit wandelt sie mithilfe eines eingebauten 17-Bit-ADC in einen Temperaturwert um und gibt die Daten über die I2C-Kommunikation aus Protokoll. Der Sensor misst sowohl die Objekttemperatur als auch die Umgebungstemperatur, um den Objekttemperaturwert zu kalibrieren. Die Merkmale des MLX90614-Sensors sind unten angegeben. Weitere Informationen finden Sie im MLX90614-Datenblatt.
Schaltplan
Das Schaltbild für einen berührungslosen RFID-basierten Temperatursensor mit Arduino ist unten angegeben:
Wie im Schaltplan gezeigt, sind die Verbindungen sehr einfach, da wir sie als Module verwendet haben und sie direkt auf einem Steckbrett aufbauen können. Die an den BUZ-Pin des EM18-Lesemoduls angeschlossene LED leuchtet hoch, wenn jemand das Tag scannt. Das RFID-Modul sendet Daten seriell an die Steuerung. Daher ist der Sender-Pin des RFID-Moduls mit dem Empfänger-Pin von Arduino verbunden. Die Verbindungen sind in der folgenden Tabelle weiter klassifiziert:
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 |
Ultraschallsensor (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trig |
D6 |
Echo |
Code Erklärung
Wir müssen einen Arduino-Code schreiben, der Daten vom Ultraschallsensor MLX90614, EM18 RFID-Lesemodul lesen und den Namen und die Temperatur einer Person an eine Excel-Tabelle senden kann. Für diesen Code müssen Sie die Bibliotheken Wire und MLX90614 herunterladen. Fügen Sie die Bibliotheken nach dem Herunterladen Ihrer Arduino IDE hinzu.
Der vollständige Code für diese berührungslose Überwachung der Körpertemperatur ist am Ende der Seite angegeben. Hier wird das gleiche Programm in kleinen Ausschnitten erklärt.
Starten Sie den Code wie gewohnt, indem Sie alle erforderlichen Bibliotheken einschließen. Hier wird die Wire-Bibliothek zur Kommunikation über das I2C-Protokoll und die Adafruit_MLX90614.h- Bibliothek zum Lesen der MLX90614-Sensordaten verwendet.
#einschließen
Wir definieren dann die Pins des Ultraschallsensors, zu dem wir die Verbindung hergestellt haben
const int trigPin = 5; const int echoPin = 6;
Definieren Sie anschließend die Variablen zum Speichern der RFID-Modul-, Ultraschallsensor- und MLX90614-Sensordaten.
lange Dauer; int Entfernung; String RfidReading; float TempReading;
Innerhalb der Funktion void setup () initialisieren wir den seriellen Monitor für das Debuggen und den Temperatursensor MLX90614. Stellen Sie außerdem die Trigger- und Echo-Pins als Ausgangs- und Eingangspins ein.
void setup () {Serial.begin (9600); // Serielle Kommunikation mit dem seriellen Monitor initialisieren pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }}
Berechnen Sie innerhalb der Funktion void loop () den Abstand zwischen der Person und dem Sensor. Wenn der Abstand kleiner oder gleich 25 cm ist, rufen Sie die Funktion reader () auf, um das Tag zu scannen.
void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); Dauer = PulsIn (echoPin, HIGH); Entfernung = Dauer * 0,0340 / 2; if (Abstand <= 25) {reader (); }}
Mit der Funktion void reader () wird die RFID-Tag-Karte gelesen. Sobald die Karte in die Nähe des Lesemoduls gebracht wurde, liest das Lesemodul die seriellen Daten und speichert sie in der Eingangsvariablen.
void reader () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); count ++; Verzögerung (5);
Vergleichen Sie in den nächsten Zeilen die gescannten Kartendaten mit der vordefinierten Tag-ID. Wenn die Tag-ID mit der gescannten Karte übereinstimmt, lesen Sie die Temperatur der Person und senden Sie die Temperatur und den Namen der Person an das Excel-Blatt.
if (input == tag) flag = 1; sonst flag = 0; count ++; RfidReading = "Ashish"; }} if (flag == 1) {temp_read (); Write_streamer (); }}
Im Inneren des temp_read () Funktion, lesen die MLX90614 Sensordaten in Celsius und speichern sie in dem ‚TempReading‘ variabel.
void temp_read () {TempReading = mlx.readObjectTempC ();}
Sobald die Hardware und die Software fertig sind, ist es Zeit, das Programm auf Ihr Arduino Nano Board hochzuladen. Sobald Ihr Programm hochgeladen wird, berechnet der Ultraschallsensor die Entfernung. Wenn der berechnete Abstand weniger als 40 cm beträgt, werden die Temperatur und die Karte angezeigt.
Speichern von Sensordaten in Excel Sheet vom Arduino Controller
Um nun Daten an eine Excel-Tabelle zu senden, verwenden wir PLX-DAQ. Es ist eine Excel-Plug-in-Software, mit der Sie Werte von Arduino direkt in eine Excel-Tabelle auf Ihrem Laptop oder PC schreiben können. Verwenden Sie den Link, um die Datei herunterzuladen. Extrahieren Sie nach dem Herunterladen die Datei und klicken Sie auf die EXE-Datei, um sie zu installieren. Es wird ein Ordner mit dem Namen PLS-DAQ auf Ihrem Desktop erstellt.
Öffnen Sie nun die Datei 'PLX-DAQ-Tabelle' aus dem Desktop-Ordner. Wenn in Ihrem Excel Makros deaktiviert sind, wird ein Sicherheitsblock angezeigt (siehe Abbildung unten):
Klicken Sie auf Optionen-> Inhalt aktivieren -> Fertig stellen -> OK, um die Makros zu aktivieren. Danach erhalten Sie folgenden Bildschirm:
Wählen Sie nun die Baudrate als "9600" und den Port, an den Ihr Arduino angeschlossen ist, und klicken Sie dann auf Verbinden, um das Daten-Streaming zu starten. Ihre Werte sollten wie in der Abbildung unten gezeigt protokolliert werden.
Auf diese Weise können Sie ein kontaktloses Temperaturprüfgerät erstellen und die Daten in der Excel-Tabelle speichern.
Ein funktionierendes Video und ein vollständiger Code finden Sie am Ende der Seite.