print("AUTOMATIC WATERING PLANT SYSTEM ")
print("CREATE BY : FAISAL ")
print("DATE : 29/4/2024")
from machine import Pin, ADC, SoftI2C, PWM
from utime import sleep
import dht
import ssd1306_library
import servo_library
import ultrasonic_library
# Pin declaration
DHT_PIN = 4 # DHT22 sensor pin
SERVO_PIN = 13 # Servo pin
BUZZER_PIN = 14 # Buzzer pin
LED_PIN = 12 # LED pin
TRIGGER = 18 # Ultrasonic trigger pin
ECHO = 19 # Ultrasonic echo pin
oled_pin = SoftI2C(scl=Pin(22), sda=Pin(21))
# Initialize OLED display
display = ssd1306_library.SSD1306_I2C(128, 64, i2c=oled_pin)
# Initialize DHT22 sensor
dht_sensor = dht.DHT22(Pin(4))
# Initialize servo
water = servo_library.Servo(pin=SERVO_PIN)
servo_motor = servo_library.Servo(pin=SERVO_PIN)
# Initialize buzzer and LED
buzzer = PWM(Pin(14, Pin.OUT), freq=1000) # Initialize buzzer as PWM pin
red_led = Pin(12, Pin.OUT) # Initialize LED as digital output pin
# Initialize ultrasonic distance sensor
volume = ultrasonic_library.HCSR04(trigger_pin=TRIGGER,echo_pin=ECHO)
trigger = Pin(TRIGGER, Pin.OUT)
echo = Pin(ECHO, Pin.IN)
while True:
dht_sensor.measure()
temperature = dht_sensor.temperature()
humidity = dht_sensor.humidity()
distance_mm = volume.distance_mm()
distance_cm = volume.distance_cm()
red_led.off()
#blue_led.off()
buzzer.init(freq=1, duty=0)
print(temperature)
print(humidity)
if(temperature > 30) :
red_led.on()
buzzer.init(freq=2500, duty=200)
sleep(1)
red_led.off()
buzzer.init(freq=1, duty=0)
sleep(1)
water.move(angle=90)
display.fill(0)
display.text("NEED TO WATER", 0, 0)
display.text("Water your", 0, 30, 1)
display.text("plant", 0, 40, 1)
display.show()
sleep(5)
elif (temperature < 30) :
#blue_led.on()
water.move(angle=0)
#print("Soil moisture is optimal.")
display.fill(0)
display.text("Soil moisture", 0, 0)
display.text("is optimal", 0, 10, 1)
display.show()
if (distance_cm < 20) :
display.fill(0)
display.text("INSECT", 0, 0)
display.show()
red_led.on()
buzzer.init(freq=2500, duty=200)
sleep(1)
red_led.off()
buzzer.init(freq=1, duty=0)
sleep(1)
sleep(3)
Loading
esp32-devkit-v1
esp32-devkit-v1