Standard SDK: [RTL8195AM] Google Cloud IoT
简介
设定装置
Cloud IoT Core 提供全方位管理的整合式服务,可让您以简便安全的方式针对全球各地装置的 IoT 资料进行大规模的连结、管理和撷取作业。 Cloud IoT Core, 结合 Google Cloud IoT platform 的其他服务, 就能够即时搜集、处理、分析或以视觉化方式呈现相关IoT资料来提高运营效率。
将装置的遥测资料传送至 Cloud Pub/Sub 主题来触发 Cloud 应用功能。也可以利用 Cloud Dataflow 进行串流分析或是订阅者进行自订分析。
下列图表总结服务元件与资料流程:
Realtek 装置- Ameba 已支援 Google Cloud IoT MQTT Protocol 来连接至 Cloud IoT 与发布遥测资料。
設置 Google Cloud IoT Platform
- 准备事项
- 安装 gcloud CLI
$ gcloud components update3. 安装 beta 元件:
$ gcloud components install beta如果是使用 Compute Engine VM,gcloud 的预设安装是不会允许升级元件。可以利用下列指令来重新安装 gcloud:
$ sudo apt-get remove google-cloud-sdk $ curl https://sdk.cloud.google.com | bash $ exec -l $SHELL $ gcloud init
- 注册装置
$ gcloud beta iot registries create my-registry --project=my-iot-project --region=us-central1 --event-pubsub-topic=projects/my-iot-project/topics/device-events–project=YOUR_PROJECT_ID: 填入之前的 project_id 记住范例指令中的 registry_id 也就是‘my_registry’。 2. 建立 public/private 金钥 这个步骤示范如何生成 RSA 金钥 当连接至 Cloud IoT Core 时,每部装置透过自己的私密金钥来创建 JWT 使 Cloud IoT Core 利用装置的公开金钥来认证。 执行下列指令来使用 OpenSSL 生成 RSA 金钥:
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout rsa_private.pem \ -out rsa_cert.pem -subj "/CN=unused"现在可以找到两个档案: rsa_private.pem 与 rsa_cert.pem。 3. 建立裝置 执行下列指令来使用 RSA 凭证新增 RS256 认证装置:
$ gcloud beta iot devices create my-rs256-device --project=my-iot-project --region=us-central1 --registry=my-registry --public-key path=rsa_cert.pem,type=rs256–project=YOUR_PROJECT_ID: 填入之前的 project_id 记住范例指令中的 device_id 也就是 ‘my-rs256-device’。 4. 新增 Cloud Pub/Sub 订阅 创建一个 Cloud Pub/Sub 订阅来接收遥测资料事件:
$ gcloud beta pubsub subscriptions create projects/my-iot-project/subscriptions/my-subscription --topic projects/my-iot-project/topics/device-events记住范例指令中的subscription_id 也就是 ‘my-subscription’。
复制 4.0b_patch_google_cloud_iot_nonNDA_(v02)\* patch 档案且取代至 standard SDK sdk-ameba-v4.0b_without_NDA_GCC_V1.0.0\*。 确认所有的 patch 档案皆已复制到 SDK
1. example_google_cloud_iot.c
档案路径为 $sdk\component\common\example\google_cloud_iot\example_google_cloud_iot.c。
请填写下列装置相关资讯。
验证范例
#define project_id "your_project_id" #define registry_id "your_registry_id" #define device_id "your_device_id" #define count 100 static const unsigned char *private_key = \””project_id、registry_id 与 device_id 在先前注册装置的步骤已经设定好。 count 是欲发布遥测资料的数目。 private_key 则是 OpenSSL 所生成的内容 rsa_private.pem,并且记得 LINE ENDING。 对于LINE ENDING格式,“应该在每行的开头添加,\ n”\如果该行不是最后一行,则应添加到行尾,并且应该在最后一行的末尾添加\ n“。 以下是显示原始pem键和填充LINE ENDING后的键的示例。 原文如下: 新增完LINE ENDING后: 也可以修改欲发布讯息 payload 中的内容。
- 编译
$ cd /cygdrive/SDK_LOCATION/project/realtek_ameba1_va0_example/GCC-RELEASE步骤 3: 使用 make 指令来编译 project
$ make如果终端机出现输出讯息 “Image manipulating”, 表示images 成功被编译。 步骤 4: 下载程式码并且复制 project\realtek_ameba1_va0_example\GCC-RELEASE\application\Debug\bin 中的 image 档案ram_all.bin 至 MBED
- 启动装置
ATW0 Network set SSID ATW1 Network set passphrase ATW2 Network set Key ID ATWC Join a network假设欲连接至 WPA2 模式之 AP,则下列为指令范例:
#ATW0=SSID #ATW1=passphrase #ATWC当 Wi-Fi 连结成功后,范例就会开始: 假设Publishing the payload失败 可采用下列步骤解决问题 1) 在GCP Console中选择Registries页面 2) 在预设主题下将下拉框从’无’更改为我们创建的主题 ex:projects/my-iot-project/topics/device-events 3) 更新
- 验证
$ gcloud beta pubsub subscriptions pull --auto-ack \ projects/my-iot-project/subscriptions/my-subscription
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. 使用条款