print("Hello, ESP32!")
print("FAN AUTOMATIC SWITCHING FOR CAT")
print("by MUHAMMAD ARIF BIN HASIM")
#IMPORT LIBRARIES
import servo_library
import ultrasonic_library
import oled_library
import dht
from machine import Pin, PWM, SoftI2C
from utime import sleep
#PIN DECLARATION
Pin_scl_sda = SoftI2C(scl = Pin(5), sda = Pin(18))
Pin_scl_sda1 = SoftI2C(scl = Pin(23), sda = Pin(2))
Servo_Pin= (Pin(26,Pin.OUT))
TRIG_pin = Pin(14,Pin.IN)
ECHO_pin = Pin(27,Pin.OUT)
ON_pin = Pin(22,Pin.OUT)
OFF_pin = Pin(21,Pin.OUT)
Buzzer_pin = Pin(19, Pin.OUT)
sensor = dht.DHT22(Pin(12))
#CREATE NAME FOR MODUL WITH LIBRARIES
blade = servo_library.Servo(pin=Servo_Pin)
sonic = ultrasonic_library.HCSR04(trigger_pin = TRIG_pin , echo_pin = ECHO_pin)
skrin = oled_library.SSD1306_I2C(width=128, height=64, i2c=Pin_scl_sda)
skrin_1 = oled_library.SSD1306_I2C(width=128, height=64, i2c=Pin_scl_sda1)
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
#MAIN PROGRAM
while True:
#ultrasonic part(pengesan kucing)
jarak = ECHO_pin.value
print("\n === LET'S MEASURE INCOMING OBJECT ===\n")
distance_in_mm = sonic.distance_mm()
print("JARAK OBJEK DENGAN SENSOR --> ", distance_in_mm, "mm")
distance_in_cm = sonic.distance_cm()
print("JARAK OBJEK DENGAN SENSOR -->", distance_in_cm, "cm")
ON_pin.on()
OFF_pin.off()
#DHT part
if temp > 35:
blade.move(45)
skrin_1.fill(0)
skrin_1.text("TEMPERATURE!", 10, 10, 1)
skrin_1.text("IS TOO", 25, 20, 1)
skrin_1.text("HOT!", 40, 30, 1)
skrin_1.show()
#servo part (penekan suis)
if distance_in_cm <50:
#skrin OLED part
skrin.fill(1) # 0 = black, 1 = white
skrin.text("STAY", 0, 10, 0)
skrin.text("AWAY!",0, 30, 0)
skrin.show() # this mark is a must
else:
blade.move(90)
OFF_pin.on()
ON_pin.off()
skrin.fill(1) # 0 = black, 1 = white
skrin.text("THANK", 0, 10, 0)
skrin.text("YOU",0, 30, 0)
skrin.show() # this mark is a must
skrin_1.fill(0)
skrin_1.text("TEMPERATURE", 10, 10, 1)
skrin_1.text("GOOD", 25, 20, 1)
skrin_1.text("ENOUGH", 40, 30, 1)
skrin_1.show()
sleep(10)