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

  • 日期: 2020-03-18
  • 點擊: 942


?

今天給大家帶來詳細例程介紹:

Elfin-EW11/EG11連接阿里IoT之溫濕度檢測

目錄:

  • 實現功能

  • 所需設備

  • AliIOT物聯網平臺配置

  • 設備連接(EW11/EG11) 

  • 設備調試

  • 設備WEB應用開發

  • 設備運維大屏展示


完整文檔:點此下載



  • 實現功能:

Elfin-EW11/EG11通過RS485端口連接一個溫濕度傳感器,讀取溫度、濕度數據上傳到阿里云IOT平臺并在WEB網頁上展示出來。具體如下:

  1. EW11/EG11主動讀取溫濕度傳感器的溫濕度值

  2. EW11/EG11將讀取的溫濕度數值傳輸到阿里IoT云端

  3. IoT云端數據以Web方式展示出來




  • 使用設備:




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

    點此購買 


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

    點此購買

  2. 溫濕度傳感器(RS485接口):1個

  3. 12V1A電源:1個購買

    點此購買


其中:溫濕度傳感器參數如下:

采用Modbus-RTU通訊規約

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

地址碼:01


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

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

問詢幀(16進制):


應答幀(16進制):(例如讀到溫度為25.8℃,濕度為62.9%RH



溫度計算:

溫度: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. 建立設備模型:根據對設備的抽象,在云端建立設備模型。在本例中,創建一個溫濕度檢測產品。設備端物模型抽象如下表




3. 打開https://iot.console.aliyun.com/product,選擇【設備管理】->【產品】,點擊【創建產品】




完成后即可看到新創建的產品,點擊【查看】即可看到產品詳情。




4. 點擊【功能定義】->【自定義功能】->【編輯草稿】,進入編輯草稿頁面【自定義功能】->【編輯草稿】添加產品屬性及功能





5. 添加自定義功能:當前溫度和當前濕度



自定義功能添加完畢后,點擊【發布更新】定義一個版本號,完成后的功能列表如下:




6 .編寫云端解析腳本在產品詳情頁中點擊【數據解析】,進行解析腳本的編寫,解析腳本支持JavaScript和Python2.7語言,此處以JavaScript為例進行編寫。

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

https://help.aliyun.com/document_detail/68702.html




此例編寫腳本如下,可將下列腳本粘貼至【編輯腳本】中,腳本的邏輯為,將其中濕度和溫度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. 創建設備完成產品類型的建立之后,創建真實的設備,在【設備】列表中,選擇 產品 后,點擊【添加設備】




輸入設備DeviceName,自定義一個設備名稱,如此處定義為THSensor001,添加完成后,可以一鍵復制設備證書,等待寫入設備中。

如此處添加的設備證書如下:






若未及時復制設備證書,也可在建好的設備詳情頁,DeviceSecret處,點擊“查看”,查看設備證書信息。




9. 設備添加完成后,會先處于“未激活”狀態,如下所示:




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




  • 設備連接(EW11/EG11)

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

1.硬件連接:




2.EW11設置連接路由器:

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

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

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

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




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

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




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

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




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


3. EW11設置連接AliIOT參數:

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





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

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




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

(1)編輯腳本

EW11可以通過編輯HIS腳本實現串口自動輪詢功能,每隔一定時間主動發出輪詢命令。此處設置腳本參考如下,可將如下腳本復制到txt文檔保存:
#設置EW11 RS485口輪詢命令cmd01=[0x01,0x03,0x00,0x00,0x00,0x02,0xC4,0x0B]?#設置EW11 RS485口輪詢發出命令及時間間隔,單位ms,此處設置10秒發一次輪詢命令TIMER HeartBeat 10000SEND(UART,uart0,cmd01)END

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

下載地址:http://www.316339.buzz/download-center-1/application-notes-1/download-item-his-script

(2)導入腳本

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



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




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





設備運行一段時間后,點擊【查看數據】,可以看到各個時間點溫濕度變化情況:



案例二:設備EG11的設置和連接
1. 硬件連接



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

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





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



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



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



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





設備運行一段時間后,點擊【查看數據】,可以看到各個時間點溫濕度變化情況:





  • 設備調試

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




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




  • 設備WEB應用開發

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


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




2. 之后,進入創建項目的主頁,選擇【Web應用】【新建】一個Web應用。





3. 進入Web可視化開發頁面,根據需要創建自己的Web展示頁面。




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




5. 之后生成頁面,可以預覽,待設計成熟后,可以發布。比如此Demo預覽界面如下:






  • 設備運維大屏展示

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







江苏7位数今日开奖结果