Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Bauteile und Zubehör

Arduino MKR1000 (WiFi)1
RFID-Leser RC5221
OLED-Display 0,96″ 128×32 (SSD1306)1
MLX90614 Infrarot-Temperatursensor1

Apps und Online-Dienste

Über das Projekt

Mitarbeiter erhalten per RFID-Tag Zutritt. Zusätzlich wird berührungslos die Körpertemperatur gemessen (MLX90614). Bei erhöhter Temperatur (> 37,5 °C) wird der Zutritt verweigert. Alle Daten (RFID-UID, Temperatur, Zeitstempel) werden an einen Webserver (MySQL/PHP) gesendet und können remote eingesehen werden.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Schritt 1: Software-Installation

Arduino IDE um SAMD-Boards (MKR1000) erweitern: Werkzeuge → Board → Boardverwalter → „Arduino SAMD“ installieren. MKR1000 per USB anschließen (Treiber installieren sich automatisch).

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Schritt 2: MLX90614 anschließen

I2C-Sensor, Messbereich -70…+380 °C, Genauigkeit ~0,5 °C. Anschluss: VDD an 3,3 V, GND, SDA an SDA, SCL an SCL. Bibliothek Adafruit_MLX90614 installieren.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Test-Sketch:

#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup() {
  Serial.begin(9600);
  Serial.println("start");
  mlx.begin();
}

void loop() {
  Serial.print("Ambient = "); Serial.print(mlx.readAmbientTempC()); Serial.print("*C");
  Serial.print("\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.print("*C");
  Serial.print("\tObject = "); Serial.print(mlx.readObjectTempF()); Serial.println("*F");
  delay(3000);
}

Schritt 3: OLED-Display anschließen

I2C-Display (SSD1306, 128×32). Bibliothek Adafruit_SSD1306 & Adafruit_GFX installieren.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Test-Sketch (Temperatur alle 3 s anzeigen):

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Adafruit_SSD1306 display(128, 32, &Wire, -1);
float temp; unsigned long millis1 = 0;

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(1); display.setTextColor(WHITE);
  display.clearDisplay(); display.display();
  mlx.begin(); Serial.println("start");
}

void loop() {
  if (millis() - millis1 >= 3000) {
    display.clearDisplay();
    display.setCursor(10,10); display.println(F("Wait temp...."));
    temp = mlx.readObjectTempC();
    display.setCursor(10,20); display.print(temp); display.print(F(" *C"));
    display.display();
    millis1 = millis();
  }
}

Schritt 4: RC522 RFID-Leser anschließen

SPI-Schnittstelle. Modul arbeitet mit 13,56 MHz (HF). Bibliothek MFRC522 installieren.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Sketch: UID lesen, Temperatur messen, „OPEN“/„CLOSE“ anzeigen.

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <SPI.h>
#include <MFRC522.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Adafruit_SSD1306 display(128, 32, &Wire, -1);
MFRC522 mfrc522(7, 6); // SS=7, RST=6
byte cardUID[4] = {0,0,0,0};
int res = 1; float temp; unsigned long millis1 = 0;

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(1); display.setTextColor(WHITE);
  display.clearDisplay(); display.display();
  mlx.begin(); SPI.begin(); mfrc522.PCD_Init();
  Serial.println("start"); Serial.println("Wait RFID ....");
}

void loop() {
  switch(res) {
    case 1: // RFID warten
      display.clearDisplay(); display.setCursor(10,10); display.print(F("Wait RFID...."));
      if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
        Serial.print(F("Card UID:")); display.setCursor(10,20);
        for (byte i=0;i<4;i++) { cardUID[i]=mfrc522.uid.uidByte[i]; Serial.print(cardUID[i],HEX); display.print(cardUID[i],HEX); }
        Serial.println(); Serial.println("Wait temp...."); res=3;
      }
      mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1();
      display.display(); break;
    case 3: // Temp messen
      delay(2000); display.clearDisplay(); display.setCursor(10,10); display.println(F("Wait temp...."));
      temp = mlx.readObjectTempC(); display.setCursor(10,20); display.print(temp); display.print(F(" *C")); display.display();
      if (temp>34.0 && temp<42.0) res=5; break;
    case 5: // OPEN/CLOSE
      display.clearDisplay(); display.setCursor(10,10); display.print(F("Temp=")); display.print(temp); display.print(F("*C"));
      display.setCursor(10,20);
      if (temp<37.5) { display.print(F("OPEN")); Serial.println("OPEN"); }
      else { display.print(F("CLOSE")); display.setCursor(10,0); display.print(F("Temp high!!!")); Serial.println("CLOSE"); Serial.println("Temp high!!!"); }
      display.display(); delay(3000); Serial.println("Wait RFID ...."); res=1; break;
  }
}

