print("Making Ultrasonic working")
print("By: Izzat Haziq Bin Hazrin")
print("Date: 22/4/2024")
#import library
import ultrasonic_library
from machine import Pin
from machine import Pin,PWM
from machine import Pin,SoftI2C
from utime import sleep
import OLED_library
#pin declaration
TRIG = Pin(33)
ECHO = Pin(32)
Buzzer = PWM(Pin(18,Pin.OUT))
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
#paramater declaration
#create an object name : name = library_name.class_name(.....) (OOP)
sensor_parking = ultrasonic_library.HCSR04(trigger_pin=TRIG, echo_pin=ECHO, echo_timeout_us=500*2*30)
display = OLED_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin, external_vcc=False)
#main program
while True:
distance_mm = sensor_parking.distance_mm()
distance_cm = sensor_parking.distance_cm()
print("Baki jarak dari dinding adalah", distance_cm, "cm")
print("Baki jarak dari dinding adalah", distance_mm, "mm")
if distance_cm >= 200:
Buzzer.init(freq=500 ,duty=0)
display.fill(1)
display.text('STILL JAUH LAGI', x=5, y=20, col=0)
display.text("dist:", x=5 , y=40 , col=0)
display.text("cm", x=110 , y=40 , col=0)
display.text(str(distance_cm), x=45, y=40, col=0)
display.show()
elif 100 < distance_cm <200:
for i in range (3):
Buzzer.init(freq=500 ,duty=50)
sleep (1)
Buzzer.init(freq=500 ,duty=0)
sleep(1)
display.fill(1)
display.text('BE CAREFUL PLS', x=5, y=20, col=0)
display.show()
else:
for i in range (5):
Buzzer.init(freq=500 ,duty=50)
sleep(0.5)
Buzzer.init(freq=500 ,duty=0)
sleep(0.5)
display.fill(1)
display.text('MU DOK BREK', x=5, y=20, col=0)
display.show()
sleep(1)