print("This is the program for Car Reverse Sensor System")
print("By Afiq Farhan for IoT BEB34303")
#STEP 1: IMPORT MODULES/LIBRARY FOR ULTRASONIC SENSOR, OLED LIBRARY AND OLED DISPLAY
import hsrc04 #import ultrasonic library
import sdl1306 #import OLED library
from machine import SoftI2C, PWM, Pin
from time import sleep
#STEP 2: DECLARE CONNECTION
#STEP 2.1: ULTRASONIC SENSOR
ultrasonic_sensor = hsrc04(trigger_pin=26, echo_pin=27, echo_timeout_us=500*2*30)
#STEP 2.2: OLED DISPLAY
oled_display = SoftI2C (scl=Pin(22), sda=Pin(22))
oled_width = 128
oled_height + 64
oled=ssd1306.SSD1306_I2C(oled_width, oled_height, oled_display)
#STEP 2.3: BUZZER
buzzer+PWM(Pin(23), Pin.OUT)
#STEP 3: PROCESS
while True:
#for Ultrasonic sensor on the terminal
distance_in_cm = ultrasonic_sensor.distance_cm()
distance_in_mm = ultrasonic_sensor.distance_mm()
print('An object is detected in: ', distance_in_cm, 'cm')
print('An object is detected in: ', distance_in_mm, 'mm')
#to display the distance on OLED
oled.fill(1)
oled.text('Object detected: ',3,0,0)
oled.text(str(distance_in_cm),5,20,0) #Display in cm
oled.text('cm',75,20,0)
oled.text(str(distance_in_mm),5,40,0) #Display in mm
oled.text('mm',75,40,0)
oled.show()
#Check the range
if distance_in_cm<50
for i in range(100):
buzzer.init(freq=1400, duty=400)
sleep(0.5)
buzzer.init(freq=1, duty=0)
sleep(0.5)
elif 50<distance_in_cm<150
for i in range(100):
buzzer.init(freq=1400, duty=400)
sleep(1)
buzzer.init(freq=1, duty=0)
sleep(1)
else
buzzer.init(freq=1, duty=0)
sleep(5)