print("Hello, this is my PET FEEDER PROJECT")
print("by akram")
print("Date 30/4/24")
#import library
import ultrasonic_library
import oled_library
import servo_library
from machine import Pin, PWM, SoftI2C
from utime import sleep
#pin
TRIG = Pin(12)
ECHO = Pin(14)
servo_pin=Pin(13,Pin.OUT)
Buzzer_pin=PWM(Pin(4,Pin.OUT))
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
led_hijau = Pin(19, Pin.OUT)
led_biru = Pin(18, Pin.OUT)
led_merah = Pin(5, Pin.OUT)
#parameter declaration
#Create object name for sensor with sensor -> object_name = Libraary_name.Class_name(....)
sonic = ultrasonic_library.HCSR04(trigger_pin=TRIG, echo_pin=ECHO, echo_timeout_us=500*2*30)
skrin = oled_library.SSD1306_I2C(width=128, height=64, i2c=oled_pin)
gate=servo_library.Servo(pin=servo_pin)
#main program
while True:
jarak_dalam_cm = sonic.distance_cm()
Buzzer_pin.init(freq=500 ,duty=0)
print("---------------------------------------------------")
print("JARAK BAKI MAKANAN DARI SENSOR", jarak_dalam_cm )
print("\n")
if 30 <= jarak_dalam_cm <=50:
gate.move(angle=0)
led_merah.on()
sleep(0.2)
led_hijau.off()
led_biru.off()
skrin.fill(1)
skrin.text("FULL", 5, 20, 0)
skrin.text(str(jarak_dalam_cm),5,30,0)
skrin.text("CM",70,30,0)
skrin.show()
elif 5 <= jarak_dalam_cm <=30:
gate.move(angle=0)
led_biru.on()
sleep(0.2)
led_hijau.off()
led_merah.off()
skrin.fill(1)
skrin.text("LESS FOOD", 5, 20, 0)
skrin.text(str(jarak_dalam_cm),5,30,0)
skrin.text("CM",70,30,0)
skrin.show()
elif 1 <= jarak_dalam_cm <=5:
gate.move(angle=90)
led_hijau.on()
sleep(0.2)
led_biru.off()
led_merah.off()
Buzzer_pin.init(freq=500 ,duty=100)
sleep(0.2)
Buzzer_pin.init(freq=500 ,duty=0)
sleep(0.2)
skrin.fill(1)
skrin.text("REFILL", 5, 20, 0)
skrin.text(str(jarak_dalam_cm),5,30,0)
skrin.text("CM",70,30,0)
skrin.show()
else:
gate.move(angle=0)
led_biru.off()
led_merah.off()
led_hijau.off()
skrin.fill(1)
skrin.text("", 5, 20, 0)
skrin.text(str(jarak_dalam_cm),5,30,0)
skrin.text("CM",70,30,0)
skrin.show()
sleep(0.3)