1111498_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

1111498_zh-CN

1111498_zh-CN

AWS云远程控制的RT云测试<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

1 简介

随着科学技术的快速发展,物联网(IoT)广泛应用于工业、农业、环境、交通、物流、安全以及其他基础设施等各个领域。物联网的使用使我们的生活更加丰富多彩和智能化。物联网的爆发式发展离不开云平台。目前,市场上有很多类型的云服务,例如亚马逊的AWS,微软的Azure,google cloud,中国的阿里云,百度云,OneNet等。

亚马逊AWS云是亚马逊提供的专业云计算服务。为全球各个国家和地区的客户提供全套基础设施和云解决方案。是目前拥有大量用户的云计算。AWS IoT 是一个托管云平台,允许连接的设备轻松、安全地与云应用程序和其他设备交互。

NXP跨界MCU RT产品推出了一系列AWS示例代码。本文主要以官方MIMXRT1060-EVK SDK中的remote_control_wifi_nxp代码为例讲解,实现与AWS物联网云、安卓手机APP、MQTTfx客户端的数据交互。本文的云拓扑如下:

1_1e.jpg

图1-1

2 AWS云运营

2.1 创建 AWS 账户

准备一张信用卡,然后前往下面的亚马逊链接创建一个AWS账户:

  https://console.aws.amazon.com/console/home

 

2.2 创建事物

打开AWS IOT链接:

https://console.aws.amazon.com/iot

选择管理下的物品项,如果是第一次使用,客户可以选择“注册物品”来创建物品。如果之前使用过,顾客可以点击右上角的“创建”按钮来创建该物品。选择“创建单个事物”来创建新事物,更多详情请看下图。

2-1.jpg

图2-1

2-2.jpg

图2-2

2-3.jpg

图2-3

2.3 创建证书

为新创建的事物创建证书,点击下图下方的“创建证书”按钮:

2-4.jpg

图2-4

证书构建完成后,会有证书创建的信息,表示证书已经生成,可以使用。

2-5.jpg

图2-5

请注意,下载文件:这个东西的证书,公钥,私钥。

它将用于mqttfx工具配置中。点击“下载AWS的根CA”,下载AWS IoT的根CA,mqttfx工具设置也会用到它。

打开根CA下载链接,可以下载CA证书。

RSA 2048 位密钥: VeriSign Class 3 Public Primary G5 根 CA 证书

2-6.jpg

图2-6

最后我们可以得到这些文件:

7abfd7a350-证书.pem.crt

7abfd7a350-private.pem.key

7abfd7a350-公钥.pem.密钥

AmazonRootCA1.pem

保存一下,以后会用到。

点击“激活”按钮激活证书,点击“完成”按钮。该政策稍后将附上。

 

2.4 创建策略

回到iot查看页面:

https://console.aws.amazon.com/iot/

选择安全项下的策略,以创建新策略。

2-7.jpg

图2-7

输入策略名称,在action区域填写:iot:*,Resource ARN区域填写:*

勾选允许项,点击创建按钮完成新策略的创建。

2-8.jpg

图2-8

2.5 事物依附关系

在事物、证书、策略创建之后,会将策略附加到证书,并将证书附加到事物。

2-9e.jpg

图2-9

选择安全项下的证书,在对应的证书项中选择“…”,会出现下拉列表,点击“附加策略”,选择刚刚创建的策略。然后点击附加事物,选择新创建的事物。

2-10.jpg

图2-10

2-11.jpg

图2-11

2-12.jpg

图2-12

现在,打开 Mange 项目下的 Things,查看详细的 Things 相关信息。

2-13.jpg

图2-13

双击该thing,在Interact项中,我们可以找到Rest API Endpoint,RT代码和mqttfx工具将使用这个endpoint实现云连接。

2-14.jpg

图2-14

检查安全性,你会发现之前创建的证书,说明这个东西已经附加了新的证书:

2-15.jpg

图2-15

到目前为止,我们已经完成了物联网相关的配置,接下来将用于MQTT fx、Android app、RT EVK板的连接和测试,我们也可以直接在网页中通过AWS shadow查看通信信息。

 

 

 

3 Android相关配置

3.1 AWS cognito配置

如果使用Android应用程序与AWS IoT云通信,AWS端仍然需要使用cognito服务来授权AWS IoT,然后访问设备影子。首先从以下链接创建一个新的身份池:

