GPIO-Projekt 11 – Sicherheitssystem mit Tastatur
In diesem Projekt lernen Sie, wie Sie mit einem 4x4-Tastenfeld, einer RGB-LED und den GPIO -Pins des Raspberry Pi ein einfaches Sicherheitssystem bauen . Dieses Projekt verwendet Python und die Thonny IDE, die standardmäßig im Raspberry Pi -Betriebssystem verfügbar ist.
Anschlussplan
- RGB-LED anschließen:
- Platzieren Sie die RGB-LED auf dem Steckbrett.
- Verbinden Sie die RGB-LED mit GPIO 17 (rot), GPIO 27 (grün) und GPIO 22 (blau).
- Verbinden Sie die gemeinsame Kathode (langer Pin) mit GND (Pin 6) des Raspberry Pi .
- Anschluss der Tastatur:
- Verbinden Sie die 4 Reihen des Tastenfelds mit GPIO 5, 6, 13 und 19.
- Verbinden Sie die 4 Spalten des Tastenfelds mit GPIO 12, 16, 20 und 21.
- Anschluss des Summers (optional):
- Verbinden Sie den Pluspol des Summers mit GPIO 18.
- Verbinden Sie den Minuspol mit GND.

Pinbelegungsreferenz
Komponente | GPIO-Pin | Physischer Pin |
| RGB Rot | GPIO 17 | Stift 11 |
| RGB Grün | GPIO 27 | Stift 13 |
| RGB Blau | GPIO 22 | Stift 15 |
| Tastenfeldzeilen | GPIO 5, 6, 13, 19 | Stift 29, 31, 33, 35 |
| Tastaturspalten | GPIO 12, 16, 20, 21 | Stift 32, 36, 38, 40 |
| Summer (optional) | GPIO 18 | Stift 12 |
Python-Code in Thonny
- Starten Sie Thonny: Klicken Sie auf das Raspberry Pi -Menü > Programmierung > Thonny Python IDE.
- Schreiben Sie Ihren Code: Erstellen Sie eine neue Datei in Thonny und geben Sie den folgenden Code ein:
import RPi.GPIO as GPIO
from time import sleep
# Pin-definities
RED_PIN = 17
GREEN_PIN = 27
BLUE_PIN = 22
BUZZER_PIN = 18
ROWS = [5, 6, 13, 19] # GPIO-pinnen voor rijen
COLS = [12, 16, 20, 21] # GPIO-pinnen voor kolommen
# Keypad lay-out
KEYS = [
['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']
]
PINCODE = "1234" # Stel de gewenste pincode in
# GPIO setup
GPIO.setmode(GPIO.BCM)
GPIO.setup([RED_PIN, GREEN_PIN, BLUE_PIN, BUZZER_PIN], GPIO.OUT)
for row_pin in ROWS:
GPIO.setup(row_pin, GPIO.OUT)
GPIO.output(row_pin, GPIO.LOW)
for col_pin in COLS:
GPIO.setup(col_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
def set_color(r, g, b):
"""Stelt de kleur van de RGB LED in."""
GPIO.output(RED_PIN, r)
GPIO.output(GREEN_PIN, g)
GPIO.output(BLUE_PIN, b)
def read_key():
"""Leest een toets van het 4x4 Keypad."""
for row_num, row_pin in enumerate(ROWS):
GPIO.output(row_pin, GPIO.HIGH)
for col_num, col_pin in enumerate(COLS):
if GPIO.input(col_pin) == GPIO.HIGH:
GPIO.output(row_pin, GPIO.LOW)
return KEYS[row_num][col_num]
GPIO.output(row_pin, GPIO.LOW)
return None
try:
while True:
print("Voer de pincode in:")
input_code = "" # Variabele wordt hier correct gedefinieerd als lege string
# Lees de pincode van het keypad
while len(input_code) < len(PINCODE):
key = read_key()
if key:
print(f"Toets ingedrukt: {key}")
if key in ['*', '#', 'A', 'B', 'C', 'D']:
print("Speciale toets genegeerd.")
continue
input_code += key # Voeg de toets toe aan de pincode
sleep(0.3) # Voor debounce
# Controleer de ingevoerde code
if input_code == PINCODE:
print("Correcte pincode!")
set_color(0, 1, 0) # Groen
else:
print("Foute pincode!")
set_color(1, 0, 0) # Rood
GPIO.output(BUZZER_PIN, GPIO.HIGH)
sleep(0.5)
GPIO.output(BUZZER_PIN, GPIO.LOW)
sleep(2)
set_color(0, 0, 0) # LED uit
except KeyboardInterrupt:
print("Programma gestopt.")
finally:
GPIO.cleanup()
Speichern Sie die Datei: Klicken Sie auf Datei > Speichern unter und nennen Sie die Datei keypad_security.py .
Führen Sie das Skript aus: Klicken Sie oben in der Thonny-Benutzeroberfläche auf die grüne Schaltfläche „Ausführen“ (▶).
Wie funktioniert es?
- Richtiger PIN-Code: Die RGB-LED leuchtet grün.
- Falscher PIN-Code: Die RGB-LED leuchtet rot und der Summer (falls vorhanden) piept kurz.
Eingabe: Das System wartet auf eine Eingabe über die Tastatur und vergleicht diese mit dem eingestellten PIN-Code.
Ergebnis
Wenn alles richtig angeschlossen ist und der Code läuft, funktioniert das Sicherheitssystem wie folgt:
- Bei korrekter Eingabe leuchtet die RGB-LED grün.
- Bei einer Fehleingabe leuchtet die RGB-LED rot und der Summer warnt.
Experimentieren
- Andere Farben: Verwenden Sie verschiedene Kombinationen der RGB-LED, um mehr Feedback zu geben.
- Komplexere PIN: Fügen Sie zusätzliche Logik hinzu, um längere oder komplexere PINs zu unterstützen.
- Zusätzlicher Alarm: Schließen Sie eine Sirene oder einen anderen Aktor für ein umfassenderes System an.

