Python脚本自动上报——“完成第二阶段考核目标上报1000条数据”
物联网全栈活动的第二阶段的考核目标:
如何上报 1000 条数据?
这个操作并不难,并且方法也比较多:
1.最笨的方法,人工把MQTT模拟器的“Publish”按钮点击1000次,这个方法可行,却肯定没有人愿意这么干
2.使用按键精录或者Automate等自动化操作软件,把MQTT模拟器的“Publish”按钮点击1000次,这个也比较可行
3.上报数据就是向服务器上提交数据嘛,把我们要提交的数据写成脚本,循环运行就不行了?Java,Python都可以的
后来官网给出的方法是使用华为云自带的虚拟设备自动功能,但在群里看到有同学反映虚拟设备自动上报时,设备会自动离线。
我使用的是第3种方法,在这里简单分享一下:Python脚本自动上报。
也是挺简单的,只需要3步:下载,修改,运行
1.下载Demo
在设备接入服务的主页右下角点击“SDK下载”
依次从左侧展开 “开发指南”--“设备侧开发”--“使用MQTT Demo接入”--“Python Demo使用说明”
https://support.huaweicloud.com/devg-iothub/iot_02_2129.html
基本上就是按照文档中的方法一步步向下操作就可以了。
我把关键的几步分享出来
1.在这一步点击下载Demo样例
2.安装库文件
2.修改Demo文件
打开PyCharm,导入项目,在IoT_device_demo下3个Demo文件,我们打开 properties_sample.py
需要配置的地方有2处:
1.客户端配置
# 客户端配置
client_cfg = IoTClientConfig(server_ip='服务地址',
device_id='设备ID',
secret='设备密钥', is_ssl=False)
2.上报属性配置
这里需要注意一点,你连接了什么设备,这个设备有什么属性,就在propterty中填写相应的属性名,在“value”中填写相应的属性值,不要搞错了
我使用的是Smart_Door设备,所以它的属性设置如下所示。
# 定时上报属性
while True:
# 按照产品模型设置属性
service_property = ServicesProperties()
service_property.add_service_property(service_id="sensor", property='lock_state', value="ON")
service_property.add_service_property(service_id="sensor", property='body_state', value="0")
iot_client.report_properties(service_properties=service_property.service_property, qos=1)
time.sleep(5) #上报间隔
3.运行
设置好之后,运行,mid的值会不断增加,当看到mid的输出结果大于2000,约一个半小时,就可以结束运行,等待服务器端统计数据更新
Publish success---mid = 2109
(PS:你也可以把这个Demo复制2份,分别配置Smart_Light和Smart_Humidifier,再把时间间隔调低,3个脚本同时运行,可以更快达成目标)
- 点赞
- 收藏
- 关注作者
评论(0)