webwinkelkeur logo

4.7 gem.

5101+ beoordelingen
webwinkelkeur logoBekijk alles

5101+ beoordelingen

5101+ beoordelingen

Bestel voor 16:00 voor dezelfde dag verzending

14 dagen retour

NL

Particulier

Zakelijk

GPIO Project 11 - Beveiligingssysteem met Keypad

Beginner
30 Minuten
114,90

In dit project leer je een eenvoudig beveiligingssysteem te bouwen met behulp van een 4x4 keypad, een RGB LED en de GPIO-pinnen van de Raspberry Pi. Dit project gebruikt Python en de Thonny IDE, standaard beschikbaar in Raspberry Pi OS.

Aansluitschema

  1. RGB LED aansluiten:
    • Plaats de RGB LED op het breadboard.
    • Verbind de RGB led met GPIO 17 (rood), GPIO 27 (groen) en GPIO 22 (blauw).
    • Verbind de gemeenschappelijke kathode (lange pin) met GND (pin 6) van de Raspberry Pi.
  2. Keypad aansluiten:
    • Verbind de 4 rijen van het keypad met GPIO 5, 6, 13 en 19.
    • Verbind de 4 kolommen van het keypad met GPIO 12, 16, 20 en 21.
  3. Buzzer aansluiten (optioneel):
    • Verbind de positieve pin van de buzzer met GPIO 18.
    • Verbind de negatieve pin met GND.

Pinout Referentie

Component

GPIO Pin

Physical Pin

RGB RoodGPIO 17Pin 11
RGB GroenGPIO 27Pin 13
RGB BlauwGPIO 22Pin 15
Keypad RijenGPIO 5, 6, 13, 19Pin 29, 31, 33, 35
Keypad KolommenGPIO 12, 16, 20, 21Pin 32, 36, 38, 40
Buzzer (optioneel)GPIO 18Pin 12

Python-code in Thonny

  1. Start Thonny: Klik op het Raspberry Pi-menu > Programmering > Thonny Python IDE.
  2. Schrijf je code: Maak een nieuw bestand in Thonny en voer de volgende code in:
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()

Sla het bestand op: Klik op Bestand > Opslaan als en noem het bestand keypad_security.py.

Voer het script uit: Klik op de groene Run-knop (▶) bovenin de Thonny-interface.

 

Hoe werkt het?

  • Correcte pincode: De RGB LED licht groen op.
  • Foute pincode: De RGB LED licht rood op, en de buzzer (indien aanwezig) piept kort.

Input: Het systeem wacht op een invoer via het keypad en vergelijkt dit met de ingestelde pincode.

Resultaat

Als alles correct is aangesloten en de code draait, werkt het beveiligingssysteem als volgt:

  • Bij een correcte invoer licht de RGB LED groen op.
  • Bij een foute invoer licht de RGB LED rood op, en de buzzer waarschuwt.

Experimenteren

  1. Andere kleuren: Gebruik verschillende combinaties van de RGB LED om meer feedback te geven.
  2. Complexere pincode: Voeg extra logica toe om langere of complexe pincodes te ondersteunen.
  3. Extra alarm: Koppel een sirene of andere actuator voor een uitgebreider systeem.