本文介绍如何快速地使用Python Link SDK,通过MQTT协议,实现设备与物联网平台之间连接和通信的整体操作。
背景信息
本文以夜灯开关为例,通过配置Python Link SDK,模拟设备使用MQTT协议接入物联网平台。设备通过自定义Topic,将数据上报至物联网平台。
关于物联网平台的更多信息,请参见什么是物联网平台。
创建产品和设备
准备开发环境
本示例的开发环境为Python 3.6,开发工具为PIP 3.6。关于环境的更多说明,请参见开发环境设置。
配置设备端SDK
运行结果
- 在Demo可执行文件所在目录下,执行以下命令,运行Demo可执行文件。
python mqtt_quick_start.py
- Demo运行成功后,设备端运行如下日志,设备(LightSwitch)成功接入物联网平台。
2021-05-07 15:27:10,725-6508-14504 - linkkit:linkkit:info - INFO - config_mqtt enter 2021-05-07 15:27:10,725-6508-14504 - linkkit:linkkit:debug - DEBUG - connect_async 2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:debug - DEBUG - LoopThread thread enter 2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:debug - DEBUG - enter 2021-05-07 15:27:10,727-6508-4408 - linkkit:linkkit:info - INFO - start connect 2021-05-07 15:27:10,729-6508-4408 - linkkit:linkkit:debug - DEBUG - current working directory:D:\****** 2021-05-07 15:27:10,799-6508-4408 - Paho:client:_easy_log - DEBUG - Sending CONNECT (u1, p1, wr0, wq0, wf0, c1, k60) client_id=b'a18wP******&LightSwitch|securemode=2,signmethod=hmacsha1,ext=1,lan=Python,_v=1.2.0,sii=Eth|03ACDEFF0032|Eth|03ACDEFF0031,timestamp=1620372430|' 2021-05-07 15:27:10,831-6508-4408 - Paho:client:_easy_log - DEBUG - Received CONNACK (0, 0) 2021-05-07 15:27:10,831-6508-4408 - linkkit:linkkit:info - INFO - __on_internal_connect
- 在运行的Demo中,输入3,模拟设备LightSwitch订阅Topic
/a18wP******/LightSwitch/user/get
。2021-05-07 16:03:52,423-25352-26452 - Paho:client:_easy_log - DEBUG - Sending SUBSCRIBE (d0, m2) [(b'/a18wP******/LightSwitch/user/get', 1)] subscribe topic success:0, mid:2 2021-05-07 16:03:52,440-25352-24916 - Paho:client:_easy_log - DEBUG - Received SUBACK 2021-05-07 16:03:52,440-25352-24916 - linkkit:linkkit:debug - DEBUG - post_message :'on_subscribe' 2021-05-07 16:03:52,440-25352-24916 - linkkit:linkkit:debug - DEBUG - post_message success 2021-05-07 16:03:52,441-25352-25544 - linkkit:linkkit:debug - DEBUG - thread runnable pop cmd:'on_subscribe' 2021-05-07 16:03:52,441-25352-25544 - linkkit:linkkit:debug - DEBUG - __on_internal_subscribe mid:2 granted_qos:1 on_subscribe_topic mid:2, granted_qos:1
Topic订阅成功后,您可以返回物联网平台,在设备详情页面的Topic列表页签,单击订阅的Topic操作栏的发布消息,然后在发布消息对话框的消息输入栏中,输入一条消息,例如:This is a test message from Alibaba Iot Platform.,模拟从物联网平台向设备发送消息。 - 在运行的Demo中,输入5,模拟设备LightSwitch通过Topic
/a18wP******/LightSwitch/user/update
,向物联网平台上报了一条消息。2021-05-07 16:06:23,786-30364-20372 - Paho:client:_easy_log - DEBUG - Sending PUBLISH (d0, q1, r0, m3), 'b'/a18wP******/LightSwitch/user/update'', ... (53 bytes) publish topic success:0, mid:3 2021-05-07 16:06:23,799-30364-27344 - Paho:client:_easy_log - DEBUG - Received PUBACK (Mid: 3) 2021-05-07 16:06:23,799-30364-27344 - linkkit:linkkit:debug - DEBUG - post_message :'on_publish' 2021-05-07 16:06:23,806-30364-27344 - linkkit:linkkit:debug - DEBUG - post_message success 2021-05-07 16:06:23,806-30364-11596 - linkkit:linkkit:debug - DEBUG - thread runnable pop cmd:'on_publish' 2021-05-07 16:06:23,808-30364-11596 - linkkit:linkkit:debug - DEBUG - __on_internal_publish message:3 on_publish_topic mid:3
- Demo运行成功后,设备端运行如下日志,设备(LightSwitch)成功接入物联网平台。
-
您可以在物联网平台控制台,查看设备的状态和运行日志。
- 左侧导航栏,选择在线,则表示设备与物联网平台成功连接。
- 在左侧导航栏,选择 ,选择夜灯开关产品后,查看设备上线、订阅Topic和上报消息的日志。说明 您可以忽略关于订阅Topic
/sys/a18wP******/LightSwitch/thing/deviceinfo/update_reply
的日志。该订阅为SDK自带默认功能,不影响您的体验。
- 左侧导航栏,选择在线,则表示设备与物联网平台成功连接。
后续步骤
设备接入物联网平台后,您可以管理设备并对其进行监控运维。关于物联网平台的更多功能,请参见物联网平台产品功能。
使用Python Link SDK配置相关高级功能,请参见Python Link SDK概述。