from machine import Pin
import time
from lcd import *
from keypad import Keypad
lcd_init()
S0 = Pin( 27, Pin.OUT)
S1 = Pin(14 , Pin.OUT)
DEMUX = Pin(12 , Pin.OUT)
row_pins = [
Pin( 15, Pin.IN, Pin.PULL_UP),
Pin( 2, Pin.IN, Pin.PULL_UP),
Pin( 0, Pin.IN, Pin.PULL_UP),
Pin( 4, Pin.IN, Pin.PULL_UP)
]
column_pins = [
Pin(16 , Pin.OUT),
Pin( 17, Pin.OUT),
Pin( 5, Pin.OUT),
Pin( 18, Pin.OUT)
]
keys = [
["1", "2", "3", "A"],
["4", "5", "6", "B"],
["7", "8", "9", "C"],
["*", "0", "#", "D"]
]
keypad = Keypad(row_pins, column_pins, keys)
selected = 0
S0.value(0)
S1.value(0)
DEMUX.value(0)
lcd_print("Smart Home")
time.sleep(1)
lcd_clear()
while True:
key = keypad.read_keypad()
if key is not None:
if key == "1":
selected = 1
S0.value(0)
S1.value(0)
lcd_print("Light")
elif key == "2":
selected = 2
S0.value(1)
S1.value(0)
lcd_print("Fan")
elif key == "3":
selected = 3
S0.value(0)
S1.value(1)
lcd_print("Door")
elif key == "4":
selected = 4
S0.value(1)
S1.value(1)
lcd_print("Alarm")
elif key == "A":
if selected != 0:
DEMUX.value(1)
lcd_print("Status: ON")
elif key == "B":
if selected != 0:
DEMUX.value(0)
lcd_print("Status: OFF")
elif key == "D":
selected = 0
S0.value(0)
S1.value(0)
DEMUX.value(0)
lcd_print("Reset")
time.sleep(1)
lcd_clear()
time.sleep(0.25)