Python脚本自动上报——“完成第二阶段考核目标上报1000条数据”

网友投稿 790 2022-05-30

物联网全栈活动的第二阶段的考核目标:

如何上报 1000 条数据?

这个操作并不难,并且方法也比较多:

Python脚本自动上报——“完成第二阶段考核目标上报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个脚本同时运行,可以更快达成目标)

设备接入 IoTDA

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python os模块 --- 操作系统接口模块
下一篇:Android aab打包报错(持续更新中~)
相关文章