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

举报
wh_bn 发表于 2021/11/28 08:41:10 2021/11/28
【摘要】 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个脚本同时运行,可以更快达成目标)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。