Slimme Keyless Deurslot – Arduino & Android Bluetooth Wachtwoordsysteem
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino UNO | 1 |
| HC-05 Bluetooth Module | 1 |
| Servo (Tower Pro MG996R) | 1 |
Benodigde tools en machines
- 3D-printer (generiek)
Apps en online diensten
- Arduino IDE
Over dit project
Inleiding
Dit slimme slot is veilig, simpel en eenvoudig te beheren. Geen sleutels nodig; het slot zit aan de binnenkant van de deur en wordt via Bluetooth van buitenaf bediend. Een Android-app stuurt een wachtwoord; klopt dit, dan opent het slot en stuurt een bevestiging terug.
3D-ontwerp van het deurslot
Alle onderdelen zijn 3D-geprint. Ontwerp van Thingiverse-gebruiker ridercz (link). Er zijn lichte (LT) versies die minder filament gebruiken. Geprint op Anet A8.
Monteren van de 3D-onderdelen
Monteer de onderdelen stap voor stap zoals op de foto's. Fix alles met vier schroeven.
Arduino-programma voor Bluetooth wachtwoordbeveiligd deurslot
De app stuurt commando's OPEN=wachtwoord of CLOSE=wachtwoord. De Arduino splitst commando en wachtwoord aan de hand van =. Klopt het wachtwoord, dan wordt de servo aangestuurd (open of dicht). Feedback (OPEN, CLOSE, WRONG) gaat terug naar de telefoon.
Schema
HC-05 TX → Arduino RX, HC-05 RX → Arduino TX. Servo op pin 9.
Plaatsen van het slot in de deur
Bevestig het slot met schroeven, plak de Bluetooth-module vast, plaats de Arduino eronder en sluit de draden aan. Voeding: 5V 1A wandadapter.
Android-app ontwikkeling met MIT App Inventor
Geen programmeerkennis nodig. Stappen:
- Ga naar App Inventor, log in met Google.
- Accepteer voorwaarden, start nieuw project
BluetoothControlDoorLock. - Designer: voeg ListPicker (koppelen), Label, Password TextBox, twee Buttons (Open/Close), BluetoothClient (onzichtbaar) toe.
- Blocks Editor: programmeer ListPicker.BeforePicking en AfterPicking, knoppen voor OPEN/CLOSE met wachtwoord.
- Build → App (save .apk to my computer). Installeer op telefoon.
Er is ook een uitgebreidere app (BTcontrol.aia/.apk) met statusmeldingen, Bluetooth-aanvraag, en foutafhandeling. Downloadbaar via Google Play.
Code
Arduino Sketch
#include <Servo.h>
Servo myservo;
String inputString = "";
String command = "";
String value = "";
String password = "arduPi"; // wijzig naar eigen wachtwoord
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);
}
3D-bestanden
Thingiverse: https://www.thingiverse.com/thing:2350856
Schema's en app-bestanden
Schema-afbeelding en App Inventor bronbestanden (.aia, .apk) zijn bijgevoegd.
Productieproces
- Binnenkijken in bankkluizen: geschiedenis, ontwerp en toekomst van beveiliging
- Kanalen & sluizen: techniek, geschiedenis en toekomst van VS watervervoer
- Maak een Veilige Arduino RFID Slot – Stapsgewijze Handleiding
- Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
- Bouw Boeiende LCD Animaties & Games met Arduino UNO
- Bestuur Je Roomba Create 2 Met Arduino En Android: Stapsgewijze Handleiding
- Veilig wachtwoord-gebaseerd deurkastje met Arduino, Keypad & Lineaire actuator
- Python 3 naar Arduino UNO: Eenvoudige Commando Besturing en LED Demo
- Bouw Real-Time Cellulaire Automaten op Arduino met 128x64 OLED Display
- Hoge-Snelheid Arduino RPM Teller met Nieuw Algoritme
- WiFi-ingeschakeld slim slot met Arduino & ESP8266 – Ontgrendel via je telefoon