from umqttsimple import MQTTClient
import network
import time
import ubinascii
import ujson
import random
# Konfigurasi awal
namaPeserta = "Ajang Rahmat"
topik = "quiz/start"
# Koneksi WiFi
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect('Wokwi-GUEST', '')
while not wifi.isconnected():
print("Menghubungkan ke WiFi...")
time.sleep(0.5)
print("Terhubung ke Wi-Fi!")
# Buat client ID acak tanpa string
def buat_id_acak(length=6):
id_acak = ""
for _ in range(length):
angka = random.getrandbits(4) # 0-15
if angka < 10:
id_acak += chr(48 + angka) # '0' to '9'
else:
id_acak += chr(65 + angka - 10) # 'A' to 'F'
return id_acak
client_id = "WOKWI_" + buat_id_acak()
# Ambil MAC address dan buat payload JSON
mac = ubinascii.hexlify(wifi.config('mac')).decode().upper()
dataJson = ujson.dumps({
"mac": mac,
"nama": namaPeserta
})
# Koneksi ke MQTT
client = MQTTClient(client_id, "broker.emqx.io")
client.connect()
# Kirim data terus menerus setiap detik
while True:
client.publish(topik.encode(), dataJson.encode())
print("Data terkirim:", dataJson)
time.sleep(5)