from machine import Pin, Timer
import network
import urequests # for http API
import time
#from umqtt.robust import MQTTClient # for MQTT Broker
import sys
#import dht
from dht import DHT22
dht22 = DHT22(Pin(12))
# Function to read DHT
def readDht():
dht22.measure()
return dht22.temperature(), dht22.humidity()
# test DHT function
print (readDht())
# Split Sensor reading..
#temp, hum = readDht()
# Connect with WiFi
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
# Function to connect to local WiFi
def connect_wifi():
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.disconnect()
wifi.connect(WIFI_SSID,WIFI_PASSWORD)
if not wifi.isconnected():
print('connecting..')
timeout = 0
while (not wifi.isconnected() and timeout < 10):
print(10 - timeout)
timeout = timeout + 1
time.sleep(1)
if(wifi.isconnected()):
print('connected')
else:
print('not connected')
sys.exit()
print('network config:', wifi.ifconfig())
connect_wifi() # Connecting to WiFi Router
# Thingspeak HTTP API Protocol (Connection)
HTTP_HEADERS = {'Content-Type': 'application/json'}
THINGSPEAK_WRITE_API_KEY = '2UQKAKSXHRO1A7YR' # Write API of the Channel Achinta Malik
while True:
#pin = Pin(12, Pin.OUT, Pin.PULL_DOWN) #Rpi
dht22 = DHT22(Pin(12)) #DHT22 object created at Pin 12
dht22.measure()
print("Temperature: {}".format(dht22.temperature()))
print("Humidity: {}".format(dht22.humidity()))
temp = dht22.temperature() # store dht22 temperature into temp variable
hum = dht22.humidity()
dht_readings = {'field1':temp, 'field2':temp}
request = urequests.post( 'http://api.thingspeak.com/update?api_key=' + THINGSPEAK_WRITE_API_KEY, json = dht_readings, headers = HTTP_HEADERS )
request.close()
print(dht_readings)
print(" Msg sent to Thingspeak channel successfully...")
print(" ********************************************")
time.sleep(5)