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)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT