#EX 10
import network
import dht
import ujson
from machine import Pin
from time import sleep_ms
from umqtt.simple import MQTTClient
WIFI_SSID = 'Wokwi-GUEST' #default Wokwi SSID ต้องเป๊ะห้ามเปลี่ยน
WIFI_PASS = ''
MQTT_BROKER = 'mqtt.netpie.io'
MQTT_CLIENT_ID = 'ef1aa1de-23c5-4e0e-b24e-0ab9b833d678'
MQTT_TOKEN = 'Bxx9St7ykpmYrnyrpYhxuLcqAUrWHb4F'
MQTT_PASS = ''
#Connect to WiFi
wlan = network.WLAN(network.STA_IF) #Creat a WiFi Station Interface *ห้ามเปลี่ยน
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASS)
print('WIFI ', end = '')
while not wlan.isconnected():
print('.', end = '')
sleep_ms(500)
print(' ', wlan.ifconfig()[0], '[Connected]')
#Connect to MQTT
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_TOKEN, password=MQTT_PASS)
print('MQTT ...', MQTT_BROKER, end = '')
try:
client.connect()
print('[Connected]')
except:
print('[Error]') #แจ้ง Error เพื่อไม่ให้หลุดโปรแกรม
sensor = dht.DHT22(Pin(15))
while True:
sensor.measure()
sensor_json = ujson.dumps({
"Temp": sensor.temperature(),
"RH": sensor.humidity(),
})
message = ujson.dumps({'data':sensor_json})
print(message)
client.publish('@shadow/data/update', message)
sleep_ms(1000)