print("PROJECT SOLAR MONITORING SYSTEM")
print("date: 5/27/2024")
print("created by Kelompok - ")
# Import libraries/module
import servo
import oled
import dht
import urequests # Library for HTTP requests
from machine import Pin, ADC, SoftI2C, PWM
from utime import sleep
# Declare pin other than VCC and GND
LDR_pin = ADC(Pin(34)) # Adjust pin according to your setup
led_red = Pin(4, Pin.OUT)
led_blue = Pin(2, Pin.OUT)
servo_pin = Pin(27, Pin.OUT)
sensor = dht.DHT22(Pin(15))
Pin_oled = SoftI2C(scl=Pin(22), sda=Pin(21))
# Declare name/create name for module with libraries
Penyaman_udara = servo.Servo(pin=servo_pin)
skrin = oled.SSD1306_I2C(width=128, height=64, i2c=Pin_oled)
# WiFi credentials and ThingSpeak API key
SSID = 'Wokwi-GUEST'
PASSWORD = ''
THINGSPEAK_API_KEY = 'RTUH8UANSQ8L5V9O'
# Function to connect to WiFi
def connect_wifi(ssid, password):
import network
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(ssid, password)
while not wifi.isconnected():
pass
print('Connected to WiFi')
# Connect to WiFi
connect_wifi(SSID, PASSWORD)
# Function to send data to ThingSpeak
def send_to_thingspeak(light_intensity, temperature, humidity):
url = "http://api.thingspeak.com/update?api_key={}".format(THINGSPEAK_API_KEY)
url += "&field1={:.2f}&field2={:.2f}&field3={:.2f}".format(light_intensity, temperature, humidity)
response = urequests.get(url)
response.close()
print("Data sent to ThingSpeak")
# Main program
while True:
print('========== SOLAR MONITORING SYSTEM ==========\n')
Pencahayaan_solar = LDR_pin.read()
voltage_of_light_Intensity = Pencahayaan_solar / 4096.0 * 5.0
print('Bacaan Tenaga solar:', Pencahayaan_solar)
print('Tegangan yang dicatat intensitas cahayanya:', voltage_of_light_Intensity, 'V')
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
print("Temperature: {:.1f} C".format(temp))
print("Humidity: {:.1f} %".format(hum))
print('\n')
# Send data to ThingSpeak
send_to_thingspeak(voltage_of_light_Intensity, temp, hum)
# Trigger based on the conditions
if hum < 50:
led_red.off()
led_blue.off()
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_Intensity), 50, 55)
skrin.show()
print("AC Nyala")
print("Kondisi Rumah Kering")
print("\n------------------------------\n")
for _ in range(2):
led_blue.on()
sleep(0.3)
Penyaman_udara.move(90)
sleep(0.3)
Penyaman_udara.move(180)
sleep(0.3)
Penyaman_udara.move(270)
sleep(0.3)
Penyaman_udara.move(360)
sleep(0.3)
elif Pencahayaan_solar < 600:
led_red.off()
led_blue.off()
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_Intensity), 50, 55)
skrin.show()
print("AC Nyala")
print("Kondisi Rumah Kering")
print("\n------------------------------\n")
for _ in range(2):
led_blue.on()
sleep(0.3)
Penyaman_udara.move(90)
sleep(0.3)
Penyaman_udara.move(180)
sleep(0.3)
Penyaman_udara.move(270)
sleep(0.3)
Penyaman_udara.move(360)
sleep(0.3)
elif temp > 40:
led_red.off()
led_blue.off()
skrin.fill(0)
skrin.show()
skrin.text('Keadaan', 10, 20)
skrin.text('Cuaca Panas', 20, 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_Intensity), 50, 55)
skrin.show()
print("AC Nyala")
print("Kondisi Rumah Kering")
print("\n------------------------------\n")
for _ in range(2):
led_blue.on()
sleep(0.3)
Penyaman_udara.move(90)
sleep(0.3)
Penyaman_udara.move(180)
sleep(0.3)
Penyaman_udara.move(270)
sleep(0.3)
Penyaman_udara.move(360)
sleep(0.3)
else:
led_blue.off()
skrin.fill(0)
skrin.show()
skrin.text('Keadaan', 0, 10)
skrin.text('Cuaca Mendung', 10, 20)
skrin.show()
sleep(2)
led_red.on()
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_Intensity), 50, 55)
skrin.show()
print("AC Mati")
print("Keadaan Rumah Lembab")
print("\n------------------------------\n")
for _ in range(2):
led_red.on()
sleep(0.3)
sleep(3)