Schritt 5: MKR1000 mit WLAN verbinden

Bibliothek WiFi101 installieren. Beispiel connectWithWPA laden, SSID/Passwort eintragen, hochladen, Serial Monitor beobachten.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Schritt 6: Datenbank & PHP-Skripte auf Webserver

MySQL-Datenbank mit zwei Tabellen:

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

get_uid.php – prüft UID, antwortet #yes;Name oder #no.

<?php
$location="localhost"; $user="..."; $pass="..."; $db_name="...";
if(! $db=mysqli_connect($location,$user,$pass,$db_name)) {echo "connect error";}
$query0=" SELECT * FROM users WHERE uid='".$_GET['uid']."' ";
$rez0=mysqli_query($db,$query0);
if(mysqli_num_rows($rez0)>0) { $row0=mysqli_fetch_assoc($rez0); echo "#yes;".$row0['name']."$"; }
else { echo "#no$"; }
?>

get_temp.php – speichert Temperatur für gültige UID.

<?php
// ... DB-Verbindung wie oben ...
$query0=" SELECT * FROM users WHERE uid='".$_GET['uid']."' ";
$rez0=mysqli_query($db,$query0);
if(mysqli_num_rows($rez0)>0) {
  $row0=mysqli_fetch_assoc($rez0);
  $query1=" INSERT INTO temp SET id_user='".$row0['id']."', temp='".$_GET['temp']."', day='".date('Y-m-d H:i:s')."' ";
  mysqli_query($db,$query1); echo "#yes";
} else { echo "#no"; }
?>

Schritt 7: Daten vom MKR1000 an Server senden

Zwei Funktionen im Arduino-Sketch: send_uid_to_server() & send_temp_to_server() (HTTP GET).

Schritt 8: Relais für Türsteuerung

Relais an Pin 5: HIGH = Tür öffnen (Temp < 37,5 °C), LOW = Tür geschlossen.

RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Schritt 9: Webseite zur Anzeige der Temperaturdaten

view_temp.php listet heutige Einträge tabellarisch (rote Markierung bei Fieber).

<?php
// ... DB-Verbindung ...
$query1="SELECT * FROM temp WHERE day >= CURDATE()";
$rez1=mysqli_query($db,$query1); $i=1;
echo date('Y-m-d')."<br><br><table>";
while($row1=mysqli_fetch_assoc($rez1)) {
  echo "<tr><td>".$i."</td>";
  $rez2=mysqli_query($db,"SELECT name FROM users WHERE id=".$row1['id_user']);
  $row2=mysqli_fetch_assoc($rez2); echo "<td>".$row2['name']."</td>";
  echo "<td>".mb_substr($row1['day'],10,9)."</td>";
  if($row1['temp']>37.5) echo "<td style='background-color:red'>".$row1['temp']."</td>";
  else echo "<td>".$row1['temp']."</td>";
  echo "</tr>"; $i++;
}
echo "</table>";
?>
RFID-Zutrittskontrolle mit berührungsloser Temperaturmessung für sicheren Mitarbeiterzugang

Code (Gesamt-Sketch & Einzelschritte)

Der vollständige Arduino-Sketch (mlx90614_07.ino) sowie alle Teilschritte (Sensor, Display, RFID, PHP-Skripte) sind im Originalprojekt als Download verfügbar.

Schaltpläne (Fritzing-Dateien)

Herstellungsprozess

  1. Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
  2. Temperaturgesteuerter Lüfter: DIY Relais-System für Medienmöbel-Kühlung
  3. Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
  4. Präzise Temperaturüberwachung im Server-Schrank mit Raspberry Pi
  5. LM35-basiertes Temperatursteuerungssystem mit AT89S52 Mikrocontroller
  6. Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen
  7. Automatisiertes Pool-Befüllungs- und Überwachungssystem
  8. Häufige Kühlfehler in Industrie-Schalttafeln: Überhitzung & Ausfälle vermeiden
  9. Temperaturkontrolle im Druckguss meistern für optimale Qualität
  10. Temperaturkontrolle auf Baustellen: Umfassender Mietleitfaden