from picozero import Servo
from keypad import Keypad
from machine import Pin
import time
ledgn = Pin(10, Pin.OUT)
ledrt = Pin(11, Pin.OUT)
a12 =Pin(12, Pin.OUT)
servo = Servo(13)
# Konfiguration des Passwortes
secretCode = '1234'
isLocked = True # Status gesperrt setzen
inbuffer = "----" # Reihenfolge der Tastenschläge speichern
def keyPressed(keyValue):
global isLocked, inbuffer # Verwendung globaler Variablen
if isLocked:
if keyValue == '#': # Eingabe nach PW um zu entsperren
if inbuffer == secretCode: # Wenn Code richtig ist
isLocked = False
print(" - Richtig, öffnen")
ledgn.on()
a12.on()
servo.max()
time.sleep(3)
#isLocked = True
ledgn.off()
a12.off()
#servo.mid()
else:
print(" - Falsche Eingabe")
ledrt.on()
time.sleep(2)
ledrt.off()
inbuffer = "----" # Puffer zurücksentzen
else: # Bei Falscheingabe, neuer Versuch
inbuffer = inbuffer[1:] + keyValue # Verschiebung Puffer für neue Eingabe
print(keyValue, end="") # Betätigte Tasten anzeigen
elif keyValue == '*': # Wenn entsperrt ist, "*" drücken um erneut zu sperren
isLocked = True
print("Warte auf Eingabe")
servo.mid()
# Konfigurieren der Tastatur mit den richtigen Pins und der Rückruffunktion
kp = Keypad(rows=(Pin(2), Pin(3), Pin(4), Pin(5)),
columns=(Pin(6), Pin(7), Pin(8), Pin(9)),
callback=keyPressed)
#Erststatusanzeige
print("Code eingeben")
while True:
time.sleep(0.1) #Verzögerung, um zu vermeiden, dass zu viele Ressourcen verwendet werden