print("Hello, ESP32")
import network
import time
import dht
import machine
from machine import Pin, I2C, SoftI2C
import urequests as requests
import ssd1306
import ujson
from umqtt.simple import MQTTClient
#ESSP32 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)
# MQTT Server Parameters
# MQTT_CLIENT_ID = "micropython-weather-demo"
# MQTT_BROKER = "broker.mqttdashboard.com"
# MQTT_USER = ""
# MQTT_PASSWORD = ""
# MQTT_TOPIC = "wokwi-weather"
# sensor = dht.DHT22(Pin(15))
# 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!")
# print("Connecting to MQTT server... ", end="")
# client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
# client.connect()
# print("Connected!")
# prev_weather = ""
# while True:
# print("Measuring weather conditions... ", end="")
# sensor.measure()
# message = ujson.dumps({
# "temp": sensor.temperature(),
# "humidity": sensor.humidity(),
# })
# if message != prev_weather:
# print("Updated!")
# print("Reporting to MQTT topic {}: {}".format(MQTT_TOPIC, message))
# client.publish(MQTT_TOPIC, message)
# prev_weather = message
# else:
# print("No change")
# time.sleep(1)