Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Onderdelen en Benodigdheden

OnderdeelAantal
Arduino MKR1000 (WiFi)1
RFID Reader RC5221
OLED 0.96" 128x32 (SSD1306)1
MLX90614 Infrarood Temperatuursensor1

Apps & Online Services

  • Arduino IDE
  • Fritzing (voor schema's)

Over dit Project

Wanneer medewerkers het bedrijf binnenkomen via RFID-tags, meet het systeem contactloos de lichaamstemperatuur. Bij verhoogde temperatuur (COVID-19 symptoom) wordt toegang geweigerd. Alle data (medewerker identificatie via RFID UID, aankomsttijd, temperatuur) worden naar de bedrijfswebsite gestuurd voor monitoring.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 1: Software Installatie

We gebruiken de Arduino MKR 1000 WiFi Board. Standaard ondersteunt Arduino IDE alleen AVR-borden. Voor MKR1000 voeg je Arduino SAMD (32-bit ARM Cortex-M0+) toe via Tools → Board → Boards Manager → zoek "Arduino SAMD" → Install.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Na installatie verschijnen MKR-borden onder Tools → Board. Sluit MKR1000 aan via USB; drivers installeren automatisch.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 2: MLX90614 IR Temperatuursensor Aansluiten

De MLX90614 meet contactloos temperatuur (-70 tot +380°C, nauwkeurigheid ~0.5°C). Gebruikt I2C-protocol.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Installeer bibliotheek Adafruit_MLX90614.h via Sketch → Include Library → Manage Libraries. Upload testsketch mlx90614_01.ino:

#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);
}

Open Serial Monitor: omgevingstemperatuur en objecttemperatuur elke 3 seconden.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 3: OLED Display Aansluiten

128x32 monochroom OLED module met SSD1306 chip, I2C-interface.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Bibliotheek: Adafruit_SSD1306. Sketch mlx90614_02.ino meet temperatuur elke 3 seconden en toont op display.

#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();
  }
}
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 4: RC522 RFID Reader Aansluiten

RFID-tags: actief/passief, frequenties LF/HF/UHF. RC522 module (MFRC522 chip, 13.56 MHz) is standaard voor Arduino.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Sketch mlx90614_03.ino: UID detectie, temperatuurmeting, open/dichte berichten op Serial en OLED.

#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: // Wacht op RFID
      display.clearDisplay();
      display.setCursor(10, 10); display.print(F("Wait RFID...."));
      if (mfrc522.PICC_IsNewCardPresent()) {
        if (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: // Wacht op temperatuur
      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 of dicht
      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;
  }
}
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 5: MKR1000 Verbinden met Internet

Gebruik WiFi101 bibliotheek (Library Manager). Upload voorbeeld connectWithWPA.ino met je WiFi-gegevens:

#define SECRET_SSID "mijn_SSID"
#define SECRET_PASS "mijn_wachtwoord"
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Stap 6: Database aanmaken op Bedrijfswebsite

Maak MySQL database met twee tabellen:

  • users - medewerkerdata en hun UID
  • temp - dagelijkse temperatuurmettingen bij ingang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

get_uid.php controleert UID in database, retourneert #no of #yes;naam.

<?php
$location="localhost"; $user="..."; $pass="..."; $db_name="...";
if(! $db=mysqli_connect($location,$user,$pass,$db_name)) {echo "connect error";} else {;}
$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 slaat temperatuur op in database.

<?php
// ... zelfde db connectie ...
$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"; }
?>

Stap 7: Data Versturen van MKR1000 naar Website

Twee functies: send_uid_to_server() en send_temp_to_server(). Volledige code in bijlagen.

Stap 8: Relais voor Toegangscontrole

Relais schakelt de ingang open/dicht op basis van temperatuur.

RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang
if (temp < 37.5) { // OPEN
  digitalWrite(pinRelay, HIGH);
} else { // CLOSE
  digitalWrite(pinRelay, LOW);
}

Complete sketch mlx90614_07.ino in bijlagen.

Stap 9: Webpagina voor Remote Monitoring

view_temp.php toont temperatuurdata per medewerker (rood = >37.5°C).

<?php
// ... db connectie ...
$query1="SELECT * FROM temp WHERE day >= CURDATE() ";
$rez1=mysqli_query($db,$query1); $i=1;
while($row1=mysqli_fetch_assoc($rez1)) {
  $content1.="<tr><td>".$i."</td>";
  $rez2=mysqli_query($db,"SELECT name FROM users WHERE id=".$row1['id_user']);
  $row2=mysqli_fetch_assoc($rez2);
  $content1.="<td>".$row2['name']."</td>";
  $content1.="<td>".mb_substr($row1['day'],10,9)."</td>";
  if($row1['temp']>37.5) $content1.="<td style='background-color:red'>".$row1['temp']."</td>";
  else $content1.="<td>".$row1['temp']."</td>";
  $content1.="</tr>"; $i++;
}
echo $content1;
?>
RFID Toegangssysteem met Contactloze Temperatuurmeting voor Veilige Medewerkerstoegang

Productieproces

  1. Temperatuurcontrole oplossingen voor bouwplaatsen: Uitgebreide verhuurgids
  2. Anticonceptiepil: Geschiedenis, Voordelen, Risico's en Productie
  3. Geïntegreerde QR, RFID en Temperatuurverificatie Toegangscontrolesysteem
  4. Temperatuur-gecontroleerde Ventilator: DIY Relais Systeem Voor Media Kast Koeling
  5. Professionele temperatuurbewaking met Raspberry Pi en DS18B20
  6. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  7. LM35-gebaseerd temperatuurregelsysteem met AT89S52 microcontroller
  8. Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana
  9. Geautomatiseerd Zwembadvul- en Monitoringssysteem
  10. Veelvoorkomende Koelfouten in Industriële Bedieningspanelen: Oververhitting en Apparatuurstoring Voorkomen
  11. Temperatuurcontrole in drukgieten beheersen voor optimale kwaliteit