IoT Light Control GUI App – Python + MQTT + CTkinter | FuzzuTech Project
Demo :
Click Video πππ
Description:
Add YouTube video embed, short explanation of code, screenshots (from your GUI), and copy description content.
Features:
✅ Full working Python code
✅ Real-time IoT demo with MQTT
✅ Beginner-friendly project with GUI
Code :
# gui_light.py
import customtkinter as ctk
import paho.mqtt.client as mqtt
import json
BROKER = "test.mosquitto.org"
TOPIC_CMD = "fuzzutech/home/livingroom/light/cmd"
TOPIC_STATE = "fuzzutech/home/livingroom/light/state"
state = "OFF"
def on_connect(client, userdata, flags, rc):
print("Connected:", rc)
client.subscribe(TOPIC_STATE)
def on_message(client, userdata, msg):
global state
try:
payload = msg.payload.decode()
data = json.loads(payload)
state = data.get("state", "OFF")
status_label.configure(text=f"Light is {state}", text_color="green" if state == "ON" else "red")
except Exception as e:
print("Error:", e)
def toggle_light():
global state
new_state = "OFF" if state == "ON" else "ON"
payload = json.dumps({"state": new_state})
client.publish(TOPIC_CMD, payload)
print("Published CMD:", payload)
# --- GUI ---
app = ctk.CTk()
app.title("FuzzuTech IoT Light Control")
app.geometry("400x250")
status_label = ctk.CTkLabel(app, text="Light is OFF", font=("Arial", 20), text_color="red")
status_label.pack(pady=40)
toggle_btn = ctk.CTkButton(app, text="Toggle Light", command=toggle_light)
toggle_btn.pack(pady=20)
# MQTT Client
client = mqtt.Client("fuzzutech_gui")
client.on_connect = on_connect
client.on_message = on_message
client.connect(BROKER, 1883, 60)
client.loop_start()
app.mainloop()
client.loop_stop()
client.disconnect()
Comments
Post a Comment