print("Water Level Detector")
print("Practical Test")
print("Date: 5/12/2023")
print("Created by: Nafis")
#Import all libraries/modules
import ultrasonic_library
import OLED_library
from machine import Pin, PWM, SoftI2C
from utime import sleep
#Pin declaration
trigger = Pin(12, Pin.IN)
echo = Pin(27, Pin.OUT)
Buzzer_Pin = Pin(4, Pin.OUT)
Led_hijau = Pin(26, Pin.OUT)
Led_kuning = Pin(14, Pin.OUT)
Led_merah = Pin(13, Pin.OUT)
pin_oled = SoftI2C(scl=Pin(22), sda=Pin(21))
#Declare/Create object name for sensors with libraries
sensor_detected = ultrasonic_library.HCSR04(trigger_pin=trigger, echo_pin=echo)
skrin = OLED_library.SSD1306_I2C(width=128, height=64, i2c=pin_oled)
#Main program
while True:
#ULTRASONIC PART
print('\n WATER LEVEL DETECTOR \n')
skrin.fill(0)
skrin.text("WATER LEVEL",20,20,1)
skrin.text("DETECTOR",30,40,1)
skrin.show()
distance_in_cm = sensor_detected.distance_cm()
print('Water is detected within :', distance_in_cm, 'cm')
#distance_in_mm = sensor_detected.distance_mm()
#print('An object is detected within :', distance_in_mm, 'mm')
#BUZZER PART
if distance_in_cm > 200 :
print("WATER FULL")
skrin.fill(0)
skrin.text("WATER FULL",20,30,1)
skrin.show()
tone_buzzer = PWM(Buzzer_Pin, freq = 1500 , duty = 50)
sleep(0.3)
tone_buzzer = PWM(Buzzer_Pin, freq = 1500 , duty = 0)
sleep(0.3)
Led_hijau.on()
sleep(0.5)
Led_hijau.off()
sleep(0.5)
elif 50 <= distance_in_cm < 200:
print("WATER LOW")
skrin.fill(0)
skrin.text("WATER LOW",25,30,1)
skrin.show()
tone_buzzer = PWM(Buzzer_Pin, freq = 1000 , duty = 50)
sleep(0.05)
tone_buzzer = PWM(Buzzer_Pin, freq = 1000 , duty = 0)
sleep(0.05)
Led_kuning.on()
sleep(0.2)
Led_kuning.off()
sleep(0.2)
else:
print('WATER IN DANGEROUS !!!')
skrin.fill(0)
skrin.text("WATER",40,20,1)
skrin.text("IN",50,30,1)
skrin.text("DANGEROUS !!!",20,40,1)
skrin.show()
tone_buzzer = PWM(Buzzer_Pin, freq = 500 , duty = 50)
Led_merah.on()
sleep(0.1)
Led_merah.off()
sleep(1)