import machine
import network
import wifi_credentials
from umqtt.simple import MQTTClient
import dht
import time
# **************************************#
# Objects:
led = machine.Pin(2,machine.Pin.OUT)
d = dht.DHT22(machine.Pin(23))
# **************************************#
# Configure the ESP32 wifi as STAtion.
sta = network.WLAN(network.STA_IF)
if not sta.isconnected():
print('connecting to network...')
sta.active(True)
#sta.connect('wifi ssid', 'wifi password')
sta.connect(wifi_credentials.ssid, wifi_credentials.password)
while not sta.isconnected():
pass
print('network config:', sta.ifconfig())
# **************************************#
# Global variables and constants:
SERVER = "mqtt.thingspeak.com"
client = MQTTClient("umqtt_client", SERVER)
CHANNEL_ID = "2526318"
WRITE_API_KEY = "RU9WMUQNNF0CQRJK"
# topic = "channels/2526318/publish/RU9WMUQNNF0CQRJK"
topic = "channels/" + CHANNEL_ID + "/publish/" + WRITE_API_KEY
UPDATE_TIME_INTERVAL = 5000 # in ms unit
last_update = time.ticks_ms()
# **************************************#
# Main loop:
while True:
if time.ticks_ms() - last_update >= UPDATE_TIME_INTERVAL:
d.measure()
t = d.temperature()
h = d.humidity()
#payload = "field1=" + str(t) + "&field2=" + str(h)
payload = "field1={}&field2={}" .format(str(t), str(h))
client.connect()
client.publish(topic, payload)
client.disconnect()
print(payload)
led.value(not led.value())
last_update = time.ticks_ms()