from machine import Pin
import time
import network
import dht
import ujson
from umqtt.simple import MQTTClient
print("Hello Raka")
MQTT_CLIENT_ID = "mqttx_bdbdf948"
MQTT_BROKER = "broker.emqx.io"
MQTT_USER = ""
MQTT_PASSWORD = ""
MQTT_TOPIC_1 = "Barudak_Depok_Baik_Hati_dan_Rajin_Menabung/raka/data_sensor"
MQTT_TOPIC_2 = "Barudak_Depok_Baik_Hati_dan_Rajin_Menabung/raka/aktuasi_led"
led = Pin(15, Pin.OUT)
sensor = dht.DHT22(Pin(19))
print("Connecting to Wifi", end="")
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('Wokwi-GUEST', '')
while not sta_if.isconnected():
print(".", end="")
time.sleep(0.3)
print('Connected!')
print("Connecting to MQTT Server")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Connected!")
prev_weather = ""
while True:
print("Mengukur kondisi cuaca... ")
sensor.measure()
led.on()
time.sleep(0.5)
message_2 = ujson.dumps({
"led_status": led.value()
})
client.publish(MQTT_TOPIC_2, message_2)
print(f"led status: {led.value()}")
message_1 = ujson.dumps({
"temp": sensor.temperature(),
"humidity": sensor.humidity(),
})
if message_1 != prev_weather:
print("Updated!")
print(f"Report dikirim ke MQTT topic {MQTT_TOPIC_1}: {message_1}")
client.publish(MQTT_TOPIC_1, message_1)
prev_weather = message_1
else:
print("Tidak ada perubahan")
led.off()
message_2 = ujson.dumps({
"led_status": led.value()
})
client.publish(MQTT_TOPIC_2, message_2)
time.sleep(2)