國內物聯網平台(5)
——機智雲IoT物聯網雲服務平台及智能硬件自助開發平台
馬智
平台定位
- 機智雲平台是致力於物聯網、智能硬件雲服務的開放平台。平台提供了從定義產品、設備端開發調試、應用開發、產測、運營管理等覆蓋智能硬件接入到運營管理全生命周期服務的能力。
- 機智雲平台為開發者提供了自助式智能硬件開發工具與開放的雲端服務。通過傻瓜化的工具、不斷增強的SDK與API服務能力最大限度降低了物聯網硬件開發的技術門檻,降低研發成本,提升開發者的產品投產速度,幫助開發者進行硬件智能化升級,更好的連接、服務最終消費者。
產品功能
IoT PaaS服務
為IoT開發者提供智能設備自助開發工具、后台技術支持服務,實現設備遠程操控管理、數據存儲分析、第三方數據整合、硬件社交化等技術服務,快速實現產品互聯網化,讓硬件開發變得更快、更有創意。
企業SaaS服務
定向遠程升級、規則引擎、消息推送、設備自動化操作、設備聯動、企業API、自定義統計分析、2G/3G產品支持和多種數據輸出接口等,全面提升產品接入后的生產支持、庫存、經銷商、售后、用戶等一站式管理和服務能力。
GDMS系統
企業智能設備管理系統,支持BT/BLE/Wi-Fi/移動網絡,設備實時運行狀態查看及管理,設備使用情況統計及地圖分布,用戶統計與管理,設備故障/報警實時推送跟蹤,多租戶管理,支持無限級銷售渠道與下級企業管理。
工具服務
自助開發工具
將智能硬件的軟件開發工具化、模塊化,在雲端提供自助服務界面,把智能硬件的功能描述成數據點,通過簡單的表單操作在雲端自助定義一款產品功能,系統自動生成嵌入式開發協議文檔、手機應用SDK和雲端接口。
GoKit開發套件
適用於機智雲自助開發平台的物聯網開源教學開發板 ,集成馬達、LED、Wi-Fi、紅外光感、溫濕度等傳感器,快速實現多種智能硬件解決方案,支持70多款主流模塊,自帶微信硬件應用方案,快速實現IOT設備開發。
開發者服務
企業開放API,模組及MCU開源代碼、詳細的說明文檔、完善的SDK、Wi-Fi設備接入測試Demo APP,自動化產測工具、十款開源APP,GoKit智能硬件范例源碼,真人教學視頻,專業的FAE支持和24小時客戶服務。
架構
機智雲
機智雲雲端提供了產品的定義、產品數據點定義、虛擬設備調試、M2M服務、API服務等功能。為設備、應用接入提供雲服務
GAgent
設備端的模組系統GAgent,通過使用GAgent,開發者可根據機智雲提供的協議與GAgent對接,使設備可快速接入。目前已兼容國內主流的Wi-Fi模塊、移動網絡模塊
IOT SDK
機智雲提供了基於IOS,Android系統的IOT SDK,開發者通過SDK,可快速實現APP開發,無縫接入機智雲,並根據SDK獲取機智雲平台逐步推出的新服務
MCU
開發者遵循機智雲自動生成的模組與MCU通訊協議進行MCU的開發
研發流程
技術方案
概念解釋
- GAgent:全稱Gizwits Agent,運行於Wi-Fi模塊中,設備通過GAgent接入機智雲服務器。 目前已兼容國內主流的Wi-Fi模塊, 開發者也可以通過獲取GAgent二次開發包實現自定義的模塊接入機智雲。
- 小循環:智能設備與手機、智能設備與智能設備之間,通過連接同一個路由器實現局域網內部的通信(查看狀態或控制),我們稱之為小循環。
- 大循環:智能設備通過路由器或直接接入互聯網以實現用戶的遠程監測與控制,我們稱為大循環。
- ProductKey:產品標識碼,開發者通過機智雲后台創建新產品后,自動生成的一個32位字符串。在機智雲的數據庫中是一個唯一的號碼,開發者完成開發寫入設備主控MCU后,機智雲通過此標識碼對設備進行識別並自動完成注冊。
- DID:設備號,當一個設備初次接入機智雲時,機智雲自動根據ProductKey以及設備Wi-Fi模塊MAC地址為此設備注冊一個did,此did全網唯一,用於與用戶的綁定及后續操作。
- PassCode:設備通行證,用於校驗用戶的綁定/控制權限。當用戶發起設備綁定時,只要是合法操作即可拿到此通行證,通過此通行證綁定設備並對設備進行有效期內的查看、控制等操作。GAgent首次運行時生成隨機數作為設備通行證,生成后保存在非易失性存儲器上。設備上線時需要上報給服務器。
- AppID:應用標識碼,當開發者需要為一款智能產品開發應用(包括iOS、Android、Web應用等)時,后台會自動生成一個AppID,並與此設備進行關聯。應用開發時需要填入此AppID。
- Onboarding:也叫配置入網,用戶將一款基於Wi-Fi的物聯網設備配置連接上路由器的過程稱為Onboarding。新設備第一次使用時需要知道路由器的賬號和密碼,以通過路由器連接互聯網。由於大多數的物聯網設備沒有自帶的屏幕和鍵盤,所以需要通過智能手機向設備發送路由器的SSID和密碼,這個過程機智雲稱為Onboarding。機智雲提供的Wi-Fi設備接入SDK中已經內置了此配置的功能。
- AirLink:機智雲對各種SmartConfig、SmartLink這種UDP廣播報方式對設備配置入網的技術統稱,兼容了多個Wi-Fi模塊廠商的配置協議,總結了一套良好用戶體驗的標准Onboarding操作流程,機智雲的Wi-Fi 設備接入SDK已經內置AirLink技術。
- SoftAP:由於目前各個Wi-Fi模塊廠商的Smart Config協議均未完全成熟,也不支持5G路由器信號。機智雲在提供了AirLink配置模式的同時也支持SoftAP模式配置設備接入路由器。當設備進入SoftAP配置模式時,設備本身將成為一個AP,智能手機可直接與設備進行連接,然后在手機上的界面上輸入路由器的SSID和密碼,設備接收到信息的時候會自動嘗試連接路由器,連接成功則自動切換到正常使用的模式。
關鍵概念 - 數據點
- 機智雲雲端和APP對設備上報的數據進行分析、處理,或設備對機智雲雲端和APP下發數據進行分析、處理,前提是雙方明確數據的含義。機智雲后台提供了數據點的定義界面,通過數據點定義,設備與雲端、APP端數據通信的含義將得到明確。
-
數據點定義的好處:
- 明確設備與雲端、APP端數據通信的含義。
- 雲端根據數據點定義,解析設備數據,用戶可使用"設備運行狀態","統計分析"等功能。
- 機智雲具有大數據統計接口,通過接口,可快速分析設備數據。
- 方便APP開發者開發,APP SDK可解析下發/上報等設備數據。
- 方便MCU開發,機智雲根據數據點定義,生成MCU與GAgent通信詳細串口通訊協議。
雲端管理 - 產品定義
1、創建產品
2、新設備接入向導
雲端管理 - 編輯數據點
3、通過方案模板創建生成產品數據點
雲端管理 - 編輯數據點
4、通過方案模板創建生成產品數據點
雲端管理 - 編輯數據點
5、手動編輯產品數據點
雲端管理 - 編輯數據點
6、新建數據點
雲端管理 - MCU開發文檔生成
7、根據上一步添加的產品數據點,頁面自動生成了《XX-機智雲接入串口通信協議文檔》和《XX-機智雲接入JSON文檔》(其中XX代表產品名稱),點擊文檔名即可進行下載,硬件開發人員只需按照文檔指示即可輕松完成硬件開發
雲端管理 - 設備調試
原生APP:產品開發資源提供android和iOS SDK,集成文檔以及Demo APP的下載。
當完成了產品數據點編輯后且產品的硬件設備已開發完成,可下載對應的SDK集成到已完成界面設計的移動應用,即可實現設備的控制。同時也可以直接下載並安裝Demo App,登錄后即可對連接並查看、控制設備。如果設備未完成開發,可以使用機智雲提供的虛擬設備進行功能的調試。
輕APP:使用機智雲提供的Open APIs(Http / WebSocket),可以快速開發網頁或微信應用等基於html的輕應用,用於管理和控制智能設備。
雲端管理 - 通過方案模板創建產品
方案模板列表
雲端管理 - 通過方案模板創建產品
應用方案模板
雲端管理 - 產品管理
產品信息查看
雲端管理 - 產品管理
產品信息編輯
雲端管理 - 產品管理
產品信息刪除
雲端管理 - 產品管理
設備數據點管理
雲端管理 - 產品管理
虛擬設備管理
雲端管理 - 產品管理
設備運行狀態
雲端管理 - APP應用管理
APP應用列表
雲端管理 - APP應用管理
創建應用
雲端管理 - APP應用管理
設備接入應用:
綁定應用就是將設備與應用進行關聯,這樣應用才可以對設備進行綁定控制等操作。
配置消息推送:
機智雲Android/ios應用支持接入"百度雲推送"和"極光推送"。在接入之前需配置消息推送,需將應用與百度推送或極光推送綁定。
設備端開發 - 原理
-
設備端的開發包含GAgent,MCU開發。設備能夠連接到雲端才能夠實現APP等客戶端對設備的遠程查看和控制,MCU數據通過GAgent與機智雲產生交互。
- GAgent:運行在可入網模組(WiFi、GPRS)上的應用程序,可使模組接入機智雲服務器,並上傳/接收數據。
- MCU:微控制單元,廠家設備控制器,例如單片機。
設備端開發 - 合作模組
設備端開發 - 合作模組
設備端開發 - MCU編程步驟
- 下載MCU與GAgent串口通訊協議
- 創建項目,完成定義產品數據點,機智雲根據數據點自動形成項目MCU與GAgent串口通訊協議
- 根據MCU與GAgent串口通訊協議,參考GoKit開發套件MCU程序,完成MCU與GAgent通訊
- 機智雲提供設備端調試工具
- 機智雲對廠家檢驗設備提供設備廠測模式
- 機智雲對MCU固件可進行管理,OTA升級
- 機智雲對MCU與雲端交互的數據進行統計分析
設備端開發 – Gagent
- 對於WiFi設備,機智雲已經對主流的WiFi模塊進行了適配,在WiFi模塊中燒入機智雲提供的固件后設備即可連接到雲端。
- 對於蜂窩網絡設備(GPRS),與機智雲合作GPRS模塊廠家已經完成GAgent移植工作,使用合作廠家GPRS模塊,即可連接到雲端。
- 對於Android等系統、以太網設備等,機智雲提供了SDK(即GAgent),開發者移植SDK的底層驅動后就可以實現設備到雲端的連接。
應用開發 - 原理
機智雲目前提供3套SDK:
- iOS平台原生SDK
- Android平台原生SDK
- APICloud跨平台SDK
開發者可以根據項目需要自行選擇,其中APICloud版本SDK可以用H5技術一次開發,同時適配iOS和Android兩個平台
應用開發 - APP方案
-
原生SDK:
- 主要幫助開發者通過sdk接口調用的方式維護用戶系統,用戶與設備的綁定關系,設備的配置上線以及設備狀態的獲取和控制指令的發送。開發者應用SDK,無需對APP與設備、雲端交互進行再次開發,根據產品原型定義,可快速開發產品APP。同時機智雲推出十大開源項目,下載、學習開源項目APP源碼,更可快速應用機智雲SDK開發APP。
-
跨平台開發:
- 為了讓更多的企業、創客團隊以及個人開發者能享受到機智雲帶來的優質服務與便利,與各種優秀的平台進行合作。APICould 平台機智雲移動端開發模塊的上線,讓廣大開發者能用 JavaScript + HTML 寫出完美的、跨平台的移動應用。
應用開發 - 微信方案
- 應用機智雲提供WebSocket通信方案。WebSocket通信基本內容:用戶登陸,接收設備上線下線消息,發送和接收設備業務邏輯數據,心跳。
- 廠商需要在獨立部署的WEB系統中調用"用戶管理API"獲取身份資格,然后需要綁定設備才能控制設備。廠商需要在獨立部署的WEB系統中的Javascript中調用"Web Socket API"進行設備的控制與設備數據的實時展示,讓微信(網頁)應用能夠實時獲取設備狀態數據,對最終消費者提供更好的體驗。
應用開發 - 設備廠家業務雲開發
- 應用Noti接口接收設備事件,包括故障與報警事件、數據點編輯事件、設備上下線事件、設備狀態事件。使用Noti接口,可實時接收產品最新數據。
應用開發 - Android APP開源框架
-
Android開源框架工程源碼鏈接:
- https://git.oschina.net/dantang/GizOpenSource_AppKit_Android
-
Android Gokit App是使用開源框架工程的源碼范例,源碼鏈接:
- https://git.oschina.net/dantang/GoKit_Demo_Android
應用開發 - Android設備接入SDK
- 機智雲的設備接入SDK(以下簡稱SDK)封裝了手機(包括PAD等設備)與機智雲智能硬件的通訊過程,以及手機與雲端的通訊過程。
- 這些過程包括配置入網、發現、連接、控制、心跳、狀態上報、報警通知等。
- 使用SDK,可以使得開發者快速完成APP開發,開發者僅需關注APP的UI和UE設計即可,而相對復雜的協議與錯誤處理等事項可忽略。
應用開發 - 設備接入流程
- SDK已經封裝了所有的用戶、配置、發現、連接、控制的過程,開發者使用這些API可以完成上述流程中的功能開發,不需要再自行實現通訊協議。
- SDK采取回調的工作方式,所以必須設置必要的監聽,比如通用監聽和設備監聽,具體請參見流程詳解。SDK在主線程中給APP回調。
- Android SDK支持APP在Activity之間以及在Activity和Service之間傳遞對象。
應用開發 - 微信
-
機智雲
- 如圖①在微信接入業務場景中,通過開發者中心(site.gizwits.com)的圖形化界面定義設備功能,機智雲自動生成設備MCU與通信模組之間的串口通信協議,開發者根據協議文檔即可實現設備的聯網能力。
- 如圖②部分,設備接入機智雲后,機智雲提供了面向微信應用的API,提供傳輸設備數據到應用、應用向設備發起的控制信息的功能。
-
廠商服務器
- 廠商服務器是廠商為了滿足自己的微信應用,獨立部署的WEB系統。該系統通過機智雲平台提供的API進行與設備的數據、控制的實時通訊,解決智能硬件接入的需求;通過訪問微信公眾號平台的API實現以微信為渠道服務廠商最終消費者的需求。
- 首先,開發者可以為自己的應用設計個性化的HTML交互界面與功能。(如圖③④部分)
-
微信服務器
- 微信服務器主要為設備與廠商服務器之間的通信提供了一系列的接口,主要包括微信用戶賬號與設備的綁定/解綁定、接受/發送設備消息等,具體接口及使用方法可查看微信官方文檔,微信最近推出了微信硬件平台,在做微信接入前需要仔細了解微信公眾號與微信硬件平台,提供的功能要在不斷完善。
-
微信客戶端
- 微信客戶端提供了最終與用戶交互的操作界面,可以理解為就是一個運行在手機的瀏覽器,只不過是運行在微信公眾號這套體系下。開發者可通過自己申請的公眾號管理后台配置自定義的菜單
應用開發 - 數據接入SDK功能
-
用戶登錄
- 注冊用戶登錄的監聽
- 實現用戶登錄的回調方法
- 匿名登錄
- 實名登錄
- 第三方賬號登錄
-
數據接入
- 注冊數據接入的監聽
- 數據上傳
- 數據獲取
-
用戶賬號
- 用戶注冊
- 修改密碼
- 重置密碼
- 修改用戶信息
- 匿名轉換
- 獲取手機驗證碼
模組開發 - 測試集
-
WiFi測試最小集
- SoftAP
- AirLink
- 配置成功驗證
- 上電宣告驗證
- 小循環控制
- 大小循環切換
- 大循環控制
- GAgent_OTA
- 故障恢復
-
GPRS測試最小集
- 雲端注冊
- 大循環控制
- GAgent_OTA
模組開發 – 產品功能規格書
-
產品形態
- 標准版本形態
- 二次開發版本形態
- 源碼形態
- 產品名稱:機智雲WIFI通訊模塊(GAgent)
-
產品功能:
- 能夠連接機智雲的通用通訊模塊解決方案,硬件平台無關,目前適用於WiFi通訊模塊,部分功能規格適用於藍牙通訊模塊。為各種智能硬件提供連接機智雲的能力以及與硬件進行可靠數據通訊的能力。
-
支持協議
- 機智雲平台標准接入協議之App與設備通訊v4.0.1
- 機智雲平台標准接入協議之通用數據點協議v4.0.0
- 機智雲平台標准接入協議之設備與雲端通訊v4.0.2
- 機智雲平台標准接入協議之MCU與WiFi模組通訊v4.0.3
-
模式定義
- 生產模式:用於產品大規模生產時的檢測場景
- 配置模式:用戶第一次使用或者更改網絡配置的場景
- 工作模式:產品正常工作時的場景
生產運營 - 產測工具
-
產測工具簡介
- 機智雲產測工具為產品上線之后,對產品進行批量測試的工具。在大型生產中,能夠有效的監測批量產品質量,保證產品功能。
- 在機智雲開發者中心(site.gizwits.com)中,只有對產品擁有管理員權限和開發者權限的用戶才可以對產品進行產測。
-
產測步驟
- 添加產測配置文件
- 產測文件編輯和刪除
- 下載產測APP
- 掃描下載產測配置文件
- 開始產測
- 查看產測結果日志
- 查看歷史報告
生產運營 - 統計分析
- 連接記錄:大循環下設備與服務器連接
- 新增上線設備:首次有連接記錄的獨立設備數
- 活躍設備:指定周期內有一次或以上指令上報記錄的獨立設備
- 活躍周期:設備首次上線到最后一次上線的時間長度
- 連接時長:設備與手機從建立連接到斷開連接的單次時長
- 連接次數:每個在線時長區間實際發生的連接次數
生產運營 - OTA升級
-
OTA 英文全稱是Over-the-Air Technology,即空間下載技術。當設備連上雲端時會收到OTA升級通知,再通過HTTP完成固件升級。機智雲的OTA服務主要提供以下功能:
- OTA通知服務,即離線升級。當設備的固件程序有新版本發布,OTA 通知服務會推送升級通知到設備。
- OTA透傳服務,即在線升級。設備固件程序通過M2M 消息服務透傳到設備端。
- 支持一個產品同時有多個推送
- 支持wifi/mcu升級
- 支持定向升級。可指定設備mac地址、區域、舊固件版本進行推送。
- 支持定時推送。可自定義推送周期及推送時段。
- OTA進度統計分析