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結尾後的鍵的示例。 原文如下: 新增完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
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款