最近实验有需要用到MQTT传输图像的需求,本人也不太会写除Python以外的代码,恰好今天读到嵌入式圈内的大佬@DS小龙哥的文章:基于阿里云物联网平台设计的实时图传系统 _ 采用 MQTT 协议传输图像
受大佬启发,今天利用Python写一个简单的MQTT图传程序。
软件:
Pycharm
MQTTX
Wireshark
手机端APP:IoT MQTT Panel
由于大佬在文章中已经写了关于在阿里云创建产品、设备及消息转发的相关设置,本文将不再赘述,添加设备后如下图所示:
我们利用Python脚本发送随机数检查设备接收信息的情况:
import time
import json
import random
import paho.mqtt.client as mqtt
#username和password
#可直接在设备页面一键复制
client_id = f"client_id"
timestamp = str(int(time.time()))
username = f"username"
password = f"password"
# MQTT连接地址
broker = f"mqtthosturl"
port = 1883
# 回调函数
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe(f"/sys/${
ProductKey}/${
deviceName}/thing/event/property/post")
#注意把自己的设备信息更换
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
# 创建客户端
client = mqtt.Client(client_id=client_id)
client.username_pw_set(username, password)
# 绑定回调函数
client.on_connect = on_connect
client.on_message = on_message
# 连接到阿里云物联网平台
client.connect(broker, port, 60)
# 启动MQTT客户端
client.loop_start()
# 发送随机数的函数
def