print("Hello, ULTRASONIC")
print("Date: 28/11/2023")
print('Created by AHH')
#Import all libraries
import ultrasonic_library
from machine import Pin, PWM, SoftI2C
from utime import sleep
import oled_library
#Pin Declaration
TRIG_pin = Pin(13, Pin.IN)
ECHO_pin = Pin(12, Pin.OUT)
yellow_led = Pin (15, Pin.OUT)
red_led = Pin (2, Pin.OUT)
Buzzer_Pin = Pin (14, Pin.OUT)
Pin_scl_sda = SoftI2C (scl=Pin (22), sda=Pin (21))
# Create an object name for sensors with libraries. Object_name = LIBRARIES.CLASSNAME
Teega = ultrasonic_library.HCSR04(trigger_pin=TRIG_pin, echo_pin=ECHO_pin)
Mavis = oled_library.SSD1306_I2C(width=128, height=64, i2c=Pin_scl_sda)
#Main program
while True:
#ULTRASONIC PART
print ("\n===== LET'S MEASURE AN INCOMING OBJECT =====\n")
distance_in_mm = Teega.distance_mm()
print ('An incoming object is within --> ', distance_in_mm, "mm")
distance_in_cm = Teega.distance_cm()
print ('An incoming object is within --> ', distance_in_cm, "cm")
for a in range (5):
yellow_led.on()
red_led.on()
sleep(0.5)
yellow_led.off()
red_led.off()
sleep(0.3)
#BUZZER PART
for X in range (5):
sound_buzzer = PWM (Buzzer_Pin, freq = 1200, duty = 50)
sleep(0.5)
sound_buzzer = PWM (Buzzer_Pin, freq = 1200, duty = 0)
sleep(1)
#OLED PART
Mavis.fill(0) # 0 - for BLACK, 1 for WHITE
Mavis.text (str(distance_in_mm), 0,10,1)
Mavis.text (str(distance_in_cm),10,30,1)
Mavis.show() #A must!
sleep (2) #In every 2sec, ultrasonic will recheck distance