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

Popular posts from this blog

Is This News Real or Fake? πŸ€– AI Exposes the Truth | FuzzuTech Python App Demo

🚨 Python Intrusion Detection System (IDS) – Real-Time ML + Tkinter GUI Project | FuzzuTech

Educational File Encryptor GUI (Python AES Project) | FuzzuTech