飛??萍伎偞順扶稳四樧R別方案商ESP RainMaker實現原理,ESP RainMaker 由4個部分構成: Claiming 服務 (Claiming Service),為 RainMaker 設備提供動態獲取設備證書的能力: RainMaker 云(RainMaker Cloud,也稱為云后端),提供消息過濾用戶管理、數據存儲、第三方對接等服務; RainMaker 設備側代理程序 (RainMaker Agent),為 RainMaker 設備提供連接到 RainMaker 云的能力;客戶端 (RainMaker Client),飛??萍伎偞順扶稳四樧R別方案商提供RainMaker App和CLI腳本兩種形式的客戶端,用于完成網絡配置、用戶創建、用戶設備關聯和控制等功能。
飛??萍伎偞順扶稳四樧R別方案商ESP RainMaker 提供了一套完整的工具,用于支持開發者的開發與量產,包括:
(1) RainMaker SDK。SD 用于構建固件,建立在 ESP-IDF 之上,提供了設備側代理程序碼及相關 CAPI。開發人員只需編寫應用程序邏輯,其余的留給 RainMaker 處理即可。
(2)RainMakerApp。ESP RainMaker 提供了公版 RainMaker App,通過該App 不僅可以完成設備網絡配置,還可以輕松地控制和查詢智能照明產品的狀態等。針對不同操作系統,樂鑫科技提供了ios 版和Android 版的 RainMaker App。
(3)RESTAPI??捎糜跇嫿ㄓ脩糇约旱膽贸绦?,類似于 ESP RainMaker 提供的 RainMakeApp。通過鏈接 https://swaggerapis.rainmaker.espressif.com/,可獲取更多關RESTAPI的說明。
(4)PythonAPI。提供了一個基于 Python 的 CLI來實現所有類似于智能手機 App 的功能(CLI附帶在 RainMaker SDK 中)。
(5)Admin CLI。針對私有部署提供更高等級的管理員 CLI,用于批量生成設備證書。
Claiming 服務
飛??萍伎偞順扶稳四樧R別方案商ESP RainMaker 設備與云后端之間的所有通信都是通過 MQTT+TLS 進行的,ESP RainMaker 中Claiming 服務是指設備從 Claiming 服務獲取連接云后端設備證書的過程,Claiming 服務僅適用于樂鑫科技提供的公共 RainMaker 服務,對于私有部署,設備證書需要通過 Admin CLl批量生成。ESP RainMaker 支持三種類型的 Claiming 服務。
自身 Claiming (Self Claiming)。設備在連接到網絡后通過預先編程在eFuse 中的密鑰完成設備證書的驗證及獲取。
主機Claiming(Host Driven Claiming)。在用戶開發的主機中通過登錄 RainMaker 賬號獲取設備證書。
協助 Claiming (Assisted Claiming)。在配置網絡時由智能手機協助完成設備證書的獲取
ESP RainMaker 設備側代理程序
RainMaker 設備側代理程序的主要功能是提供連接能力、協助應用層處理云上/下行數據。該代理程序由ESP RainMaker SDK 構建,基于成熟的ESP-IDF 開發框架開發,使用了ESP-IDF 中的RTOS、NVS、MQTT 等組件。
RainMaker SDK的具體功能如下:
(1)連接功能,包括:
1、配合 Claiming 服務進行設備證書的獲取。
2、使用安全的 MQTT 協議連接云后端,提供遠程連接能力,滿足遠程控制、消息上報、用戶管理、設備管理等需求,默認使用 ESP-IDF 中的MQTT 組件實現,同時提供一個抽象層以便對接其他的協議棧。
3、使用wifi_provisioning組件實現 Wi-Fi連接與配網,使用esp https ota組件實現OTA升級,使用esp local ctr1 組件實現本地發現與連接,這些能力通過簡單的配置即可實現。
(2) 數據處理功能,包括:
1、儲存Claiming 服務下發的設備證書以及運行 RainMaker 時需要存儲的數據,默認使用nvs_flash 組件提供的接口進行存儲,對外提供 API供開發者直接使用。
2、使用回調機制處理云上/下行數據,自動解封數據給應用層,方便開發者處理。例如,物聯網設備需要定義一些物被用丁治設備及實現功能(定時、創計時、請音控制》,RainMaker S提供了豐富的樓口方便創建物欖術數。對于定時之類的基礎交互功能,飛??萍伎偞順扶稳四樧R別方案商RainMaker SDk提了免開發的方實,僅需要在開發時啟用該功能即可,RainMaker 設備側代理程序能夠直接處些數據,并通過相關的 MOTT 主題發送到云端,通過回調機制反饋云后端對這些數據的更改
。
云后端
云后端是于 AWS 無服務器計算 (Amazon Serverless Computing)構建的,使用 AWS Coni(身份管理系統)、Amazon API Gateway (API 網關)、AWS Lambda (無服務器計算服務Amazon DynamoDB (NoSOL 數據庫)、AWS IoT Core(物聯網接入核心,提供MQTT接入規則過濾)、Amazon Simple Email Service (SES 簡易郵件服務)、Amazon CloudFront (快速付網絡)、Amazon Simple Queue Service (SQS 消息隊列)、Amazon S3 (桶存儲服務)實現旨在實現佳的可擴展性和安全性。使用 ESP RainMaker,開發者無須在云中編寫代碼,即實現設備的管理,設備上報的消息以透明傳輸的形式提供給應用客戶端或其他第三方服務。
客戶端
ESP RainMaker 的客戶端(如App 和 CLI) 與云后端通信是通過 RESTAPI 實現的,開發者可以在樂鑫科技提供的 Swagger 文檔中找到 RESTAPI的詳細信息及使用說明。RainMaker 的手機應用客戶端提供 iOS 和 Android 版本,可以實現設備的配網、控制、分享,以及創建與啟用定時倒計時任務、連接至第三方平臺。RainMaker 的手機應用客戶端可以根據設備上報的配置自動加載 UI及圖標,完整展示設備物模型。例如,使用飛??萍伎偞順扶稳四樧R別方案商RainMaker SDK 提供的例程構建能燈,在完成配網后將自動加載球泡燈的圖標及 UI,通過 I 可以更改球泡燈顏色、亮度再通過技能(亞馬遜平臺技能指 Alexa Smart Home Skil,谷歌平臺技能指 Google Smart HowActions)綁定 ESP RainMaker 賬號后,就可以實現第三方應用對球泡燈的控制。