https://console.aws.amazon.com/cognito https://console.aws.amazon.com/cognito

3-1.jpg

图3-1

点击“管理身份池”,进入后点击“创建新身份池”

3-2.jpg

图3-2

3-3.jpg

图3-3

3-4.jpg

图3-4

这里会生成两个Role

Cognito_PoolNameAuth_Role

Cognito_PoolNameUnauth_Role

单击“允许”,完成身份池创建。

3-5.jpg

图3-5

请记录相关的身份池ID,它将在Android应用程序.properties中使用配置文件。

3.2 在 IAM 中为 cognito 创建副本

打开https://console.aws.amazon.com/iam

点击“访问管理”下的“策略”项

3-6.jpg

图3-6

选择“create policy”,创建一个IAM策略,在Policy JSON区域写入以下内容:

3-7.jpg

图3-7

{
 "Version": "2012-10-17",
 "Statement": [
 {
 "Effect": "Allow",
 "Action": [
 "iot:Connect"
 ],
 "Resource": [
 "*"
 ]
 },
 {
 "Effect": "Allow",
 "Action": [
 "iot:Publish"
 ],
 "Resource": [
 "arn:aws:iot:us-east-1:965396684474:topic/$aws/things/RTAWSThing/shadow/update",
 "arn:aws:iot:us-east-1:965396684474:topic/$aws/things/RTAWSThing/shadow/get"
 ]
 },
 {
 "Effect": "Allow",
 "Action": [
 "iot:Subscribe",
 "iot:Receive"
 ],
 "Resource": [
 "*"
 ]
 }
 ]
}

请注意,在 JSON 内容中:

“arn:aws:iot:::topic/$ aws /things/ /shadow/update”,

“arn:aws:iot:::topic/$ aws /things/ /shadow/get”

区域图3-5中的us-east-1

ACCOUNT ID,可以在我的账户右上角找到。

3-8.jpg

图3-8

3-9.jpg

图3-9

完成 IAM 策略创建后,返回 IAM 策略页面,选择 Filter Policies 作为客户管理,我们可以找到新创建的客户策略。

3-10.jpg

图3-10

3.3 在 IAM 中附加 Cognito 角色的策略

在 IAM 中,选择角色项:

3-11.jpg

图3-11

双击在cognito中创建池时生成的cognito_PoolNameUnauth_Role,单击附加策略,选择新创建的策略。

3-12.jpg

图3-12

3-13.jpg

图3-13

到目前为止,我们已经完成了AWS cognito的配置。

 

3.4 Android属性文件配置

创建一个.properties文件,内容为:

customer_specific_endpoint=

    cognito_pool_id=

thing_name=

区域=

请填写正确的内容:

REST API 端点图 2-14

COGNITO POOL IDfig 3-5

物体名称图2-14 左上角

REGION 图3-5 COGNITO POOL ID 中的区域数据

举个例子,我的属性文件内容是:

customer_specific_endpoint=a215vehc5uw107-ats.iot.us-east-1.amazonaws.com

cognito_pool_id=us-east-1:c5ca6d11-f069-416c-81f9-fc1ec8fd8de5

thing_name=RTAWSThing

区域=美国东部-1

实际使用时,请使用自己配置的数据,否则会连接到我的云端点。

4. MQTTfx配置和测试

MQTT.fx是一个基于EclipsePaho并用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息。您可以从以下链接下载此工具:

http://mqttfx.jensd.de/index.php/download

新的版本是:1.7.1。

 

4.1 MQTT.fx 配置

选择连接配置按钮,进入连接配置页面:

4-1.jpg

图4-1

配置文件名称:输入配置名称

Broker 地址: 即 REST API ENDPOINT

代理端口:8883

客户端ID:自由生成

CA文件:即下载的CA证书文件

Client Certificate File:相关证书文件

Client key File:私钥文件

Check PEM formatted

单击“应用”和“确定”完成配置。

4.2 使用AWS云测试连接

为了测试是否可以连接到事件云,可以进行初步的连接测试。

打开aws页面 https://console.aws.amazon.com/iot

此界面下方有一个测试按钮,可以通过其他客户端或自行测试。AWS 云和 MQTTfx 都订阅主题:$aws/things/RTAWSThing/shadow/update

MQTTfx 将数据发布到主题:$aws/things/RTAWSThing/shadow/update

