import time
from machine import Pin
from umqtt.simple import MQTTClient
from wifi_lib import connect_wifi
import asyncio
import dht
led1 = Pin(26, Pin.OUT)
# Connect wifi
connect_wifi()
# # MQTT Server Parameters
MQTT_CLIENT_ID = "d06k14-iot-mqtt"
MQTT_BROKER = "broker.hivemq.com"
MQTT_USER = ""
MQTT_PASSWORD = ""
MQTT_SUB_TOPIC = "d06k14_commands"
# Chay khi nhan duoc ban tin
def sub_cb(topic, msg):
print((topic, msg))
if(msg == b'led1_on'):
led1.on()
elif(msg == b'led1_off'):
led1.off()
print("Connecting to MQTT server... ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.set_callback(sub_cb)
client.connect()
print("Connected!")
client.subscribe(MQTT_SUB_TOPIC)
# Cam bien
d = dht.DHT22(Pin(13))
async def task1():
# Lang nghe thong tin nguoi dung
while True:
try:
client.check_msg()
await asyncio.sleep(0.5)
except:
pass
async def task2():
# Gui du lieu len broker
while True:
try:
print("Gui du lieu")
d.measure()
t = d.temperature()
client.publish('d06k14_temperature', t)
await asyncio.sleep(10)
except:
pass
loop = asyncio.get_event_loop()
loop.create_task(task1())
loop.create_task(task2())
loop.run_forever()