'THIS PROJECT WILL INTEGRATE BETWEEN ESP32 AND ULTRASONIC SENSOR, SERVO MOTOR, LCD'
#IMPORT THE MODULES/ LIBRARY
import hcsr04 #ultrasonic sensor library
import servo #servo
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
from machine import SoftI2C, Pin, PWM
from utime import sleep
#LCD
I2C_ADDR = 0x27
totalRows = 2
totalColumns = 16
i2c = SoftI2C(scl=Pin(22), sda=Pin(21), freq=10000) #initializing the I2C method for ESP32
#i2c = I2C(scl=Pin(5), sda=Pin(4), freq=10000) #initializing the I2C method for ESP8266
#to create object called ultrasonic sensor using OOP....library.class name ()
lcd = I2cLcd(i2c, I2C_ADDR, totalRows, totalColumns)
ultrasonic_sensor = hcsr04.HCSR04(trigger_pin=5, echo_pin=18,echo_timeout_us=500*2*30)
#servo
sg90 = PWM (Pin(15), Pin.OUT)
sg90.freq(50)
#display the information from ultrasonic
distance_in_cm =ultrasonic_sensor.distance_cm()
distance_in_mm =ultrasonic_sensor.distance_mm()
#display the range on serial monitor
print ('An object in :',distance_in_cm ,'cm')
print ('An object in :',distance_in_mm ,'mm')
#display the range on OLED
#condition of sensor vs distance
if distance_in_cm <50:
for i in range(200):
lcd.putstr("HAI WELCOME")
sleep(2)
lcd.clear()
sg90.duty(26)
lcd.putstr("DOOR OPEN")
sleep (2.0)
sg90.duty(80)
sleep (5.0)
lcd.clear()
else :
sleep (1)
sleep(5)