Arduino-Sicherheitszone: Geräte (Android, iOS, Windows 10) per Fingerprint entsperren
Bauteile und Zubehör
| HC-05 Bluetooth-Serial-Modul | 1 |
| Arduino Nano R3 | 1 |
| R301T Halbleiter-Fingerabdruckmodul | 1 |
| 5 mm RGB-LED (4 Pins, Common Anode) | 1 |
Apps und Online-Dienste
- Arduino IDE
Über das Projekt
Wir bauen ein Gadget, das eine „Safe Zone“ für Ihre Geräte schafft. Nach Abschluss können Sie:
- einen Fingerabdrucksensor nutzen,
- Ihre Geräte mit der Safe Zone koppeln,
- ein cooles Entsperr-Gadget besitzen.

Geräte sperren & entsperren
Smartphones speichern private Daten (Chats, Fotos, Notizen). Sperrbildschirme schützen, sind aber lästig, wenn man allein in einem sicheren Raum arbeitet. Die Idee: Ein kleines Gadget, das per Fingerabdruck aktiviert wird, via Bluetooth mit den Geräten koppelt und diese solange entsperrt hält, wie das Gadget in Reichweite ist.
R301T-Fingerabdruckmodul
Das Modul kommuniziert seriell mit dem Arduino. Zuerst wird ein Fingerabdruck als Benutzer gespeichert, dann mit Arduino TX/RX verbunden. Ein HC-05-Bluetoothmodul wird einmalig mit den Geräten gekoppelt. Der Arduino-Code aktiviert Bluetooth bei erkanntem Fingerabdruck.

Schaltung

Code
Benötigte Bibliothek: Adafruit_Fingerprint. Installation über Bibliotheksverwalter. Dann folgenden Sketch hochladen:
#include "Adafruit_Fingerprint.h"
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int cc = 0;
void setup() {
Serial.begin(9600);
while (!Serial); delay(100);
Serial.println("\n\nAdafruit finger detect test");
finger.begin(57600);
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1) { pinMode(13, OUTPUT); digitalWrite(13, LOW); pinMode(9, OUTPUT); digitalWrite(9, HIGH); }
}
finger.getTemplateCount();
Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
Serial.println("Waiting for valid finger...");
}
void loop() { getFingerprintIDez(); delay(50); }
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK: Serial.println("Image taken"); break;
case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p;
case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p;
case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p;
default: Serial.println("Unknown error"); return p;
}
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK: Serial.println("Image converted"); break;
case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p;
case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p;
case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p;
case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p;
default: Serial.println("Unknown error"); return p;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) Serial.println("Found a print match!");
else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; }
else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; }
else { Serial.println("Unknown error"); return p; }
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
for (int i = 255; i > 1; i--) { analogWrite(9, i); delay(10); }
if (cc % 2 == 0) digitalWrite(13, HIGH); else digitalWrite(13, LOW);
cc++;
return finger.fingerID;
}
int getFingerprintIDez() {
uint8_t p = finger.getImage();
if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz();
if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch();
if (p != FINGERPRINT_OK) return -1;
Serial.print("Found ID #"); Serial.print(finger.fingerID);
Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
Zusammenbau

Kopplung:
- Windows 10: Einstellungen → Anmeldeoptionen → Dynamische Sperre aktivieren & BT-Modul koppeln.
- Android: Einstellungen → Display → Sperrbildschirm → Smart Lock aktivieren & mit BT koppeln.
- iOS: Einstellungen → Touch ID & Code → dort einrichten.
Falls die automatische Kopplung fehlschlägt: Beim ersten Kopplungsversuch ein Zeichen an das Gerät senden.
Weiterentwicklung
- Standortabhängige Aktivierung (z. B. nur im Büro).
- Eingeschränkter Zugriff für andere Nutzer.
Code (Bibliothek)
Fingerprint Library (C/C++) – Download erforderlich.
Herstellungsprozess
- Arduino Nano Flight Simulator 2020 Kontrollpanel – LCD & CDI Display
- Monitor-Ambilight selbst bauen mit Arduino Nano & WS2812B LEDs
- Smartes Temperatur-Monitoring für Schulen – Arduino, Raspberry Pi, Sigfox & ThingSpeak
- Effiziente 8-Bit-I/O-Port-Bibliothek für Arduino – Digitale Steuerung erweitern
- Arduino LED per iOS/Android App steuern – WiFi/Ethernet mit Evothings Studio
- Arduino 64-Tasten-Prototyp-Keyboard-Matrix – Eigenes Keyboard mit Schieberegistern bauen
- Musikalische Töne mit Arduino erzeugen: Schritt-für-Schritt-Anleitung
- Isolierter Analogeingang für Arduino: Spannung/Strom galvanisch trennen
- Smartes Indoor-Navigations-Roboter-Kit für Arduino-Projekte
- Wie Direct-Wasserpumpen die Wasserförder-Effizienz steigern