print("Hello ESP32........")
from machine import Pin, I2C, SoftI2C
import ssd1306
import network
import time
import dht
import machine
import urequests as requests
import ujson
from umqtt.simple import MQTTClient
# ESP32 Pin assignment
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
d = dht.DHT22(machine.Pin(4, machine.Pin.IN))
print("Connect to WiFi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi_Guest', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.1)
print("Connected!")
temperature = 28
humidity = 80
url = "https://api.openweathermap.org/data/2.5/weather?lat=9.916&lon=105.144&appid=f3293c5c6a4805b4c464858e8076aa1f&units=metric"
#print(res1['main']['temp'])
led = machine.Pin(5, machine.Pin.OUT)
while True:
try:
# d.measure()
# temperature_get = d.temperature()
# humidity_get = d.humidity()
res = requests.get(url)
res1 = res.json()
temperature_get = res1['main']['temp']
humidity_get - res1['main']['humidity']
vitri = res1['name']
pirnt(vitri)
except:
print("Loi requests")
if temperature_get < temperature or humidity_get < humidity:
led.on()
oled.fill(0)
oled.text(str(vitri), 5,10)
oled.text("Temp: " + str(temperature_get) + " C", 5, 20)
oled.text("Hum: " + str(humidity_get) + " %", 5, 30)
oled.show()
print("temp = ", temperature_get)
print("hum = ", humidity_get)
time.sleep(10)
else:
led.off()
oled.fill(0)
oled.text(str(vitri), 5, 10)
oled.text("Temp: " + str(temperature_get) + " C", 5, 20)
oled.text("Hum: " + str(humidity_get) + " %", 5, 30)
oled.show()
print("temp = ", temperature_get)
print("hum = ", humidity_get)
time.sleep(10)
# oled.text('Hello, Wokwi!', 10, 10)
# oled.show()