import random
from umqtt.simple import MQTTClient
from machine import Timer
# Timer Object
tim = Timer(-1)
# MQTT Server Parameters
MQTT_CLIENT_ID = "micropython-Esp32-PK"
MQTT_BROKER = "broker.hivemq.com"
MQTT_USER = "babu"
MQTT_PASSWORD = "12345678"
MQTT_TOPIC = "/Gass/bayu"
# Connection to MQTT Server
print("Connecting to MQTT server... ", end="")
client = MQTTClient(MQTT_CLIENT_ID, MQTT_BROKER, user=MQTT_USER, password=MQTT_PASSWORD)
client.connect()
print("Connected!")
# Callback function for Topic Subscription
def sub_cb(topic, msg):
print(f"Topic: {str(topic, 'UTF-8')}")
print(f"Message: {str(msg, 'UTF-8')}")
# Callback function for Publish Data
def pub_topic(tim, topic: str, msg=""):
msg = "bayu"
client.publish(topic, msg)
print(f"Published: {msg} to {topic}")
# Timer for Periodic Data Publish (Publish setiap 5 detik)
tim.init(period=5000, mode=Timer.PERIODIC, callback=lambda tim: pub_topic(tim, MQTT_TOPIC))
# MQTT Subscription details
client.set_callback(sub_cb)
client.subscribe(MQTT_TOPIC)
while True:
# Mengecek pesan masuk dari topic yang disubscribe
client.check_msg()