print("Hello, My Name is Mohamad Faiz Haikal Bin Ishak")
print("My project is 'SMART FISH FEEDER' ")
print("Date : 7 Disember 2023")
# Import libraries / modules
import oled_library
import servo_library
import ultrasonic_library
from machine import Pin, SoftI2C, PWM
from utime import sleep
# Declare Pins
servo_pin = Pin(13, Pin.OUT)
TRIG_PIN = 27
ECHO_PIN = 26
BUZZER_PIN = 25
orange_led = Pin(14, Pin.OUT)
green_led = Pin(12, Pin.OUT)
pin_oled = SoftI2C(scl=Pin(22), sda=Pin(21))
# Create instances of modules
balang_makanan = servo_library.Servo(pin=servo_pin)
distance_sensor = ultrasonic_library.HCSR04(trigger_pin=TRIG_PIN, echo_pin=ECHO_PIN)
skrin = oled_library.SSD1306_I2C(width=128, height=64, i2c=pin_oled)
# Buzzer configuration
buzzer_pwm = PWM(Pin(BUZZER_PIN, Pin.OUT))
# Main Program
while True:
# Food level Part:
distance_cm = distance_sensor.distance_cm()
if distance_cm >= 9:
for Led_and_buzzer in range(3):
orange_led.on()
buzzer_pwm.duty(100)
sleep(0.5)
orange_led.off()
buzzer_pwm.duty(0)
sleep(0.5)
green_led.off()
# Display on OLED
skrin.fill(0) # Use 0 to clear the screen
skrin.text("MAKANAN IKAN", 17, 20, 1) # Use 1 to display in white
skrin.text('DAH HABIS!!!', 20, 40, 1)
skrin.show()
buzzer_pwm.duty(0)
else:
if distance_cm < 9:
buzzer_pwm.duty(0)
balang_makanan.move(0)
sleep(5)
# Display on OLED
skrin.fill(0) # Use 0 to clear the screen
skrin.text("BAGI IKAN", 17, 20, 1) # Use 1 to display in white
skrin.text('MAKAN...', 20, 40, 1)
skrin.show()
green_led.on()
orange_led.off()
balang_makanan.move(360)
sleep(5)
green_led.off()
# Display on OLED
skrin.fill(0) # Use 0 to clear the screen
skrin.text("BAGI IKAN", 17, 20, 0) # Use 1 to display in white
skrin.text('MAKAN...', 20, 40, 0)
skrin.show()
balang_makanan.move(0)
sleep(10) #berehat 10 saat sebelum bagi ikan makan semula
skrin.fill(0) # Use 0 to clear the screen
skrin.text("BAGI IKAN", 17, 20, 1) # Use 1 to display in white
skrin.text('MAKAN...', 20, 40, 1)
skrin.show()
green_led.on()
orange_led.off()
balang_makanan.move(360)
sleep(5)
green_led.off()
# Display on OLED
skrin.fill(0) # Use 0 to clear the screen
skrin.text("BAGI IKAN", 17, 20, 0) # Use 1 to display in white
skrin.text('MAKAN...', 20, 40, 0)
skrin.show()
balang_makanan.move(0)
sleep(5)