From 86beb072124bb221c586ec6aecc3d3d294567c28 Mon Sep 17 00:00:00 2001 From: rdkartono Date: Mon, 21 Jul 2025 11:29:58 +0700 Subject: [PATCH] first commit 21/07/2025 --- main.py | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..ea451b5 --- /dev/null +++ b/main.py @@ -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() +