映翰通提供aws_iot
示例以便于客户基于InGateway开发上传数据至AWS IoT并接收AWS IoT下发数据的Python App(以下简称App)。该示例主要基于AWS IoT Device SDK
实现上传数据至AWS IoT以及接收AWS IoT下发的数据,AWS IoT Device SDK
的详细使用方法请访问aws-iot-device-sdk-python。
在进行开发和测试前,你需要具备以下条件:
- InGateway
- 固件版本
- IG902:
IG9-V2.0.0.r12644
及以上(请联系客服获取) - IG501:
IG5-V2.0.0.r12884
及以上(请联系客服获取)
- IG902:
- Python3 SDK版本
- IG902:
py3sdk-V1.3.9_Edge-IG9
及以上(请联系客服获取) - IG501:
py3sdk-V1.3.9_Edge-IG5
及以上(请联系客服获取)
- IG902:
- 固件版本
- VS Code软件
- AWS IoT账号
如果你已经在AWS IoT上完成了“物品”、“证书”和“策略”的配置,可以跳过这一小节。
-
步骤1:登录AWS IoT
访问https://aws.amazon.com/登录AWS。
-
步骤2:进入IoT Core
登录成功后点击“物联网 > IoT Core”进入“AWS IoT”。
进入“AWS IoT”后页面如下图所示:
-
步骤3:创建物品
选择“管理 > 物品”进入“物品”页面点击“注册物品”或“创建”以创建物品。
选择“创建单个物品”。
随后为物品设置名称,如
aws_iot_test
,其余项使用默认配置即可,配置完成后点击“下一步”。点击“创建证书”。
证书创建完成后需要下载物品的证书和私有秘钥并激活证书,之后点击“完成”以完成创建物品。
物品创建成功后如下图所示:
-
步骤4:创建策略
选择“安全 > 策略”进入“策略”页面点击“创建策略”或“创建”以创建策略。
在“创建策略”页面输入策略名称并参考下列配置来配置策略(该策略使所有客户端都能连接到AWS IoT),配置完成后点击“创建”完成策略创建。
- “操作”中填入
iot:*
- “资源ARN”中填入
*
- “效果”选择“允许”
策略创建成功后如下图所示:
- “操作”中填入
-
步骤5:配置证书
选择“安全 > 证书”进入“证书”页面,如下图所示:
至此,完成了AWS IoT环境准备。
-
准备开发环境
设备联网、软件更新、IDE软件获取等基础的配置操作请查看MobiusPi Python Development Quick Start。以下操作我们将假设你已经完成了InGateway的软件更新、设备联网、开启调试模式等配置。
-
建立项目文件夹
建立一个项目文件夹,最终项目文件夹的结构如下(除创建物品时下载的证书和私有秘钥外,其余项均可从InGateway-Python-Examples下载):
├── .vscode │ └── sftp.json ├── build ├── lib ├── src │ │── 626f4a303d-certificate.pem.crt │ │── 626f4a303d-private.pem.key │ │── aws_iot_mqtt_client_example.py │ │── main.py │ └── rootca.crt └── setup.py
.vscode
:VS Code配置文件夹sftp.json
:与InGateway建立SFTP连接所需的SFTP配置文件。
build
:App发布包文件夹。lib
:App第三方依赖库文件夹。src
:App源码文件夹setup.py
:App说明文件。
-
步骤1:安装AWS IoT Device SDK
建立与InGateway的SFTP连接,操作步骤见建立SFTP连接。SFTP连接建立成功后,在左侧空白处右键选择“Sync Local->Remote”将代码同步到InGateway。
同步成功后,在“终端”中输入
pip install AWSIoTPythonSDK --user
命令为App安装AWS IoT Device SDK依赖库(安装前请确认InGateway已经联网成功)。安装完成后如下图所示:
-
步骤2:修改代码
使用VS Code打开项目文件夹,选中
aws_iot_mqtt_client_example.py
,根据你的实际情况修改脚本中的以下参数:
-
步骤3:调试代码
如何使用VS Code调试代码请参考调试代码。
main.py
的运行结果如下图所示:
-
步骤4:在AWS IoT中查看上报数据
在AWS IoT“测试”页面的“订阅主题”中输入
aws_iot_mqtt_client_example.py
中的pub_topic
参数,默认为data/published/by/client
,其余项使用默认配置即可。配置完成后点击“订阅主题”。随后可在相应的主题中看到AWS IoT接收到的数据。
-
步骤5:在AWS IoT中下发数据
在AWS IoT“测试”页面的“发布主题”中输入
myAWSIoTMQTTClient.subscribe
方法的第一个参数,默认为sdk/test
。配置完成后点击“发布到主题”。随后在“终端”窗口中可以查看接收到的下发数据。
至此,完成了上传数据至AWS IoT并接收AWS IoT下发的数据。