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

Netzwerkfähiger RFID-Kartenleser mit Arduino, ENC28J60 Ethernet & MFRC522

Komponenten und Materialien

Werkzeuge

Software

Über das Projekt

Professionelle RFID-Zutrittsysteme kosten 200–2000 $. Wir bauen ein netzwerkfähiges System für unter 100 $, das nicht nur Türen öffnet, sondern auch Logging/Tracking ermöglicht (ursprünglich für Schülererfassung an einer High School).

Hardware-Aufbau (SPI-Verkabelung)

  1. Arduino Pin 10 (SS) → Ethernet CS
  2. Pin 12 (MISO) → RFID MISO + Ethernet SO
  3. Pin 11 (MOSI) → RFID MOSI + Ethernet SI
  4. Pin 13 (SCK) → RFID SCK + Ethernet SCK
  5. Pin 9 → RFID RST
  6. Pin 8 → RFID SS (SDA)
  7. Pins 3, 4, 5 → RGB-LED (Rot, Blau, Grün) mit Vorwiderständen
  8. Beide Module (RFID, Ethernet) an 3,3 V vom Netzteil – niemals 5 V!
  9. Arduino GND mit Netzteil GND verbinden
  10. Ethernet-Kabel an Router/Switch (selbes Netzwerk wie PC)
Netzwerkfähiger RFID-Kartenleser mit Arduino, ENC28J60 Ethernet & MFRC522

Code-Konfiguration

Im Arduino-Sketch müssen folgende Netzwerkparameter angepasst werden:

Funktionsweise

  1. Arduino initialisiert Ethernet (UIPEthernet) und RFID (MFRC522)
  2. Beim Erkennen einer Karte: UID lesen, als Hex-String an TCP-Server (Port 23) senden
  3. Server antwortet: g = Zugriff gewährt (grüne LED), sonst bb = verweigert (rote LED)
  4. Blaue LED = Wartezustand, Lila/rot blinkend = Boot

Python-Beispielserver (Telnet/TCP, Port 23)

import SocketServer
class MyTCPHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        self.data = self.request.recv(1024).strip()
        print("{} wrote:".format(self.client_address[0]))
        print(self.data)
        # Hier SQL-Prüfung: if UID in DB -> "g" else "bb"
        self.request.sendall("g")  # oder "bb"

if __name__ == "__main__":
    HOST, PORT = "", 23
    server = SocketServer.TCPServer((HOST, PORT), MyTCPHandler)
    server.serve_forever()

Fehlerbehebung (Arduino hängt >30 s)

Erweiterung: Türöffnung

Der Code enthält keine Türsteuerung. Für ein Schloss: Relais an freiem Pin schalten bei Pass()-Signal.

Code-Repository

Aktuellste Version: GitHub InternetRFIDTags

Herstellungsprozess

  1. Die Grußkartenindustrie: Geschichte, Produktion und Zukunftstrends
  2. Kreditkarte: Geschichte, Design, Fertigung und Zukunftstrends
  3. Sicheres RFID-Türschloss mit Arduino & RC522 (MIFARE 13,56 MHz)
  4. Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
  5. RFID-Anwesenheitssystem mit Arduino & Python – Daten direkt in phpMyAdmin (XAMPP) speichern
  6. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  7. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  8. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  9. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  10. Arduino-basierter Amiga-Floppy-Lesegerät: Günstige Open-Source-Datenrettung