first commit 21/07/2025
This commit is contained in:
100
main.py
Normal file
100
main.py
Normal file
@@ -0,0 +1,100 @@
|
||||
from machine import Pin
|
||||
from time import sleep
|
||||
import sys
|
||||
|
||||
# Pin definition
|
||||
R1 = Pin(14, Pin.OUT)
|
||||
R2 = Pin(13, Pin.OUT)
|
||||
R3 = Pin(12, Pin.OUT)
|
||||
R4 = Pin(11, Pin.OUT)
|
||||
R5 = Pin(10, Pin.OUT)
|
||||
|
||||
# State definition
|
||||
# untuk kondisi active low atau active high
|
||||
ON = 0
|
||||
OFF = 1
|
||||
|
||||
def relay_control(id, isON):
|
||||
if id == 1 :
|
||||
R1.value(ON if isON else OFF)
|
||||
print("R1","ON" if isON else "OFF")
|
||||
elif id==2 :
|
||||
R2.value(ON if isON else OFF)
|
||||
print("R2","ON" if isON else "OFF")
|
||||
elif id==3 :
|
||||
R3.value(ON if isON else OFF)
|
||||
print("R3","ON" if isON else "OFF")
|
||||
elif id==4 :
|
||||
R4.value(ON if isON else OFF)
|
||||
print("R4","ON" if isON else "OFF")
|
||||
elif id==5 :
|
||||
R5.value(ON if isON else OFF)
|
||||
print("R5","ON" if isON else "OFF")
|
||||
else:
|
||||
print("Invalid ID")
|
||||
|
||||
def all_on():
|
||||
for i in range(1,6): # 1..5
|
||||
relay_control(i,True)
|
||||
|
||||
def all_off():
|
||||
for i in range(1,6): # 1..5
|
||||
relay_control(i,False)
|
||||
|
||||
def init_relay():
|
||||
# first boot
|
||||
all_off()
|
||||
|
||||
# nyalain satu per satu dengan interval 5 detik
|
||||
sleep(5)
|
||||
for i in range(1,6): # 1 .. 5
|
||||
relay_control(i,True)
|
||||
sleep(5)
|
||||
|
||||
init_relay()
|
||||
|
||||
while True:
|
||||
line = sys.stdin.readline() # reads until \n
|
||||
if not line:
|
||||
# nothing received
|
||||
sleep(0.01)
|
||||
continue
|
||||
cmd = line.strip().upper()
|
||||
|
||||
# valid command Rx=ON for ON
|
||||
# valid command Rx=OFF for OFF
|
||||
|
||||
if len(cmd) < 5 :
|
||||
# so minimum cmd length is 5 bytes
|
||||
continue
|
||||
if len(cmd) > 6 :
|
||||
# so maximum cmd length is 6 bytes
|
||||
continue
|
||||
|
||||
if cmd == "RX=ON":
|
||||
all_on()
|
||||
elif cmd == "RX=OFF":
|
||||
all_off()
|
||||
elif cmd == "R1=ON":
|
||||
relay_control(1,True)
|
||||
elif cmd == "R1=OFF":
|
||||
relay_control(1,False)
|
||||
elif cmd == "R2=ON":
|
||||
relay_control(2,True)
|
||||
elif cmd == "R2=OFF":
|
||||
relay_control(2,False)
|
||||
elif cmd == "R3=ON":
|
||||
relay_control(3,True)
|
||||
elif cmd == "R3=OFF":
|
||||
relay_control(3,False)
|
||||
elif cmd == "R4=ON":
|
||||
relay_control(4,True)
|
||||
elif cmd == "R4=OFF":
|
||||
relay_control(4,False)
|
||||
elif cmd == "R5=ON":
|
||||
relay_control(5,True)
|
||||
elif cmd == "R5=OFF":
|
||||
relay_control(5,False)
|
||||
elif cmd == "REINIT":
|
||||
init_relay()
|
||||
|
||||
Reference in New Issue
Block a user