print("Hello, ESP32!")
print("PROJECT SUN LIGHT TRACKING SYSTEM")
print("date: 5/12/2023")
print ("created by MUHAMMAD AMIRUL SYAWAL")
import library_servomotor
import library_oled
import dht
from machine import Pin, ADC, SoftI2C
from utime import sleep
try:
#declare pin other than vcc and gnd
LDR_pin = ADC(Pin(34,Pin.IN))
led_red =Pin(5,Pin.OUT)
led_blue =Pin(17,Pin.OUT)
servo_pin = Pin(12,Pin.OUT)
sensor = dht.DHT22(Pin(4))
Pin_oled=SoftI2C(scl=Pin(15),sda=Pin(2))
#Declare name/create name for module with libraries
Putaran_servo= library_servomotor.Servo(pin=servo_pin)
skrin = library_oled.SSD1306_I2C(width=128, height=64, i2c=Pin_oled)
Pencahayaan = LDR_pin.read()
#Main program
while True:
print ('==========Pencahayaan==========\n')
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
Putaran_servo.move(90)
sleep(0.1)
print("Temperature: %3.1f C" %temp)
print("Humidity: %3.1f %%" %hum)
voltage_of_light_solar_Intensity = Pencahayaan / 4096. * 5;
print('the voltage recorded solar light intensity :', voltage_of_light_solar_Intensity,'v')
print('Bacaan pengcahayaan :',Pencahayaan)
print('\n')
#trigger of the temperature
if temp > 40 :
led_red.on()
skrin.fill (0)
skrin.show()
skrin.text('keadaan',20,40)
skrin.text('Cuaca Panas',10,20)
skrin.show()
sleep(2)
skrin.fill(0)
skrin.show()
skrin.text("Temperature:", 15, 0)
skrin.text(str(temp), 45, 11)
skrin.text("Humidity:", 25, 22)
skrin.text(str(hum), 45, 33)
skrin.text("voltage:", 40, 44)
skrin.text(str(voltage_of_light_solar_Intensity), 50, 55)
skrin.show()
print("Aircond motor On ")
print("Dry environment")
print("\n------------------------------\n")
for a in range (5):
led_blue.off()
sleep(0.1)
Putaran_servo.move(180)
sleep(0.1)
Putaran_servo.move(270)
sleep(0.1)
Putaran_servo.move(360)
sleep(0.1)
led_red.on()
sleep(0.1)
elif hum <50:
led_red.on()
skrin.fill (0)
skrin.show()
skrin.text('keadaan',20,40)
skrin.text('Cuaca Panas',10,20)
skrin.show()
sleep(2)
skrin.fill(0)
skrin.show()
skrin.text("Temperature:", 15, 0)
skrin.text(str(temp), 45, 11)
skrin.text("Humidity:", 25, 22)
skrin.text(str(hum), 45, 33)
skrin.text("voltage:", 40, 44)
skrin.text(str(voltage_of_light_solar_Intensity), 50, 55)
skrin.show()
print("Aircond motor On ")
print("Dry environment")
print("\n------------------------------\n")
for a in range (5):
led_blue.off()
sleep(0.1)
Putaran_servo.move(180)
sleep(0.1)
Putaran_servo.move(270)
sleep(0.1)
Putaran_servo.move(360)
sleep(0.1)
led_red.on()
sleep(0.1)
elif Pencahayaan < 500 :
led_blue.on()
skrin.fill(0)
skrin.show()
skrin.text('keadaan',20,40)
skrin.text('Cuaca Mendung',10,20)
skrin.show()
sleep(2)
skrin.fill(0)
skrin.show()
skrin.text("Temperature:", 15, 0)
skrin.text(str(temp), 45, 11)
skrin.text("Humidity:", 25, 22)
skrin.text(str(hum), 45, 33)
skrin.text("voltage:", 40, 44)
skrin.text(str(voltage_of_light_solar_Intensity), 50, 55)
skrin.show()
print("Aircond Motor OFF ")
print("Humid environment")
print("\n------------------------------\n")
for a in range (1):
led_blue.on()
sleep(0.1)
Putaran_servo.move(180)
sleep(0.1)
Putaran_servo.move(270)
sleep(0.1)
Putaran_servo.move(360)
sleep(0.1)
led_red.off()
sleep(0.1)
else:
led_blue.on()
skrin.fill (0)
skrin.show()
skrin.text('keadaan',20,20)
skrin.text('Cuaca Mendung',0,40)
skrin.show()
sleep(2)
skrin.fill(0)
skrin.show()
skrin.text("Temperature:", 15, 0)
skrin.text(str(temp), 45, 11)
skrin.text("Humidity:", 25, 22)
skrin.text(str(hum), 45, 33)
skrin.text("voltage:", 40, 44)
skrin.text(str(voltage_of_light_solar_Intensity), 50, 55)
skrin.show()
print("Aircond Motor OFF ")
print("Humid environment")
print("\n------------------------------\n")
sleep(3)
except OSError as e:
if e.args[0] == 116:
print("Error: ETIMEDOUT - Timeout error. Check your connections and try again.")
else:
raise e
except Exception as e:
print("An unexpected error occurred:", repr(e))