import paho.mqtt.client as mqtt from paho.mqtt.enums import CallbackAPIVersion import os import time BROKER = "127.0.0.1" PORT = 1883 TOPIC = "ssproject/images" OUTPUT_DIR = "received_images" if not os.path.exists(OUTPUT_DIR): os.makedirs(OUTPUT_DIR) def on_connect(client, userdata, flags, reason_code, properties): print(f"Connected (reason code: {reason_code})") client.subscribe(TOPIC) def on_message(client, userdata, msg): timestamp = int(time.time() * 1000) filename = f"{OUTPUT_DIR}/image_{timestamp}.jpg" try: with open(filename, "wb") as f: f.write(msg.payload) print(f"Image saved: {filename} ({len(msg.payload)} bytes)") except Exception as e: print(f"Error saving image: {e}") client = mqtt.Client(callback_api_version=CallbackAPIVersion.VERSION2) client.on_connect = on_connect client.on_message = on_message print(f"Connecting to {BROKER}...") client.connect(BROKER, PORT, 60) print("Exit with Ctrl+C") print("Waiting for images...") client.loop_forever()