import machine
from utime import sleep_us ,ticks_us ,sleep ,ticks_diff ,ticks_ms
from machine import Pin
from picozero import Speaker
#-------Ultrasonic sensor------
trig1 = Pin (2, Pin.OUT)
echo1 = Pin (3, Pin.IN)
#------led pin ----------------
led_red = Pin(10,Pin.OUT)
led_blue = Pin(11,Pin.OUT)
led_green = Pin(12,Pin.OUT)
buzzer = Speaker(5)
button = Pin(21,Pin.IN,Pin.PULL_UP)
#------Measureing distance-----
def dis1():
timet1 = 0
trig1.low()
sleep_us(2)
trig1.high()
sleep_us(5)
trig1.low()
while echo1.value() == 0:
signal1off = ticks_us()
while echo1.value() == 1:
signal1on = ticks_us()
timet1 = signal1on - signal1off
return timet1
#----- clock set buzzer (30 mins interval)-----
start_time = None
time_limit = 30 * 60 * 1000
#----main loop--------
while True:
time1 = dis1()
sleep(1)
cm1 = time1 * 0.034 / 2
print ("Distance : ", cm1, "cm")
if cm1 < 10:
led_red.value(0)
led_blue.value(1)
led_green.value(1)
if start_time is None:
for i in range(5):
buzzer.on()
sleep(1)
buzzer.off()
sleep(1)
start_time = ticks_ms() #reads the current (start counting)
elapsed_time = ticks_diff(ticks_ms(), start_time)
# If the distance has been less than 10 cm for 10 minutes (600,000 ms)
if elapsed_time >= time_limit:
# The condition cm1 < 10 has been true for 10 minutes, run your code
for i in range(40):
buzzer.on()
sleep(1)
buzzer.off()
sleep(1)
start_time = ticks_ms()
elif cm1 > 10 and cm1 < 40:
led_blue.value(1)
led_red.value(0)
led_green.value(0)
elif cm1 > 40 and cm1 < 70:
led_blue.value(0)
led_red.value(1)
led_green.value(1)
else:
led_green.value(0)
led_blue.value(1)
led_red.value(1)