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

Arduino-Türschloss mit Tastatur & benutzerdefiniertem Code

Komponenten und Materialien

Komponente Menge Hinweise
Arduino UNO 1
4x4 Tastenmatrix (Keypad) 1
Taster (generic) 1 Innentaster zum Öffnen
LCD I²C (16x2) 1 Mit I²C-Adapter
Linearsolenoid (Türöffner) 1 12V
IRF510N MOSFET 1 Solenoid-Ansteuerung
1-Kanal Relaismodul 1 Alternative zum MOSFET

Benötigte Werkzeuge

Über dieses Projekt

Hallo und willkommen zu diesem Tutorial (klassisch, aber bewährt). Heute baue ich ein Türschloss basierend auf Arduino, Keypad, I²C-LCD, und wahlweise Solenoid+MOSFET oder Relais. Siehe auch mein Fingerprint-Türschloss-Tutorial (DC-Motor-Schloss) – je nach Schloss-Typ Verdrahtung und Code anpassen.

Hinweis: Für echte Projekte empfehle ich keinen Solenoid, sondern ein Schloss, das sowohl elektronisch als auch mechanisch öffnet – und das Projekt daran anpassen.

Bauteile im Detail

Zusätzlich: Jumper-Kabel, 12V-Netzteil für Solenoid (nicht in Liste).

Der Innentaster öffnet von innen (entfernbar). Vorwiderstand zur Entprellung.

4×4 Keypad genutzt; 3×4 geht auch, aber Code anpassen (Bestätigung: 'A' → '*' oder '#').

Solenoid wird mit 12V extern versorgt, über IRF510N MOSFET geschaltet. MOSFET als Schalter: 5V an Gate-Source → Durchlass Drain-Source (wie geschlossener Schalter). Kein Gate-Widerstand nötig (anders als Bipolar). Ohne Gate-Spannung = sperrend (offener Schalter). So steuern wir das Solenoid.

Alternative: 1-Kanal-Relaismodul (3,3V/5V logik). Eingang wie MOSFET steuern, nur invertierte Logik (LOW = an, HIGH = aus). Code zeigt beide Varianten.

Algorithmus-Flowchart

(Bild im Original) Überblick über Code-Logik. Relais kann jedes Elektroschloss bis 250VAC steuern, auch Solenoid. Codes sind identisch, nur LOW/HIGH zum Öffnen getauscht.

Wichtig beim ersten Flashen: Code hochladen, Passcode ändern, dann Zeilen 62-64 auskommentieren (EEPROM lesen) und neu flashen. Nur einmal nötig!

Codelänge anpassbar: Standard 4 Stellen. sizeof(code) statt fester '4' verwendet. Nicht einfach 4-stellig auf 6-stellig ändern – erst Initial-Code im Quelltext anpassen.

Test

Testbilder im Original (Schritt für Schritt: Standby → Code eingeben → Falsch → Richtig → Öffnen → Code ändern → Neuer Code → Innentaster). Gleich für Solenoid und Relais.

Bei Fragen: Kommentar hinterlassen.

Code

Keypad_doorlock_solenoid.ino (Arduino)

/* 4x4 Keypad, LCD I2C, IRF510N, Taster
 * Öffnen per Code oder Innentaster
 * Code änderbar per Keypad, im EEPROM gespeichert
 * www.surtrtech.com
 */
#include <Keypad.h>
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>

#define Solenoid 11        // Gate des MOSFET
#define O_Button 10        // Innentaster
#define I2C_ADDR 0x27      // I2C-Adresse (scannen!)
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7

const byte numRows = 4;
const byte numCols = 4;
char keymap[numRows][numCols] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

char keypressed;
char code[] = {'6','6','0','1'};       // Default-Code (anpassbar)
char code_buff1[sizeof(code)];
char code_buff2[sizeof(code)];
short a=0, i=0, s=0, j=0;

byte rowPins[numRows] = {9,8,7,6};
byte colPins[numCols] = {5,4,3,2};

LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

void setup() {
  lcd.begin(16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);
  lcd.home();
  lcd.print("Standby");
  pinMode(Solenoid, OUTPUT);
  pinMode(O_Button, INPUT);
  /* ERSTES FLASHEN: auskommentiert lassen!
  for(i=0; i

Keypad_doorlock_relay.ino (Arduino – Relais-Variante)

/* Identisch zur Solenoid-Version, nur:
 * #define Relay 11
 * OpenDoor(): digitalWrite(Relay, LOW); delay(3000); digitalWrite(Relay, HIGH);
 * Innentaster: digitalWrite(Relay, LOW); delay(3000); digitalWrite(Relay, HIGH);
 * (Relais: LOW=an, HIGH=aus)
 */

Schaltpläne

Zwei Schaltplan-Bilder im Original: MOSFET-Variante & Relais-Variante.

Herstellungsprozess

  1. Banktresore: Geschichte, Design und Zukunft der Sicherheit
  2. Smartes Auto-Lock-Türschloss per Smartphone-Bluetooth-Nähe bauen
  3. Multi-Position Temperatursensor-System für Smart-Home-Integration
  4. MotionSense: Smarte Einbruchserkennung mit Arduino & ESP8266
  5. 3D-Drucker Brandschutz: Intelligentes Sensorsicherheitssystem
  6. Sicheres Passwort-Türschloss mit Arduino, Keypad & Linearaktuator
  7. Web-fähigen IoT-Messer mit Arduino, Yaler und IFTTT bauen
  8. Arduino-basierte abstoßende Magnetschwebung: Einfache Schaltung & DIY-Anleitung
  9. Fortgeschrittener ferngesteuerter Greifer-Roboter für präzises Handling
  10. CoroFence Thermaldetektor: PIR-Sensor & IoT-Integration mit Panasonic GridEye