print("\nPRACTICAL TEST")
print("Created By : MUHAMMAD ASYRAAF BIN ASRI")
print("Date: 29/4/2024")
print("Group: L01-B01")
#Import libraries/modules
from machine import Pin, SoftI2C
from utime import sleep
import oled_left_library, oled_right_library, oled_center_library
#Pin declaration
left_red_led = Pin(14,Pin.OUT)
left_yellow_led = Pin(12,Pin.OUT)
left_green_led = Pin(13,Pin.OUT)
right_red_led = Pin(5,Pin.OUT)
right_yellow_led = Pin(4,Pin.OUT)
right_green_led = Pin(2,Pin.OUT)
center_red_led = Pin(26,Pin.OUT)
center_yellow_led = Pin(25,Pin.OUT)
center_green_led = Pin(33,Pin.OUT)
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
PIR_left = Pin(27,Pin.IN)
PIR_right = Pin(18,Pin.IN)
PIR_center = Pin(19,Pin.IN)
#Parameter declaration
#Create an OBJECT name for module with library
left_screen = oled_left_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
right_screen = oled_right_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
center_screen = oled_center_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
#main program
while True:
motion_status = PIR_left.value()
print("The motion status is",motion_status)
if motion_status == True: # left traffic light
left_green_led.on()
right_red_led.on()
center_red_led.on()
sleep(2)
left_green_led.off()
right_red_led.off()
center_red_led.off()
motion_status = PIR_right.value()
print("The motion status is",motion_status)
if motion_status == True: # right traffic light
left_red_led.on()
right_green_led.on()
center_red_led.on()
sleep(2)
left_red_led.off()
right_green_led.off()
center_red_led.off()
motion_status = PIR_center.value()
print("The motion status is",motion_status)
if motion_status == True: # center traffic light
left_red_led.on()
right_red_led.on()
center_green_led.on()
sleep(2)
left_red_led.off()
right_red_led.off()
center_green_led.off()
else:
left_red_led.on() # right traffic light
right_green_led.on()
center_red_led.on()
right_screen.fill(0)
right_screen.text("GO!", 40, 30, 1)
right_screen.show()
sleep(1)
left_red_led.off()
right_green_led.off()
center_red_led.off()
right_screen.fill(0)
right_screen.text("STOP!", 40, 30, 1)
right_screen.show()
sleep(1)
right_yellow_led.on()
sleep(1)
right_screen.fill(0)
right_screen.text("WAIT!", 40, 30, 1)
right_screen.show()
right_yellow_led.off()
sleep(1)
left_green_led.on() # left traffic light
right_red_led.on()
center_red_led.on()
left_screen.fill(0)
left_screen.text("GO!", 40, 30, 1)
left_screen.show()
sleep(1)
left_green_led.off()
right_red_led.off()
center_red_led.off()
left_screen.fill(0)
left_screen.text("STOP!", 40, 30, 1)
left_screen.show()
sleep(1)
left_yellow_led.on()
sleep(1)
left_screen.fill(0)
left_screen.text("WAIT!", 40, 30, 1)
left_screen.show()
left_yellow_led.off()
sleep(1)
left_red_led.on() # center traffic light
right_red_led.on()
center_green_led.on()
center_screen.fill(0)
center_screen.text("GO!", 40, 30, 1)
center_screen.show()
sleep(1)
left_red_led.off()
right_red_led.off()
center_green_led.off()
center_screen.fill(0)
center_screen.text("STOP!", 40, 30, 1)
center_screen.show()
sleep(1)
center_yellow_led.on()
sleep(1)
center_screen.fill(0)
center_screen.text("WAIT!", 40, 30, 1)
center_screen.show()
center_yellow_led.off()
sleep(1)
#screen.fill(0)
#screen.text("STOP!", 40, 30, 1)
#screen.show()
while True:
motion_status1 = PIR_left.value()
print("The motion status is",motion_status1)
motion_status2 = PIR_right.value()
print("The motion status is",motion_status2)
motion_status3 = PIR_center.value()
print("The motion status is",motion_status3)
if motion_status1 == True: # left traffic light
left_green_led.on()
right_red_led.on()
center_red_led.on()
left_screen.fill(0)
left_screen.text("GO!", 40, 30, 1)
left_screen.show()
sleep(1)
left_green_led.off()
right_red_led.off()
center_red_led.off()
left_screen.fill(0)
left_screen.text("STOP!", 40, 30, 1)
left_screen.show()
sleep(1)
left_yellow_led.on()
sleep(1)
left_screen.fill(0)
left_screen.text("WAIT!", 40, 30, 1)
left_screen.show()
left_yellow_led.off()
sleep(1)
elif motion_status2 == True: # right traffic light
left_red_led.on()
right_green_led.on()
center_red_led.on()
right_screen.fill(0)
right_screen.text("GO!", 40, 30, 1)
right_screen.show()
sleep(1)
left_red_led.off()
right_green_led.off()
center_red_led.off()
right_screen.fill(0)
right_screen.text("STOP!", 40, 30, 1)
right_screen.show()
sleep(1)
right_yellow_led.on()
sleep(1)
right_screen.fill(0)
right_screen.text("WAIT!", 40, 30, 1)
right_screen.show()
right_yellow_led.off()
sleep(1)
elif motion_status3 == True: # center traffic light
left_red_led.on() # center traffic light
right_red_led.on()
center_green_led.on()
center_screen.fill(0)
center_screen.text("GO!", 40, 30, 1)
center_screen.show()
sleep(1)
left_red_led.off()
right_red_led.off()
center_green_led.off()
center_screen.fill(0)
center_screen.text("STOP!", 40, 30, 1)
center_screen.show()
sleep(1)
center_yellow_led.on()
sleep(1)
center_screen.fill(0)
center_screen.text("WAIT!", 40, 30, 1)
center_screen.show()
center_yellow_led.off()
sleep(1)
else:
sleep(2)
#....................................................................................
print("\nPRACTICAL TEST")
print("Created By : MUHAMMAD ASYRAAF BIN ASRI")
print("Date: 29/4/2024")
print("Group: L01-B01")
#Import libraries/modules
from machine import Pin, SoftI2C
from utime import sleep
import oled_left_library, oled_right_library
#Pin declaration
left_red_led = Pin(14,Pin.OUT)
left_yellow_led = Pin(12,Pin.OUT)
left_green_led = Pin(13,Pin.OUT)
right_red_led = Pin(5,Pin.OUT)
right_yellow_led = Pin(4,Pin.OUT)
right_green_led = Pin(2,Pin.OUT)
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
PIR_left = Pin(27,Pin.IN)
PIR_right = Pin(18,Pin.IN)
pins=[Pin(22, Pin.OUT),Pin(19, Pin.OUT),Pin(25, Pin.OUT),Pin(26, Pin.OUT),
Pin(33, Pin.OUT),Pin(32, Pin.OUT),Pin(21, Pin.OUT)]
#Parameter declaration
#Create an OBJECT name for module with library
left_screen = oled_left_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
right_screen = oled_right_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
digit0=[0,0,0,0,0,0,1]
digit1=[1,0,0,1,1,1,1]
digit2=[0,0,1,0,0,1,0]
digit3=[0,0,0,0,1,1,0]
digit4=[1,0,0,1,1,0,0]
digit5=[0,1,0,0,1,0,0]
digit6=[0,1,0,0,0,0,0]
digit7=[0,0,0,1,1,1,1]
digit8=[0,0,0,0,0,0,0]
digit9=[0,0,0,0,1,0,0]
#main program
while True:
motion_status1 = PIR_left.value()
print("The motion status is",motion_status1)
motion_status2 = PIR_right.value()
print("The motion status is",motion_status2)
if motion_status1 == True: # left traffic light
print("Left traffic light activated")
left_green_led.on()
right_red_led.on()
sleep(2)
left_green_led.off()
right_red_led.off()
sleep(1)
left_yellow_led.on()
sleep(1)
left_yellow_led.off()
sleep(1)
elif motion_status2 == True: # right traffic light
print("Right traffic light activated")
left_red_led.on()
right_green_led.on()
for j in range(7):
pins[j].value(digit0[j])
sleep(1)
for j in range(7):
pins[j].value(digit1[j])
sleep(1)
for j in range(7):
pins[j].value(digit2[j])
sleep(1)
for j in range(7):
pins[j].value(digit3[j])
sleep(1)
for j in range(7):
pins[j].value(digit4[j])
sleep(1)
for j in range(7):
pins[j].value(digit5[j])
sleep(1)
for j in range(7):
pins[j].value(digit6[j])
sleep(1)
for j in range(7):
pins[j].value(digit7[j])
sleep(1)
for j in range(7):
pins[j].value(digit8[j])
sleep(1)
for j in range(7):
pins[j].value(digit9[j])
sleep(2)
left_red_led.off()
right_green_led.off()
sleep(1)
right_yellow_led.on()
sleep(1)
right_yellow_led.off()
sleep(1)
else:
left_green_led.on() # left traffic light
right_red_led.on()
sleep(1)
left_green_led.off()
right_red_led.off()
sleep(1)
left_yellow_led.on()
sleep(1)
left_yellow_led.off()
sleep(1)
left_red_led.on() # right traffic light
right_green_led.on()
sleep(1)
left_red_led.off()
right_green_led.off()
sleep(1)
right_yellow_led.on()
sleep(1)
right_yellow_led.off()
sleep(1)
sleep(2)
#...........................................
screen.fill(0)
screen.text("WAIT", 20, 30, 1)
screen.show()
#---------------------------------------------------------------
for a in range (1):
green_led.on()
screen.fill(0)
screen.text("GO", 20, 30, 1)
screen.show()
sleep(2)
green_led.off()
sleep(2)
yellow_led.on()
screen.fill(0)
screen.text("WAIT", 20, 30, 1)
screen.show()
sleep(1)
yellow_led.off()
sleep(1)
red_led.on()
screen.fill(0)
screen.text("STOP", 20, 30, 1)
screen.show()
sleep(2)
red_led.off()
sleep(2)
#main program
while True:
distance_in_cm = sensor.distance_cm()
motion_status = PIR_pin.value() #.value (read digital value (1 or 0))
print("The motion status is",motion_status)
if motion_status == True:
for a in range (1):
gate.move(angle=90)
sleep(3)
elif 50 <= distance_in_cm <= 200:
for i in range (1):
Green_led.off()
Red_led.on()
screen.fill(0)
screen.text("sound 2", 30, 0, 1)
screen.text(str(distance_in_cm), 5, 30, 1)
screen.text("cm", 70, 30, 1)
screen.show()
elif distance_in_cm > 200:
for i in range (1):
Green_led.on()
Red_led.off()
screen.fill(0)
screen.text("sound 2", 30, 0, 1)
screen.text(str(distance_in_cm), 5, 30, 1)
screen.text("cm", 70, 30, 1)
screen.show()
Loading
esp32-devkit-v1
esp32-devkit-v1