2020-09-21 16:57:04 +00:00
2020-08-24 20:25:48 +02:00
2020-09-21 16:57:04 +00:00
2020-08-24 20:25:48 +02:00
2020-08-24 20:25:48 +02:00

MQTT-RFID Reader

Allgemein

Das Projekt beschreibt ein RFID Lesegerät welches über MQTT in einer IT-Infrastruktur für offene Werkstätten eingebunden werden kann, z. B. für die Freischaltung von Maschinen.

Ansatz:

  • Mit einer RFID-Karte sich eine Person an einem Lesegerät in einem MQTT-Netzwerk identifizieren. In Abhängigkeit der damit verbundene Anwendungen können hiermit Maschinen freigeschaltet, Türen / Fächer aufgeschlossen oder Programme angesteuert werden. Dabei stellt das Lesegerät nur die Kommunikation mit der RFID-Karte und mit dem Anwender (Über ein Display) zur Verfügung. Aktuatoren und Netzschalter sind nicht vorgesehen.

Funktionsumfang:

  • Lesen von UID und Identifikation von RFID-Karten verschiedener Bauart (Mifare Classic, DESFire, Ultralight C)
  • Beschreiben von Mifare Classic mit einem Zeitstempel
  • Kommunikation der Daten über MQTT (JSON Objekt) an Broker
  • Anzeige von Statusmeldungen (intern) und Nachrichtigen (über MQTT empfangen)
  • Konfiguration (Netzwerkeinstellung, Funktionalität) über HTML in Access Point Modus
  • Anbindung über Wifi oder Ethernet
  • Einbindung einer Taste zur Interaktion mit dem Anwender (z. B. zur Besätigung o. ä.)
  • Buzzer

Aufbau:

  • RC522 standard Modul
  • '0.96 OLED Display
  • ENC28J60 LAN Modul
  • ESP-12 Modul (ESP8266)
  • Interface-Platine
  • 3D Druck Gehäuse
  • ESP-01 Programmierer (nur zum Programmieren)

Funktion

Des Konzept lässt sich in mehrere Teilbereiche unterteilen:

1. Kommunikation mit RFID-Karten

Das Ziel ist, ein System zur Verfügung zu stellen, welches möglichst wenig anfällig für misbrauch ist, aber dennoch preiswert bleibt. Hierzu gitb es folgende Konzepte:

  1. Verwendung von Mifare Classic Karten - Die Karten sind klonbar und bieten daher die geringste Sicherheit
  2. Verwendung von Mifare Classic Karten mit Zeitstempel der in einer Datenbank abgelegt wird. Sicherer, da eine geklonte Karte nur einmal verwendet werden kann. Dannach weichen der Zeitstempel auf dem Original und dem Klon von einander ab, und das Vorhandensein zweier Karten kann erkannt werden. Das ganze setzt eine stabile Kommunikation zwischen Lesegerät und Datenbank voraus
  3. Verwendung von DESFire Karten. Karten sind teuer und die Empfindlichkeit des Lesegerätes verringert sich
  4. Verwendung von Mifare Ultralight C Karten. Die Karten sind günstiger, auch hier leidet die Empfindlichkeit, allerdings muss hier sichergestellt werden, dass es sich um ein Typ C handelt, da die standard Ultralight Karten ebenfalls klonbar sind. Beide Karten "identifizieren" sich zunächst jedoch gleich.

Alle 4 Optionen werden vom Lesegerät unterstützt. Die Option kann über die Konfigurationsseite des Lesegerätes eingestellt werden.

Das Szenario, dass die Karte unerlaubt weitergegeben wird, läßt sich alleine über die Wahl der RFID Technologie lösen, daher wird dieses nicht betrachtet.

Zur Zeit wird die Karte einmal gelesen und dann vom Lesegerät abgeschaltet. Eine Option, dass die Anwesenheit der Karte kontinuierlich überprüft wird, könnte bei Bedarf hinzugefügt werden.

2. Kommunikation über MQTT

Das Lesegerät kann über die Konfigurationsseite entweder über LAN oder über WLAN in einem Netzwerk eingebunden werden. Die IP-Adresse des Brokers muss, zusammen mit der Geräte-ID ebenfalls manuell über die Konfigurationsseite eingegeben werden. Über standardisierte Adressen (Topics), in der die ID des Lesegerätes enthalten ist, werden Nachrichten (Payload) verschickt. Das Gerät abonniert ebenfalls ein standardisiertes Topic um Nachrichten empfangen zu können. Die Kommunikation von Nachrichten kann entweder als JSON Objekt oder als Klartext erfolgen (über die Konfigurationsseite einstellbar). Nach erfolgreichem Lesen der RFID Karte wird die UID und, wenn eingestellt der alte und neue Zeitstempel an den Broker übermittelt. Das Lesegerät kann eine Reihe von standard-Nachrichten anzeigen (die intern auf das Display passend hinterlegt wurden) oder kann auch Klartext-Nachrichten empfangen und anzeigen. Hierzu enthält die empfangene MQTT-Nachricht immer ein "identifizierer" der Nachricht und eine Klartextnachricht. Je nachdem ob der Identifizierer im Lesegerät belegt ist, wird die passend formatierte Nachricht angezeigt oder die unformatierte Klartextnachricht.

3. Konfiguration des Gerätes

Das Gerät verfügt über einen Eingang zum Anschluss eines Tasters. Wird diese Taste während des Bootvorgangs betätigt, startet das Lesegerät im Web-AP Modus. Nach Anmeldung in das Netzwerk findet man auf der Home-Webseite des Gerätes eine leere Konfigurationsseite. Hier können SSID und Passwort des Werkstatt-Netzwerks, Broker-IP, Geräte-ID, LAN/WLAN und RFID Optionen definiert werden. Die Optionen werden gespeichert und werden beim nächsten Bootvorgang verwendet.

Description
CardReader of the FabAccess Project
Readme 2.7 MiB
Languages
C++ 100%