作者:俏巴
概述
前面介绍了基于开源JAVA MQTT Client连接阿里云IoT,这里面继续介绍如果使用Python MQTT Client连接阿里云IoT。
操作步骤
1、创建产品和设备
参考:阿里云物联网平台Qucik Start 创建产品和设备部分。
2、建议先使用MQTT.fx完成连接的快速测试及获取连接需要的相关信息,方便后续测试
注意:关于认证签名的生成,可以参考签名工具中的js脚本,也可以参考JAVA MQTT Client的示例,Python这里不再单独实现。
3、Python MQTT SDK安装
pip install paho-mqtt
4、测试Code
# encoding: utf-8
import paho.mqtt.client as mqtt
# Client对象构造
MQTTHOST = "********.iot-as-mqtt.cn-shanghai.aliyuncs.com"
MQTTPORT = 1883
mqttClient = mqtt.Client("pythondevice2|securemode=3,signmethod=hmacsha1|")
mqttClient.username_pw_set("pythondevice2&********", "5D1090BECB4E4AED75BD5208EA420275********")
# 连接MQTT服务器
def on_mqtt_connect():
mqttClient.connect(MQTTHOST, MQTTPORT, 60)
mqttClient.loop_start()
# publish 消息
def on_publish(topic, payload, qos):
mqttClient.publish(topic, payload, qos)
# 消息处理函数
def on_message_come(lient, userdata, msg):
print(msg.topic + " " + ":" + str(msg.payload))
# subscribe 消息
def on_subscribe():
# 订阅监听自定义Topic
mqttClient.subscribe("/********/pythondevice2/user/update1", 1)
mqttClient.on_message = on_message_come # 消息到来处理函数
def main():
on_mqtt_connect()
# 自定义Topic消息上行
on_publish("/********/pythondevice2/user/test2", "Hello Python!", 1)
# 系统属性Topic消息上行
on_publish("/sys/********/pythondevice2/thing/event/property/post", "{\"method\":\"thing.service.property.set\",\"id\":\"1745506903\",\"params\":{\"Status\":1},\"version\":\"1.0.0\"}", 1)
on_subscribe()
while True:
pass
if __name__ == '__main__':
main()
5、测试
- 5.1 系统Topic属性上报效果
- 5.2 自定义Topic下行消息测试
消息的全链路查询可以到:运维监控--》日志服务 中查询。
6、如果想直接使用阿里云官方SDK,参开[官方SDK
](https://help.aliyun.com/document_detail/98292.html?spm=a2c4e.11153940.0.0.54c2750dFNmTuP)
参考链接
使用MQTT.fx接入物联网平台
基于开源JAVA MQTT Client连接阿里云IoT
阿里云物联网平台Qucik Start