print("let's use ultrasonic")
print("Date : 22/11/2023")
print("Created by Louis")
#4 steps to do before usig OLED display
#1 import OLED library & I2C lib
#2 Declare the I2C pin --> SCL and SDA
#3 Create an object name for your OLED screen
#4 you can use your OLED screen
#import librairies
from machine import Pin, PWM, SoftI2C
from time import sleep
import hcsr04
import oledLib
#Pin declaration
Trig = Pin(12)
Echo = Pin(14)
Red_LED = Pin(27, Pin.OUT)
Blue_LED = Pin(26, Pin.OUT)
Green_LED = Pin(25, Pin.OUT)
Buzzer = Pin(4, Pin.OUT)
# ESP32 Pin assignment
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
skrin = oledLib.SSD1306_I2C(oled_width, oled_height, i2c)
#Create an object name for sensors with librairies Object_name = library_name.
sonic = hcsr04.HCSR04(trigger_pin=Trig, echo_pin=Echo)
#main
while True:
print("\n====== LET'S MEASURE AN INCOMING OBJECT=====\n")
jarak_in_mm = sonic.distance_mm()
print("An incoming object is within ==> ", jarak_in_mm, "mm, mefiez vous !")
jarak_in_cm = sonic.distance_cm()
print("An incoming object is within ==> ", jarak_in_cm, "cm, mefiez vous !")
if(jarak_in_mm < 500):
Red_LED.on()
Blue_LED.on()
Green_LED.on()
#oled display
skrin.fill(1) #0 for black and 1 for white
skrin.text(str(jarak_in_mm), 15, 30, 0)
skrin.show()
#buzzer part
for b in range (5):
sound_buzzer = PWM(Buzzer, freq = 15000, duty = 50)
sleep(.2)
sound_buzzer = PWM(Buzzer, freq = 15000, duty = 0)
sleep(.2)
elif(jarak_in_mm < 1000):
Blue_LED.on()
Green_LED.on()
Red_LED.off()
sound_buzzer = PWM(Buzzer, freq = 262, duty = 0)
elif(jarak_in_mm < 2000):
Green_LED.on()
Red_LED.off()
Blue_LED.off()
sound_buzzer = PWM(Buzzer, freq = 262, duty = 0)
else:
Red_LED.off()
Blue_LED.off()
Green_LED.off()
sound_buzzer = PWM(Buzzer, freq = 262, duty = 0)
sleep(2)