print("THIS PROJECT FOR REVERSE CAR SYSTEM THAT INTEGRATE BETWEEN ESP32, ULTRASONIC SENSOR, OLED AND BUZZER")
# import library ultra sonic,oled,pwm,time
import hcsr04 #ultrasonis sensor
import ssd1306 # import oled library
from machine import SoftI2C,Pin,PWM, # pmw = Pulse Width Modulation
from time import sleep
#step 2 : DECLARE CONNECTION PIN USING OOP
# : FOR ULTRASONIC SENSOR
ultrasonic_sensor=hcsr04.HCSR04(trigger_pin=5,echo_pin=18,echo_timeout_us=500*2*30) #500 is speed of sound in micro second, 2 is factor use because ultrasonic sensor, 30 safety
#STEP 2 = OLED
i2c_oleddisplay = SoftI2C(scl=Pin(19), sda=Pin(21))
oled_width=128
oled_height=64
oled=ssd1306.SSD1306_I2C(oled_width,oled_height,i2c_oleddisplay)
#STEP 2 = BUZZER USING OOP
buzzer=PWM(Pin(17),Pin.OUT)
led = Pin(27,Pin.OUT)
led2 = Pin(25,Pin.OUT)
SW1 = Pin(2,Pin.IN)
#LED AND LED
#STEP 3 PROSES
while True:
#for ultrasonic sensor on 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')
#for oled display distance
#check the distance
if distance_in_cm <250:
for i in range(100):
oled.fill(1) #1 mean line number 1
oled.text("YOU MAY ENTER ", 4,30,0)
oled.show()
led.off()
buzzer.init(freq=1703,duty=400)
sleep(0.5)
buzzer.init(freq=1,duty=0)
sleep(0.5)
elif 50<=distance_in_cm>250:
for i in range (100):
oled.fill(1) #1 mean line number 1
oled.text("WELCOME ", 5,40,0)
oled.show()
led.on()
buzzer.init(freq=1,duty=0)
if SW1.value()==1:
led2.on()
else:
buzzer.init(freq=1,duty=0)
sleep(5)