WIFI物聯網平臺微信端開發分享

本文由企鵝圈原創成員Hunter_Zhu貢獻。

本篇文章是基於最近一個項目微信端開發過程的一個總結,文中主要介紹了雲智易平臺下微信端開發的流程、該平臺提供的主要功能以及此次H5開發使用到的一些UI組件,可以幫助企鵝仔快速對該平臺微信開發有個瞭解。

        本文介紹的微信硬件物聯網開發思路不侷限於某個平臺,對市場上所有的平臺,如機智雲也是適用的,特此說明。


一、創建微信應用,配置微信服務器

         在雲智易開發平臺中,開發者需要在應用管理中創建一個微信應用,填寫微信公衆號的基本信息:APPID, APPSecret等,另外平臺會爲該應用生成一對APPUrl以及APPToken可用於配置微信公衆平臺設備功能的服務器配置,如果開發者採用這種方式,那麼微信服務器轉發的設備事件(如綁定/解綁/訂閱設備狀態等)都由雲智易平臺處理。當然,開發者也可以採用另外一種方式,即自身先處理微信硬件的設備事件,並轉發設備事件通知雲智易平臺。

         在微信硬件平臺中創建了產品後,我們就可以方便地在雲智易平臺中指定授權的微信產品號批量完成設備微信授權,獲取設備的二維碼鏈接。

         在此部分中主要體現物聯網中用戶管理、設備管理、用戶和設備綁定的情景。

二、微信設備控制

         在雲智易平臺中,微信H5和服務器採用websocket進行通信。上圖是雲智易平臺提供的微信應用開發流程圖,從圖中可以看出,微信設備開發可分5步走:

1)通過OAuth2.0獲取微信用戶的openid;

2)以openid爲參數獲取微信用戶的認證碼用於初始化XSDK實例;

3)以openid爲參數獲取微信用戶的設備列表;

4)向XSDK實例導入設備列表;

5)通過XSDK實例監聽設備的上報數據/向設備下發數據/監聽設備的在離線狀態變化/主動讀取設備數據等;

         上圖中通過調用雲智易平臺提供的xsdk.js文件即可完成物聯網的基本需求:用戶和設備通信(讀、寫、訂閱和通知),另外的功能拓展雲智易平臺通過RESTful接口想開發者進行提供,針對微信開發除了上述中獲取用戶綁定的設備列表接口外還包括:

         1)取消綁定設備;

         2)獲取微信JSAPI調用簽名;

         3)獲取設備的信息;

         4)修改設備的名稱;

         5)獲取微信用戶在雲智易平臺下的接口調用憑證access-token;

         雲智易平臺提供了大量的RESTful接口拓展各種情景的功能,大部分都需要上述獲取到的access-token來完成調用。

三、數據服務

         物聯網情景中大多不滿足於基本的設備控制,很多時候需要爲用戶提供歷史數據查看服務,雲智易平臺提供了四大數據服務:數據表,數據快照,統計規則以及數據轉發。

         數據表功能類似數據庫,是雲智易爲開發者提供的數據存儲功能,開發者通過調用RESTful接口可進行增刪查改操作;

         數據快照功能用於存儲設備某一時刻的狀態,通過設備快照服務可以獲取歷史數據以及變化的數據;

         統計規則功能是基於數據快照的數據進行統計,獲取數據的特徵,如統計某個時間段內數據的最大值,最小值,平均值等信息;

         數據轉發服務可實現設備數據到開發者服務器的轉發,如設備上報的數據、設備的在離線狀態變化等。

         前面三大數據服務器都是可以通過RESTful接口來完成,在數據轉發服務中需要完成和微信開發中一樣的服務器驗證,隨後服務器就可以對轉發過來的數據進行個性存儲處理。

         最近一個項目開發中,本人在數據展現上使用的是百度ECharts圖表,ECharts功能強大,在實時數據和歷史數據展現過程中主要使用了其中的數據區域縮放組件(dataZoom),通過這個組件,我們可以對大量的數據進行展現,對數據區域進行防縮、平移以關注某一小段的數據。如下圖所展示,有了這兩個功能就能實現大量數據的顯示查看。

四、告警功能

         雲智易平臺中提供了兩種設備告警的方式,一種是通過微信公衆號直接推送告警,另外一種用戶在設備控制頁面可以查看告警的消息。第一種方式是通過設置認證了的微信服務號的模板消息實現的,不需要涉及編程,對於第二種是通過平臺提供的RESTful接口進行獲取,然後再向用戶進行展現。告警功能實現了設備出現異常時對用戶通知的實時性,提示用戶前去查看,告警的內容可以包括:設備某個數值超過指定範圍獲取設備的在離線狀態通知等。

公衆號推送告警信息:

設備控制頁面中獲取告警列表:

五、UI組件

         最後,向大家分享一下微信H5開發中一個不錯的UI組件——MUI,其以ios平臺UI爲基礎,追求原生UI感覺,如下圖的輸入對話框。除此以外,在性能上也有很好的用戶體驗。

更多嵌入式Linux和物聯網原創技術分享敬請關注微信公衆號:嵌入式企鵝圈


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章