import machine
import time
import urequests as requests
import network
import ujson
import dht
#thingspeak setting
THINGSPEAK_API_KEY = "DENJCQY50F2YTYN37"
THINGSPEAK_URL="http://api.thingspeak.com/update"
#wifi settings
WIFI_SSID="wokwi-GUEST"
WIFI_PASSWORD=""
#dht22 settings
dht_sensor=dht.DHT22(machine.pin(4))
#function to read the dht data
def read_room_temperature_humidity():
dht_sensor.measure()
temperature=dht_sensor.temperature()
humidity=dht.dht_sensor.humidity()
return temperature,humidity
#function to send data to thingspeak
def send_data_to_thingspeak(temperature,humidity):
data={
"api_key":THINGSPEAK_API_KEY,
"field1":temperature,
"field2":humidity
}
response=urequest.post(THINGSPEAK_URL,data=json.dumps(data),headers={"content-type":"application/json"})
response.close()
#initialize the wifi connection
wifi=network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(WIFI_SSID,WIFI_PASSWORD)
while not wifi.isconnected():
time.sleep(1)
print("wifi is connected")
if __name__=="__main__":
try:
while True:
temperature,humidity=read_room_temperature_humidity()
send_data_to_thingspeak(temperature,humidity)
print("data is send to thingspeak")
time.sleep(15)
except keyboardinterrupt:
pass