====== Fingerprint Türöffner "Sesam" ====== ===== Beschreibung ===== Aktuell befindet sich das Projekt in der Revision. Statt eines NFC-Reader soll ein displaygestütztes Menü eingefügt werden. So soll es möglich sein, mit Authentifizierung durch ein Gruppen-Fingerabdruck auch temporäre Fingerabdrücke zu erstellen. Ein Beispiel: Ein "Gast" (Gruppe) bekommt für 13 Stunden eine Zugangsberechtigung per Fingerabdruck. Die Autorisierung wird durch den Fingerabdruck eines "Bewohners" (Gruppe) legitimiert. Ein bestehender elektrischer Türöffner soll mit einem Arduino und einem Fingerabdruckscanner erweitert werden, so das durch schalten eines Relais der Türöffner ausgelöst wird. Im folgenden werde ich den Eigenbau dieses Systems zum Nachmachen beschreiben.\\ Wichtig zu wissen ist: Der Fingerprintsensor ist generell nicht technisch zu manipulieren. Es reicht also nicht, sein Gehäuse zu zerstören und irgendwelche Kabel kurz zu schließen. Bitte entnehmt weitere Sicherheitsrelevante Details dem Datenblatt des K503 (siehe unten).\\ Für Kritiken, Vorschläge und Rückmeldungen bin jeder Zeit offen. ===== Bedienungsanleitung ===== ==== Erstinbetriebnhame ==== - Im Arduino-Skript muss zuerst die Chip-ID des Admin-NFC-Tags festgelegt werden. Diese findest du raus, in dem du das Beispielskript DumpInfo der MFRC522-Library einsetzt, die dezimalinterger ID deines Tags ausliest und in die config.h deines Sesam.ino-Skiptes überträgst. - Jetzt kannst du die Sesam.ino auf den Arduino laden und das zusammengebaute System an der Tür installieren. (Anschlussplan folgt). - Die LED des FP-Sensor blinkt zuerst blau, danach rot, anschließend leuchtet sie lila. Es ist noch kein Fingerabdruck gespeichert und das System fordert dich auf, deinen ersten Fingerabdruck einzulesen. ==== Im normalen Betrieb ==== Wird ein Fingerabdruck eingelesenen und akzeptiert, so leuchtet der FP-Sensor lila und der elektrische Türöffner wird für drei Sekunden betätigt. Du kannst die Türe öffnen. ==== Fingerabdruck hinzufügen ==== Halte den Admin-Tag an den RF-Reader. Ein Piepston und das lila Licht am FP-Sensor zeigen dir, dass das System bereit ist einen neuen Fingerabdruck zu speichern. Gehe dazu wie folgt vor: ^LED FP-Sensor^Aktion^ |lila|Finger auflegen und halten, bis das Licht erlischt| |blau blinkend|Finger abnehmen und warten. Daten werden verarbeitet| |lila|Finger erneut auflegen, wie vorher| War das einlesen erfolgreich erlischt der LED-Ring am FP-Sensor und das System geht wieder in den normalen Betriebsmodus. Du kannst das einlernen jeder Zeit mit dem RESET-Knopf abbrechen. ===== Bauanleitung ===== ==== Hinweise ==== Je nachdem, wie euer Setting ist, empfiehlt es sich, zwei Bauteile zu erstellen. * Die Sensoreinheit mit FP-Sensor und NFC-Reader. Diese können nämlich öffentlich zugänglich sein, da sie elektrisch nicht manipuliert werden können. Arduino, Relais und RST-Button gut geschützt hinter der Zugangstüre. Diese Bauart erfordert aber eine mindestens 11-Polige Verbindungsleitung zwischen den Baugruppen. Leider ist dies bei mir der vorübergehende Aufbau. Besser wäre: * RF-ID, Relais, RST-Button und Arduino in einer Baugruppe hinter der Zugangsschwelle und nur den FP-Sensor "vor die Haustür". Eure schwächste Stelle ist hierbei immer das Relais bzw. die Kabelverbindung hierzu. Diese sollte immer vor Zugriff geschützt sein, da kurzschließen die Türe öffnet. (Elektrisch manipulierbar) ==== Hardware ==== Hier sind auch zukünftige Bauteile aufgeführt. Wie zum Beispiel die RealTimeClock oder das SD-Karten-Modul. Dafür gibt es aber noch keine praktisch-technischen Lösungen. |MCU |Arduino UNO oder Nano | | |RTC |DS1307 |Modul| |RFID |RC522 |Modul| |SD |SD-Card Modul|Modul| |Fingerprint Sensor|R503 |Bauteil| |Relais |HW482 |Modul| ==== Software ==== ^Verwendete Libraries^ |SPI |SPI.h |enthalten| | |SD |SD.h |enthalten|aktuell nicht benutzt| |MFRC522|MFRC522.h|über Bibliothekverwaltung| | |Adafruit FP-Sensor|Quelle:GitHub|[[https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library|Download here]]| ===== Leitungsplan ===== ==== Konvention ==== |SDA |grün| |SCK |weiß| |CS |gelb| |MOSI|blau| |MISO|lila| |RST |orange| ==== Liste ==== ^Modul^MCU Pin^Beschreibung^ ^SD-Karten Modul (nicht verbaut)^ |Soll in einer Weiterentwicklung die Zutritte (in Verbindung mit der RTC) aufzeichnen. Leider hab ich noch nicht rausgefunden, wie ich dieses "Problemmodul" zusammen mit anderen SPI-Geräten benutzen kann.| |CS |D5 |Ersfassung der SD Karte| |SCK |D13 |Synchronisiert den Datentransfer durch den Master| |MOSI|D11 |MasterOutSlaveIn Datenleitung| |MISO|D12 |MasterInSlaveOut Datenleitung| |Vcc |5V |Stromversorgung| |GND |GND |Ground| ^RFID RC522^ |Liest NFC-Tags. Dies ist nötig um einen "Admin-Schlüssel" zu generieren.| |SDA |10 | | |SCK |D13 | | |MOSI|D11 | | |MISO|D12 | | |IRG |unbelegt| |GND |GND | | |RST |9 | | |Vcc |3.3V| | ^Fingerabdruck Sensor R502 oder R503 (der R503 ist tiefer)^ |Kantrolliert den berechtigten Zutritt an der Tür| |Vcc |3.3V|rot am Sensor| |GND |GND |schwarz am Sensor| |TX |D2 |gelb am Sensor| |RX |D3 |grün am Sensor| |Itrp|unbelegt|blau am Sensor (Ein Interrupt-Anschluss. Wakeup Signal)| |Vcc2|3.3V|weiße am Sensor (Stromversorgung: Berührungs-Induktion)| ^Active Buzzer^ |Rückmeldung von Geräteaktionen an den Benutzer| |- |GND | | |+ |D7 | | ^RESET Button^ |Wird der Arduino fest blind-verbaut so ist ein erreichen des Reset-Knopfes schwer möglich. Hierzu wird ein erreichbarer Knopf "aufputz" installiert.| |1 |RST | | |2 |GND | | ^Relais^ |Überbrückt den elektrischen Türöffnerkontakt.| |Vcc |5V | | |GND |GND | | |In |D5 | | ^OLED Display - Befindet sich in der Entwicklung^ |GND |GND | | |VCC |5V | | |SCL |A5 | | |SDA |A4 | | ==== Beispiele ==== {{ :it:fritzingsd1-768x416.webp |SD-Kartenmodul}} {{:it:circuit-diagram-437x439.jpg?nolink&400|Fingerprint Sensor}} ===== Probleme und Troubleshooting ===== * Scheinbar gibt es Probleme mit der Verwendung von mehreren SPI-Modulen (MOSI, MISO). Es geht entweder der RC522 oder das SD Modul. Nach einer Lösung wird gesucht. Ein Hinweis gibt es [[https://cool-web.de/arduino/rc522-rfid-karten-leser-128x64-pixel-oled-display-und-sd-card-reader-an-stm32.htm|hier]]. * Im Enrolle-Modus wird dieser nicht beendet nach den einlernen eines Fingerabdruckes. ===== Resourcen ===== ==== Quellen ==== * [[https://funduino.de/nr-28-das-sd-karten-modul|Das SD-Karten-Modul]] * [[https://funduino.de/nr-18-rfid-kit|RFID-Reader]] * [[https://funduino.de/nr-18-rfid-kit|RFID alternativ]] * [[https://how2electronics.com/interfacing-r502-r503-capacitive-fingerprint-sensor-with-arduino/|Fingerabdrucksensor Tutorial]] * [[https://github.com/hkieninger/fingerprint-R503/blob/main/R503_datasheet.pdf|Fingerabdrucksensor R503 Datenblatt]] * [[https://randomnerdtutorials.com/guide-for-oled-display-with-arduino/|OLED Text]] * [[https://www.youtube.com/watch?v=G1C09eoJ07c&list=PLcoOgwNUu-I4f83OQcqWANYHKR_9RiueJ&index=3|Video mit vielen Tools: OLED und Arduino, Bilder]] ==== Veröffentlichung ==== Projekt bei gitHub folgt.