print("hello, ESP!")
import time
import dht
import machine
import urequests as requests
import network
from machine import Pin, I2C, SoftI2C
import ssd1306
#esp32 Pin asignment
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("Connecting 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=4e9155c2d54dbf79ffaf1bdfceb260c6&units=metric&lang=vi"
#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']
print(vitri)
except:
print("loi request !!!")
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("temperature =", temperature_get)
print("humidity =", 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("temperature =", temperature_get)
print("humidity =", humidity_get)
time.sleep(10)