webwinkelkeur logo

4.7 Ø

5139+ Bewertungen
webwinkelkeur logoAlle ansehen

5139+ Bewertungen

5139+ Bewertungen

Bestellen bis 16:00 Uhr für Versand am selben Tag

14 Tage Rückgabe

DE

Privat

Geschäftlich

GPIO-Projekt 11 – Sicherheitssystem mit Tastatur

Anfänger
30 Minuten
114,90

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

  1. 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 .
  2. 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.
  3. 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

  1. Starten Sie Thonny: Klicken Sie auf das Raspberry Pi -Menü > Programmierung > Thonny Python IDE.
  2. 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

  1. Andere Farben: Verwenden Sie verschiedene Kombinationen der RGB-LED, um mehr Feedback zu geben.
  2. Komplexere PIN: Fügen Sie zusätzliche Logik hinzu, um längere oder komplexere PINs zu unterstützen.
  3. Zusätzlicher Alarm: Schließen Sie eine Sirene oder einen anderen Aktor für ein umfassenderes System an.