可以发现云端测试端口和MQTTfx订阅端都可以接收到数据:

4-2.jpg

图4-2

下面对发布数据进行云端测试,可以看到MQTTFX订阅端和云端订阅端都可以接收到数据:

4-3.jpg

图4-3

到目前为止,AWS云可以在AWS物联网云和客户端之间传输数据。

5 RT1060及wifi模块配置

我们主要使用RT1060 SDK2.8.0 remote_control_wifi_nxp作为RT测试代码:

SDK_2.8.0_EVK-MIMXRT1060\boards\evkmimxrt1060\aws_examples\remote_control_wifi_nxp

测试平台为:MIMXRT1060-EVK

松下 PAN9026 SDIO 适配器 + SD 转 uSD 适配器

该项目默认使用 Panasonic PAN9026 SDIO ADAPTER。

5.1 WIFI和AWS代码配置

 项目需要可用的 WIFI SSID 和密码,因此请准备一个可用的 WIFI。然后在aws_clientcredential.h文件中添加 SSID 和密码。

#define clientcredentialWIFI_SSID “在此处粘贴 WiFi SSID。”

#define clientcredentialWIFI_PASSWORD “在此处粘贴 WiFi 密码。”

AWS 的连接也在文件中:aws_clientcredential.h

#定义客户端凭据MQTT_BROKER_ENDPOINT“a215vehc5uw107-ats.iot.us-east-1.amazonaws.com”

#定义客户端凭据IOT_THING_NAME“RTAWSThing”

#定义客户端凭据MQTT_BROKER_PORT 8883

 

5.2 证书和密钥配置

打开以下链接的SDK:

SDK_2.8.0_EVK-MIMXRT1060\rtos\freertos\tools\certificate_configuration\CertificateConfigurator.html

5-1.jpg

图5-1

生成新的 aws_clientcredential_keys.h,并替换旧的。以MCUXPresso IDE项目为例,文件位置为:

5-2.jpg

图5-2

构建项目并将其下载到 MIMXRT1060-EVK 板。

6 试验结果

Androd手机下载安装此文件夹下的APK:

SDK_2.8.0_EVK-MIMXRT1060\boards\evkmimxrt1060\aws_examples\remote_control_android\AwsRemoteControl.apk

SDK可以从这个链接下载:

欢迎 | MCUXpresso SDK 构建器

然后,我们可以使用Android应用程序远程控制RT EVK板载LED,测试结果是

6.1 APP和EVK测试结果

MIMXRT1060-EVK printf information

6-1.jpg

图6-1

打开和关闭 LED:

 6-2.jpg

图6-2

6-3.jpg

图6-3

6.2 MQTTfx 订阅结果

MQTTfx 订阅数据

打开LED,我们可以订阅两条消息:

6-4.jpg

图6-4

6-5.jpg

图6-5

 

关闭LED,我们还可以订阅两条消息:

6-6.jpg

图6-6

6-7.jpg

图6-7

两条消息中,第一条用于设置LED状态。第二个是用于报告EVK led信息的EVK。

MQTTfx 也可以使用发布页面,发布以下数据:

{"state":{"desired":{"LEDstate":1}}} 或 {"state":{"desired":{"LEDstate":0}}}

到主题:$aws/things/RTAWSThing/shadow/update

还可以实现板载LED的点亮或关闭。

6.3 AWS云阴影显示结果

打开LED:

6-8.jpg

图6-8

关闭 LED:

6-9.jpg

图6-9

综上所述,经过上述配置和测试,可以完成安卓手机远程控制RT EVK板载LED并获取信息。也可以使用MQTTFX客户端工具和AWS影子页面检查通信数据。

i.MXRT 106x回复:AWS 云远程控制的 RT 云测试<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你好, Vasudhevan G

松下 PAN9026 SDIO 适配器 + SD 转 uSD 适配器

SDK默认使用它,你也可以使用:

- AzurWave AW-NM191MA + Murata 美元 M.2 适配器
-AzurWave AW-NM191NF-uSD

或者

- Murata 1DX M.2 module
- Murata uSD M.2 Adapter

希望它能帮到你!

顺祝商祺!

克里

回复:AWS 云远程控制的 RT 云测试<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

你好,Kerry Zhou,

我们想知道您使用了什么 WiFi 模块。

此致,

瓦苏

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-05-2026 06:47 AM
更新者: