print("Practical Test IOT")
print('Created by Muhairel')
#Import libraries
import sonic_lib, oled_lib
from machine import Pin, SoftI2C, PWM
from utime import sleep
from machine import Pin
#Pin declaration
trig = Pin(13, Pin.IN)
echo = Pin(12, Pin.OUT)
buzzer = Pin(21, Pin.OUT)
pin_oled = SoftI2C(scl=Pin(15), sda=Pin(2))
green_led = Pin(25, Pin.OUT)
yellow_led = Pin(26, Pin.OUT)
red_led = Pin(27, Pin.OUT)
#Create name for libraries
screen = oled_lib.SSD1306_I2C(width = 128, height = 64, i2c = pin_oled)
jarak = sonic_lib.HCSR04(trigger_pin=trig, echo_pin=echo,)
#Main Program
while True:
#Ultrasonic program
distance_in_cm = jarak.distance_cm()
print('A garbage has been detected within: ', distance_in_cm, 'cm')
#OLED, Buzzer & Led
if distance_in_cm > 300:
for a in range(10):
Buzzer = PWM(buzzer, freq = 1500, duty = 0)
green_led.on()
yellow_led.off()
red_led.off()
screen.fill(1)
screen.text('NOT FULL', 20, 20, 0)
screen.text('YET', 40, 40, 0)
screen.show()
elif 100 <= distance_in_cm < 300:
for a in range(10):
Buzzer = PWM(buzzer, freq = 1500, duty = 0)
green_led.off()
yellow_led.on()
red_led.off()
screen.fill(1)
screen.text('HALF THERE', 15, 20, 0)
screen.show()
else:
for a in range (10):
green_led.off()
yellow_led.off()
red_led.on()
Buzzer = PWM(buzzer, freq = 1500, duty = 50)
sleep(0.5)
Buzzer = PWM(buzzer, freq = 1500, duty = 0)
sleep(0.5)
screen.fill(1)
screen.text('BIN IS FULL,', 25, 20, 0)
screen.text('PLS EMPTY', 30, 40, 0)
screen.show()
sleep(3)