開發與維運

應用案例:連接阿里IoT之溫溼度檢測

目錄:

實現功能

所需設備

AliIOT物聯網平臺配置

設備連接(EW11/EG11)

設備調試

設備WEB應用開發

設備運維大屏展示

完整文檔:[點此下載
](鏈接地址http://www.hi-flying.com/download-center-1/application-notes-1/download-item-industry-products-application-manual)
實現功能:
Elfin-EW11/EG11通過RS485端口連接一個溫溼度傳感器,讀取溫度、溼度數據上傳到阿里雲IOT平臺並在WEB網頁上展示出來。具體如下:

EW11/EG11主動讀取溫溼度傳感器的溫溼度值

EW11/EG11將讀取的溫溼度數值傳輸到阿里IoT雲端

IoT雲端數據以Web方式展示出來

使用設備:
1_yYJw.png

1、Elfin-EW11(配RJ45轉4Pin端子):1套

點此購買

2、Elfin-EG11(配RJ45轉4Pin端子):1套

點此購買

3、溫溼度傳感器(RS485接口):1個

12V1A電源:1個購買
點此購買

其中:溫溼度傳感器參數如下:
採用Modbus-RTU通訊規約

串口參數:RS485,波特率9600,數據位8,停止位1,校驗位無

地址碼:01

溫溼度傳感器通訊協議示例以及解釋:

舉例:讀取設備地址0x01的溫溼度值

問詢幀(16進制):
2_amvw.png
應答幀(16進制):(例如讀到溫度為25.8℃,溼度為62.9%RH)
3_3X90.png

溫度計算:

溫度:0102 H(十六進制)= 258 =>溫度= 25.8℃

溼度:0275 H(十六進制)= 629 =>溼度= 62.9%RH

讀取命令:01 03 00 00 00 02 C4 0B

回覆數據:01 03 04 02 75 01 02 6A 00(示例)

(注意:當溫度低於0 ℃時溫度數據以補碼的形式回覆,此處例子僅測試0 ℃以上溫度)

AliIOT物聯網平臺配置
1、 AliIOT物聯網平臺註冊、登錄:網址:https://iot.aliyun.com/products/iotstudio

2、 建立設備模型:根據對設備的抽象,在雲端建立設備模型。在本例中,創建一個溫溼度檢測產品。設備端物模型抽象如下表
4_WqUB.png
3、 打開https://iot.console.aliyun.com/product,選擇【設備管理】->【產品】,點擊【創建產品】
5_I4Qo.png
完成後即可看到新創建的產品,點擊【查看】即可看到產品詳情。
6_bap9.png
4、點擊【功能定義】->【自定義功能】->【編輯草稿】,進入編輯草稿頁面【自定義功能】->【編輯草稿】添加產品屬性及功能
7_5E3q.png
5、 添加自定義功能:當前溫度和當前溼度
9_NlmZ.png
自定義功能添加完畢後,點擊【發佈更新】定義一個版本號,完成後的功能列表如下:
10_fH2a.png
6、編寫雲端解析腳本在產品詳情頁中點擊【數據解析】,進行解析腳本的編寫,解析腳本支持JavaScript和Python2.7語言,此處以JavaScript為例進行編寫。

關於數據解析更多說明,參考:

https://help.aliyun.com/document_detail/68702.html
11_78Ly.png

此例編寫腳本如下,可將下列腳本粘貼至【編輯腳本】中,腳本的邏輯為,將其中溼度和溫度16進制值取出,轉換為10進制的溼度和溫度,賦值給CurrentHumidity和CurrentTemperature。

// 以下為腳本模版,您可以基於以下模版進行腳本編寫​/** * 將設備自定義topic數據轉換為json格式數據, 設備上報數據到物聯網平臺時調用 * 入參:topic   字符串,設備上報消息的topic      * 入參:rawData byte[]數組                  不能為空 * 出參:jsonObj JSON對象                    不能為空 */function transformPayload(topic, rawData) {    var jsonObj = {}    return jsonObj;}​/** * 將設備的自定義格式數據轉換為Alink協議的數據,設備上報數據到物聯網平臺時調用 * 入參:rawData byte[]數組     不能為空 * 出參:jsonObj Alink JSON對象 不能為空 */function rawDataToProtocol(rawData) {    var jsonObj = {}    return jsonObj;}​/** *  將Alink協議的數據轉換為設備能識別的格式數據,物聯網平臺給設備下發數據時調用 *  入參:jsonObj Alink JSON對象  不能為空  *  出參:rawData byte[]數組      不能為空 * */function protocolToRawData(jsonObj) {    var rawdata = [];    return rawdata;}​var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //標準ALink協議topic, 設備 上傳屬性數據到 雲端var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //標準ALink協議topic, 雲端 下發屬性控制指令 到設備端​/*示例數據:傳入參數 ->  0x010304027501026A00  010304027501026A00為溫溼度傳感器返回的整體數據  其中0275是CurrentHumidity值,轉化為10進製為629,除以10為62.9  其中0102是CurrentTemperature值,轉化為10進製為258,除以10為25.8,輸出結果 ->{  "method": "thing.event.property.post",  "id": "16974850",  "params": {    "CurrentHumidity": 62.9,    "CurrentTemperature": 25.8  },  "version": "1.1"}​*/function rawDataToProtocol(bytes){    var uint8Array = new Uint8Array(bytes.length);    for (var i = 0; i < bytes.length; i++)    {        uint8Array[i] = bytes[i] & 0xff;     }    var dataView = new DataView(uint8Array.buffer, 0);  //10進制bytes數組轉16進制字符串    var str = "";     for(var j=0; j<bytes.length; j++)    {      var tmp = (bytes[j] & 0xff).toString(16);      if(tmp.length == 1)      {          tmp = "0" + tmp;      }      str += tmp;    }​    var jsonMap = {};    var fHead = uint8Array[0]; // command    {        jsonMap['method'] = ALINK_PROP_REPORT_METHOD; //Alink協議 - 屬性上報topic        jsonMap['version'] = '1.1'; //Alink協議 - 協議版本號固定字段        jsonMap['id'] = '' + dataView.getInt32(1); //Alink協議 - 標示該次請求id值        var params = {};        //截取16進制字符串並轉成10進制,併除以10        var Humidity_bp = parseInt(str.substring(6,10),16)/10;     var Temperature_bp = parseInt(str.substring(10,14),16)/10;        params['CurrentHumidity'] = Humidity_bp;//對應產品屬性中 CurrentHumidity     params['CurrentTemperature'] = Temperature_bp;//對應產品屬性中 CurrentTemperature        jsonMap['params'] = params;//Alink協議 - params標準字段    }​    return jsonMap;}

7、驗證腳本在【數據解析】->【腳本編輯】頁面下方,可以模擬設備上報數據,查看解析結果。如輸入設備上報數據:0x010304027501026A00,點擊【執行】,查看解析結果,結果正確後,點擊【提交】,提交解析腳本。

8、創建設備完成產品類型的建立之後,創建真實的設備,在【設備】列表中,選擇 產品 後,點擊【添加設備】。
13_XLNo.png
輸入設備DeviceName,自定義一個設備名稱,如此處定義為THSensor001,添加完成後,可以一鍵複製設備證書,等待寫入設備中。

如此處添加的設備證書如下:
14_451c.png
15_VWq1.png
16_0zL0.png
若未及時複製設備證書,也可在建好的設備詳情頁,DeviceSecret處,點擊“查看”,查看設備證書信息。

9、設備添加完成後,會先處於“未激活”狀態,如下所示:
18_0P9o.png

至此AliIOT雲端配置已經完成,接下來完成DTU的配置。

設備連接(EW11/EG11)

案例一:設備EW11的設置和連接

1.硬件連接:

19_y2QS.png
2.EW11設置連接路由器:

(1)EW11供電後,配置EW11為STA模式連接一個路由器

EW11出廠默認AP組網模式,如果要修改為STA組網,可以採用幾種方式,方式如下:

方法一: PC無線直連Elfin-EW1X熱點,PC打開IOTService工具,通過工具進去配置,執行步驟詳見如下。
20_HNfK.png

進入 [設備編輯] 後,在WiFi設置框裡 選擇模式:STA,掃描需接入的信號熱點,最後輸入熱點密碼,點擊 確認,後進入 [設備狀態] 頁面, 重啟 DTU設備。

注意:DTU設備設置為STA模式,重啟後,不再廣播無線熱點信號,因此PC或手機不能再搜索到Elfin-EW1X的熱點。

設備重啟後,EW11與路由器建立連接,PC或手機可通過路由器連接到DTU設備。如下圖所示,EW11已經連上路由器並獲取到IP地址。

21_Nano.png

方法二: 採用PC無線直連EW11_XXXX熱點,瀏覽器輸入10.10.100.254(產品默認IP),再輸入用戶名密碼(默認為admin,admin,打開產品配置Web頁面。

點擊 [系統設置] 進入 [無線網絡設置], 掃描選擇要連接的AP熱點,輸入密碼,提交後,進入[其他]-˃[恢復出廠設置/重啟] 框下,點擊“重啟”按鈕。
22_GNBW.png

方法三: Smartlink配網,該方法採用智能家居常用的配網方式,具體步驟可參考《Elfin-EW1X_操作指南》。

3、EW11設置連接AliIOT參數:

電腦安裝IOTServcie工具後,綁定設備後,選擇EW11設備,進入【設備編輯】頁面,設置 【串口】參數和【連接】參數。

23_gVgI.png

24_MiDx.png

填寫完成後,點擊“確認”->“確認”保存參數,重啟設備。

重新進入到AliIOT物聯網平臺,在【設備管理】->【設備】列表裡,可以查看到設備已經激活並顯示在線,如下所示:
25_JeTF.png

4、設置EW11串口主動輪詢溫溼度傳感器功能

(1)編輯腳本

EW11可以通過編輯HIS腳本實現串口自動輪詢功能,每隔一定時間主動發出輪詢命令。此處設置腳本參考如下,可將如下腳本複製到txt文檔保存:

更多HIS腳本編輯介紹,請下載說明文檔.

下載地址:http://www.hi-flying.com/download-center-1/application-notes-1/download-item-his-script

(2)導入腳本

在IOTservice工具裡,選擇EW11設備後,點擊【設備編輯】->【高級設置】->【編輯腳本】->【導入腳本】,選擇編輯好的TXT腳本文件,直接會導入到EW11設備裡面,然後重啟EW11設備。

26_C6FK.png

(3)之後,進入【設備狀態】查看EW11接入狀態:

27_djeK.png

5、 AliIOT物聯網平臺數據接收展示進入到AliIOT物聯網平臺,在【設備管理】->【設備】列表裡選中設備,點擊【查看】,進入設備詳情頁,點擊【運行狀態】,可查看數據,如下所示:
28_ACZh.png
29_kJzt.png

設備運行一段時間後,點擊【查看數據】,可以看到各個時間點溫溼度變化情況:
30_NCtf.png
31_P1eJ.png

案例二:設備EG11的設置和連接

1、硬件連接
19_y2QS (1).png

2、EG11設置連接網絡:
(1)EG11支持移動、聯通SIM卡,只需插入SIM卡即可自動連接網絡
(2)EG11接入網絡後,電腦開啟IOTService工具,綁定EG11設備,綁定設備方法,可參考《HF DTU 設備快速使用指導》。

3、 EG11設置連接AliIOT參數:電腦安裝IOTServcie工具後,綁定設備後,選擇EG11設備,進入【設備編輯】頁面,設置 【串口】參數和【連接】參數。

32_d9Rd.png
33_Qve5.png

填寫完成後,點擊“確認”->“確認”保存參數,重啟設備。重新進入到AliIOT物聯網平臺,在【設備管理】->【設備】列表裡,可以查看到設備已經激活並顯示在線,如下所示:

34_Iohm.png

4、 設置EG11串口主動輪詢溫溼度傳感器功能EG11不支持HS腳本功能,可以通過設置串口心跳包方式實現對傳感器的定時查詢,如下:

35_bnWf.png

設置之後,點擊“確認”重啟設備,再次進入【設備狀態】查看EG11接入狀態:
36_MeZf.png

5、 AliIOT物聯網平臺數據接收展示進入到AliIOT物聯網平臺,在【設備管理】->【設備】列表裡選中設備,點擊【查看】,進入設備詳情頁,點擊【運行狀態】,可查看數據,如下所示:
37_slYP.png
38_l0qw.png

設備運行一段時間後,點擊【查看數據】,可以看到各個時間點溫溼度變化情況:
39_qn0P.png

設備調試

在設備連接上AliIOT物聯網平臺,並上傳數據後,若出現數據顯示不正確時,可以使用AliIOT物聯網平臺的【日誌服務】功能,選擇產品後,點擊【上行消息分析】,選擇一個【MessageID】查看設備上傳到平臺的原始數據,並根據上傳的數據查找原因,再做匹配調整。

40_roRn.png

如此處查看THSensor002上傳的一個數據值,16進制顯示為:0x01030402a100dd6a30,其中02a1和00dd分別為溼度值和溫度值,轉換為10進制後為:673和221,則溼度和溫度分別為67.3%RH和22.1℃。

設備WEB應用開發

阿里雲IoT物聯網平臺還提供【應用開發】功能,可以自定義Web頁面和APP頁面。(注:當前APP自定義開發功能暫時關閉,Ali完善後再重新上線)

1、進入Ali IoT Studio菜單下,選擇【項目管理】->【新建項目】->【新建空白項目】,自定義填入一個項目名稱。
41_G14d.png

2、之後,進入創建項目的主頁,選擇【Web應用】,【新建】一個Web應用。
42_cg1B.png
43_cV2S.png
3、 進入Web可視化開發頁面,根據需要創建自己的Web展示頁面。
44_MiRv.png

4、 選擇【組件】進行頁面設計,比如選擇“實時曲線”,然後選擇曲線表後,對“樣式” 和“交互”進行設置,比如“關聯產品”和“配置數據源”。

45_wksl.png
5、 之後生成頁面,可以預覽,待設計成熟後,可以發佈。比如此Demo預覽界面如下:
46_V40v.png

設備運維大屏展示

阿里雲物聯網平臺還提供強大的監控運維功能,大屏顯示所有管理設備運行狀態,實時掌握設備最新運行情況。在【運維監控】->【運維大盤】->【設備運維大盤】,可以查看整體狀態。

47_Lskz.png
48_HgAl.png

Leave a Reply

Your email address will not be published. Required fields are marked *