Smartes schlüsselloses Türschloss – Arduino & Android Bluetooth-Passwortsystem
Komponenten und Zubehör
| Komponente | Menge |
|---|---|
| Arduino UNO | 1 |
| HC-05 Bluetooth-Modul | 1 |
| Servo (Tower Pro MG996R) | 1 |
Benötigte Werkzeuge und Maschinen
- 3D-Drucker (generic)
Apps und Online-Dienste
- Arduino IDE
Projektbeschreibung
Einführung
Dieses smarte Schloss ist sicher, einfach zu verwalten und benötigt keine Schlüssel. Es wird innen an der Tür montiert und per Bluetooth von außen gesteuert. Da das Schloss innen liegt, kann es von außen nicht gewaltsam geöffnet werden. Eine Android-App sendet ein Passwort; stimmt es mit dem voreingestellten Passwort überein, öffnet/schließt das Schloss und sendet eine Rückmeldung ans Handy.
3D-Design des Türschlosses
Alle Teile sind 3D-gedruckt. Das Design stammt von Thingiverse-Nutzer ridercz (Thingiverse). Dateien (auch LT-Versionen mit weniger Material) sind im Projekt enthalten. Gedruckt mit Anet A8.
Montage der 3D-gedruckten Teile
Die Teile werden gemäß der Bilder (und Video) zusammengesetzt und mit vier Schrauben fixiert.
Arduino-Programm für Bluetooth-Passwortschloss
Die App sendet Befehle OPEN= oder CLOSE= gefolgt vom Passwort. Der Arduino trennt Befehl und Passwort am =-Zeichen, prüft das Passwort und steuert den Servo entsprechend. Bei korrektem Passwort und OPEN öffnet die Tür, bei CLOSE schließt sie. Falsches Passwort erzeugt WRONG-Meldung.
Schaltplan
HC-05: Arduino TX → Bluetooth RX, Arduino RX → Bluetooth TX. Servo an Pin 9. Spannungsversorgung über 5 V/1 A Netzteil.
Einbau an der Tür
Schloss mit vier Schrauben befestigen, Bluetooth-Modul mit Heißkleber fixieren, Arduino unten anbringen, Verkabelung gemäß Schaltplan, Spannung anschließen.
Android-App-Entwicklung mit MIT App Inventor
Keine Programmierung nötig, nur Google-Konto. Schritte:
- App Inventor öffnen (ai2.appinventor.mit.edu), anmelden.
- Neues Projekt „BluetoothControlDoorLock“ (keine Leerzeichen).
- Designer: ListPicker „Connect to Bluetooth Device“, Label, Passwort-Textfeld, zwei Buttons („Open Door“, „Close Door“), BluetoothClient (unsichtbar).
- Blocks Editor: Blöcke für ListPicker (BeforePicking, AfterPicking), Buttons (Senden von
OPEN=Passwortbzw.CLOSE=Passwort), Empfang von Rückmeldungen (OPEN,CLOSE,WRONG). - APK erstellen: Build → „App (save .apk to my computer)“.
Eine erweiterte App (BTcontrol.aia/BTcontrol.apk) bietet Bluetooth-Status, Verbindungsanzeige, Passwort-Feedback und ist im Google Play Store erhältlich.
Code
Arduino Sketch
#include <Servo.h>
Servo myservo;
String inputString = "";
String command = "";
String value = "";
String password = "arduPi"; // Passwort anpassen
boolean stringComplete = false;
void setup() {
Serial.begin(9600);
inputString.reserve(50);
command.reserve(50);
value.reserve(50);
myservo.attach(9);
}
void loop() {
if (stringComplete) {
delay(100);
int pos = inputString.indexOf('=');
if (pos > -1) {
command = inputString.substring(0, pos);
value = inputString.substring(pos + 1, inputString.length() - 1);
if (!password.compareTo(value) && (command == "OPEN")) {
openDoor();
Serial.println(" OPEN");
delay(100);
} else if (!password.compareTo(value) && (command == "CLOSE")) {
closeDoor();
Serial.println(" CLOSE");
delay(100);
} else if (password.compareTo(value)) {
Serial.println(" WRONG");
delay(100);
}
}
inputString = "";
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
inputString += inChar;
if (inChar == '\n' || inChar == '\r') {
stringComplete = true;
}
}
}
void openDoor() {
myservo.write(0);
delay(100);
}
void closeDoor() {
myservo.write(65);
delay(100);
}
Gehäuse und individuelle Teile
Thingiverse-Design: CAD-Dateien
Schaltpläne und Dateien
Schaltplanbild, App Inventor Quelldatei (door-lock_android_source_PDi5PbxDwC.aia) und APK (door-lock_android_app_K05l3Csr61.apk) sind im Projekt enthalten.
Herstellungsprozess
- Banktresore: Geschichte, Design und Zukunft der Sicherheit
- Kanäle & Schleusen: Technik, Geschichte und Zukunft des US-Wassertransports
- Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
- Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
- LCD-Animationen & Spiele mit Arduino UNO erstellen
- Roomba Create 2 per Arduino & Android steuern – Schritt-für-Schritt
- Sicheres Passwort-Türschloss mit Arduino, Keypad & Linearaktuator
- Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
- Echtzeit-Zelluläre Automaten auf Arduino mit 128x64 OLED-Display
- WLAN-Türschloss mit Arduino & ESP8266 – Per Smartphone entsperren