import time
import machine
import utime
import tm1637
trig_pin = machine.Pin(3, machine.Pin.OUT)
echo_pin = machine.Pin(22, machine.Pin.IN)
red_led_pin = machine.Pin(9, machine.Pin.OUT)
yellow_led_pin = machine.Pin(18, machine.Pin.OUT)
green_led_pin = machine.Pin(20, machine.Pin.OUT)
clk = machine.Pin(18)
data = machine.Pin(19)
display = tm1637.TM1637(clk, data)
# Buzzer pin
buzzer_pin = machine.Pin(22, machine.Pin.OUT)
def read_distance():
trig_pin.value(1)
utime.sleep_us(1)
trig_pin.value(0)
t1 = time.ticks_us()
while echo_pin.value() == 0:
pass
t2 = time.ticks_us()
duration = t2 - t1
distance = duration * 0.000034 / 2
return distance
def display_height(height):
height_str = str(int(height))
if red_led_pin.value() == 1:
indicator_message = "BAhaya"
elif yellow_led_pin.value() == 1:
indicator_message = "Waspada"
else:
indicator_message = "aman"
display.scroll(indicator_message)
red_led_pin.value(0)
yellow_led_pin.value(0)
green_led_pin.value(0)
if height >= 30:
red_led_pin.value(1)
elif height >= 20:
yellow_led_pin.value(1)
else:
green_led_pin.value(1)
control_buzzer(height)
def control_buzzer(height):
if height < 10:
buzzer_pin.value(1)
else:
buzzer_pin.value(0)
while True:
distance = read_distance()
height = distance
display_height(height)
control_buzzer(height)
time.sleep(1)