# **************************************#
# MQTT in MicroPython with Thingspeak #
# **************************************#
# Author: George Bantique #
# TechToTinker Youtube Channel #
# TechToTinker.blogspot.com #
# [email protected] #
# Date: Dec.5, 2020 #
# Please feel free to modify the code #
# according to your needs. #
# **************************************#
# **************************************#
# Load necessary libraries
# esp32-thingspeak-mqtt-001
import machine
import network
# import wifi_credentials
# from umqtt.simple import MQTTClient
from umqttsimple import MQTTClient
import dht
import time
led = machine.Pin(2,machine.Pin.OUT)
d = dht.DHT22(machine.Pin(4))
WIFI_SSID = 'Wokwi-GUEST'
WIFI_PASS = ''
# 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())
wifi = network.WLAN(network.STA_IF)
if not wifi.isconnected():
print("Connecting to WiFi...")
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASS)
while not wifi.isconnected():
pass
print('IP:', wifi.ifconfig()[0])
SERVER = "mqtt.thingspeak.com"
client = MQTTClient("umqtt_client", SERVER)
CHANNEL_ID = "2231426"
WRITE_API_KEY = "907NZLB8530MHD36"
topic = "channels/" + CHANNEL_ID + "/publish/" + WRITE_API_KEY
UPDATE_TIME_INTERVAL = 5000 # in ms unit
last_update = time.ticks_ms()
while True:
if time.ticks_ms() - last_update >= UPDATE_TIME_INTERVAL:
d.measure()
temp = d.temperature()
humi = d.humidity()
payload = "field1="+str(temp)+"&field2="+str(humi)
print(payload)
client.connect()
client.publish(topic, payload)
# client.disconnect()