print("Reverse Parking System")
print ("Date: 2/4/2026")
#import libraries/modules
from machine import Pin, SoftI2C ,PWM
import oled_library
import ultrasonic_library
from utime import sleep
#Pin declaration
oled_pin = SoftI2C(scl = Pin(22) , sda = Pin (21))
TRIG = Pin (26)
ECHO = Pin (27)
red_led = Pin (25, Pin.OUT)
yellow_led = Pin (33, Pin.OUT)
green_led = Pin (32, Pin.OUT)
buzzer = PWM (Pin (16, Pin.OUT))
#object declaration
#required ONLY when external library used
#ObjectName = LibraryName.ClassName (.......)
skrin = oled_library.SSD1306_I2C(width = 128, height = 64, i2c = oled_pin)
reverse = ultrasonic_library.HCSR04(trigger_pin = TRIG, echo_pin = ECHO)
#main program
while True :
#measure nearby object
jarak_dlm_cm = reverse.distance_cm()
#display on terminal
print("object terdekat adalah dalam :", jarak_dlm_cm, "cm")
print (".........................................")
if jarak_dlm_cm >= 200:
skrin.fill(1) #1 for white,0 for black
skrin.text(" LAB 410", 10, 20, col= 0)
skrin.show()
red_led.on()
yellow_led.off()
green_led.off()
elif 100 <= jarak_dlm_cm <= 200:
skrin.fill(1) #1 for white,0 for black
skrin.text(" LAB 410", 10, 20, col= 0)
skrin.text(" THIS IS", 10, 30, col= 0)
skrin.text(" IOT LAB", 10, 40, col= 0)
skrin.show()
red_led.off()
green_led.off()
for i in range (5):
yellow_led.on()
buzzer.freq(1000) #Hz
buzzer.duty(500)
sleep(0.3)
yellow_led.off()
buzzer.freq(1000) #Hz
buzzer.duty(500)
sleep(0.3)
else:
skrin.fill(1) #1 for white,0 for black
skrin.text(" WELCOME TO", 10, 20, col= 0)
skrin.text(" IOT LAB", 10, 30, col= 0)
skrin.text(" HAVE FUN", 10, 40, col= 0)
skrin.show()
red_led.off()
yellow_led.off()
for i in range (5):
green_led.on()
buzzer.freq(1500) #Hz
buzzer.duty(0)
sleep(0.1)
green_led.off()
buzzer.freq(1500) #Hz
buzzer.duty(0)
sleep(0.1)
sleep(1) #system delay