本發明涉及一種物聯網設備發現和管理的方法,屬于物聯網傳感的技術領域。
背景技術:
隨著物聯網技術的發展和智能硬件計算能力的提升,越來越多的智能電子設備被接入到網絡中,在當前物聯網的大發展環境下,將這些海量的異構感知設備接入到物聯網的云平臺,實現設備間的互聯互通,真正的把人與人之間的交流變為人與設備之間的交流最終到設備與設備之間的交流,已經成為了必然趨勢。然而這些智能電子設備遵循不同數據傳輸規范,導致智能設備之間處于孤立分散的狀態,難以統一接入到傳統的物聯網平臺,導致設備間通訊的靈活性大大降低。
因此,針對傳統的物聯網平臺需要一種能采集通用數據傳輸格式的網關來對底層傳感數據進行采集處理,并且轉換為有效格式上傳到物聯網云平臺,同時,由于設立了這種有效的通信格式,也方便了云平臺對底層設備的管理控制。
技術實現要素:
本發明所要解決的技術問題在于克服現有技術的不足,提供一種物聯網設備發現和管理的方法,解決現有的物聯網平臺異構傳感設備的格式不統一的問題和異構傳感設備難以管理的問題,以高效地實現物聯網平臺對底層設備的管理控制。
本發明具體采用以下技術方案解決上述技術問題:
一種物聯網設備發現和管理的方法,該方法基于底層傳感設備、網關及服務器,包括以下步驟:
所述底層傳感設備采集及上傳數據報文至網關;
所述網關預先建立和存儲:用于為本地設備分別配置設備安全校驗碼及同本地設備信息綁定后存儲的設備信息庫;用于存儲根據設備信息中的數據位字段和所設立的閾值形成控制策略的策略信息庫;用于對設備信息中的邏輯指令建立對應控制指令的指令信息庫;
所述網關調取底層傳感設備上傳的數據報文中的設備信息,及匹配至設備信息庫以判斷底層傳感設備是否存在設備安全校驗碼;當判斷為底層傳感設備存在設備安全校驗碼時,提取底層傳感設備上傳的數據報文中數據位字段,及匹配至策略信息庫獲得控制策略;當控制策略為執行數據報文上傳至服務器時,所述網關將數據報文進行格式轉換后上傳至服務器;
所述服務器接收及存儲網關所上傳的數據報文,及生成應用指令及下發至網關;
所述網關接收應用指令,及提取應用指令中的設備信息并匹配至設備信息庫,當設備信息庫中存在本地設備信息與應用指令中的設備信息對應時,提取應用指令中的數據報文中的邏輯指令并匹配至指令信息庫,以獲得邏輯指令所對應的控制指令并對設備信息對應的底層傳感設備執行控制指令。
進一步地,作為本發明的一種優選技術方案:所述底層傳感設備上傳的數據報文至少包括設備id、設備mac地址及傳感類型。
進一步地,作為本發明的一種優選技術方案:所述底層傳感設備上傳的數據報文包括定義報文的幀頭及幀尾。
進一步地,作為本發明的一種優選技術方案:所述底層傳感設備對同一傳感類型的設備定義采用統一的數據報文格式。
進一步地,作為本發明的一種優選技術方案:所述網關采用http協議上傳數據報文至服務器。
進一步地,作為本發明的一種優選技術方案:所述網關將數據報文轉換為url格式。
進一步地,作為本發明的一種優選技術方案:所述網關以json文件的形式存儲設備信息庫、策略信息庫、指令信息庫。
進一步地,作為本發明的一種優選技術方案:所述服務器采用websocket協議下發應用指令至網關。
本發明采用上述技術方案,能產生如下技術效果:
本發明的物聯網設備發現和管理的方法,在網關中為了更好的實現通訊與協議轉換,在網關側建立了三種信息庫,分別為設備信息庫、策略信息庫和指令信息庫,使得底層傳感設備的數據在網關側得到認證,并且根據相應的策略,將數據交付給服務器;實現了數據的認證功能、數據的轉發導向和控制指令的獲取功能。
在數據上行通道采用基于http協議的方式做了上層數據封裝,把數據發送給服務器側,在數據下行通道采用基于websocket協議的長連接方式完成對設備管理與控制的指令的下發,在網關中為了更好的實現通訊與協議轉換。本發明在網關側采用websocket的方式與云端服務器建立長連接,保障了數據傳輸的可靠性和實時性。
附圖說明
圖1為本發明方法基于的物聯網平臺的結構示意圖。
圖2為本發明方法中數據上行通道的流程示意圖。
圖3為本發明方法中數據下行通道的流程示意圖。
具體實施方式
下面結合說明書附圖對本發明的實施方式進行描述。
本發明設計了一種物聯網設備發現和管理的方法,該方法基于底層傳感設備、網關及服務器,本發明的方法基于的物聯網平臺結構如圖1所示,該系統包括底層傳感設備、網關及服務器,其中,底層傳感設備可以包括zigbee、wifi、藍牙三種,在網關上搭載以上三種設備的外圍接收裝置,分別為zigbee協調器、無線網卡、藍牙嗅探器,這樣基本可以覆蓋智能物聯網領域的大部分設備通訊方式,且網關分為南向接口和北向接口,所述南向接口用于連接底層傳感設備,所述北向接口用于連接服務器。而服務器可以包括數據庫服務器、應用服務器、管理服務器。
本發明所設計的方法,具體包括以下步驟:
步驟1、所述底層傳感設備采集及上傳數據報文至網關。
首先,在底層傳感設備到網關的南向接口,實現了感知層通用設備的發現,即只要底層傳感設備處于網關的信號覆蓋范圍之內,它的數據報文就可以被網關接收處理,這也是一種通用設備的智能化過程,因為網關可以根據本地的策略引擎,直接對底層傳感設備做出相應的控制操作,減少了平臺層的數據處理壓力。
考慮到不同的應用場景,本發明可應用不同的無線傳感設備來為上層提供感知服務,如zigbee、藍牙、wifi等,通過對zigbee、bluetooth、wifi傳輸報文,本方法優選地可定義了一套通用的無線傳感設備傳輸的報文格式,以此來描述每個傳感設備自身的屬性,其包括設備id、設備mac地址及傳感類型,具體地,可以包括出廠設備id、傳感類型、設備mac地址、位置信息、父級網關、以及自身所能傳遞的具體傳感信息等,這樣,網關就可以無差異化的解析各種無線傳感設備所發送的數據包,屏蔽了異構設備的差異。
根據以上分析,本發明整合如上所述字段,設置地報文格式如表1所示:
表1.通用數據格式信息
下面對上表中定義的設備信息進行說明:
(1).報文標識信息:為了防止感知層各種異構設備的報文廣播干擾上層模塊對于通用設備報文的接收,可以定義報文的幀頭及幀尾,即引導碼為“s:”的幀頭與結束碼“e;”的幀尾。
(2).通告設備編號信息:在每一個設備類型下,分別定義每個終端的deviceid,這樣,可以使上層應用根據deviceid區別控制每一個感知層服務。
(3).通告設備類型信息:本發明可以優選將同一傳感類型的無線傳感設備定義成統一的格式,方便上層智能網關的資源化的發現與管理。
(4).通告設備mac信息:每一個傳感設備出廠都有mac地址,通告mac地址可以更好的標識設備信息,而且mac地址信息是用戶無法更改的信息。
(5).通告設備位置信息:默認為空,方便用戶通過上層應用進行配置,以根據位置信息查找自己部署的設備位置。
(6).通告設備父級網關信息:默認為空,一旦父級網關識別到該結點設備,并且判定為合法設備,父級網關會自動把自身的ip地址填入該字段。
(7).擴展位:預留位,便于以后擴展,默認為空。
(8).通告設備數據信息:視具體傳感節點而定,該位可以支持擴展。
下面是一個具體的報文實現示例,以溫濕度傳感器為例,報文如下:
‘s:n=801004@type=wifi@mac=6c-0b-84-6c-98-a5@location=25@parent=10.10.25.89@temp=20.1&humi=51.8e;’
在以上格式中,各種信息之間通過“@”符合分隔,支持擴展新的信息類型,同時具體的數據信息采用“&”符合分隔,支持多種數據的傳輸,好處是方便以后信息的擴展,具有普遍適用性。
步驟2、本發明中將網關分為數據上行通道及下行數據通道;所述數據上行通道,其流程示意如圖2所示,用于網絡層的網關發現感知層的底層傳感設備,當網關接收到底層上傳的數據報文之后,網關首先會進行底層傳感設備上傳的數據報文的判斷合法性,具體過程如下:
首先,所述網關預先建立和存儲:設備信息庫、策略信息庫、指令信息庫。優選地,以json文件的形式存儲。
所述設備信息庫,用于為本地設備分別配置設備安全校驗碼devicekey,及將本地設備信息與其所配置的設備安全校驗碼devicekey綁定和存儲的設備信息庫。即:網關對平臺中的可允許設備分別設置合法的設備安全校驗碼devicekey,且每個設備的安全校驗碼devicekey與該設備信息的設備id綁定。當用戶在物聯網平臺層為設備申請了合法的設備安全校驗碼devicekey之后,網關通過與平臺層的通信會自動的在本地設備信息庫中添加申請的設備安全校驗碼devicekey;當用戶新增了自己的傳感設備之后,只需要把設備的出廠的deviceid在平臺側做一個綁定,就相當于在節點的父級網關側做了設備的映射,這樣就把這個新增的傳感設備變為了合法的節點。
所述策略信息庫,用于存儲根據設備信息中的數據位字段和所設立的閾值形成控制策略,所述控制策略用于判斷建立數據是否上傳或執行下一步操作如上傳、下發等。例如,command字段所對應的為溫度,則策略信息庫中設置根據溫度與閾值比較,當達到預設的溫度閾值時,對應的控制策略可為生成報警控制和下發操作控制等。
所述指令信息庫,用于為設備信息中的邏輯指令建立對應控制指令的指令信息庫。即可以在設備信息中的數據位command字段存在邏輯指令,則分別建立對應的控制指令,所述控制指令用于對底層傳感設備或服務器執行對應操作。
其次,所述網關在接收到底層傳感設備上傳的數據報文后,調取底層傳感設備上傳的數據報文中的設備信息是否合法,及匹配至設備信息庫以判斷底層傳感設備是否存在設備安全校驗碼devicekey,進行數據合法性的判斷,通過檢測本地的合法設備信息庫確定底層傳感設備為合法設備,并將非法的設備所上傳的數據報文丟棄。
當判斷為底層傳感設備存在設備安全校驗碼devicekey時,合法的設備不斷的上傳數據時,在網關需要對這些上傳的數據信息做一個預處理,提取底層傳感設備上傳的數據報文中數據位字段,及匹配至策略信息庫以獲得數據是否上傳至服務器的控制策略;將設備的上傳的數據報文中數據位字段與預先建立好的策略信息庫進行匹配,然后得到該數據位字段得到控制策略,控制策略可以包括上傳、下發、丟棄等操作。根據設備信息庫中的控制策略做下一步動作,例如溫度達到設定的閾值才會報警,或者有特別大的溫差才報警等等,下一步動作包括遞交給服務器、直接做下行控制、或者丟棄。
在控制策略為執行數據報文上傳至服務器時,所述網關根據控制策略將底層傳感設備的數據報文進行格式轉換后上傳至服務器。優選地,采用http協議上傳。即把需要上傳給服務器的數據進行格式轉換,轉換為url的格式數據,再以http的形式遞交給服務器。
下面是一個具體的轉化為類似url格式的http報文示例(以zigbee溫濕度傳感器為例),http將以下格式的報文post給服務器:
‘devicekey:9c0b27c9e54b4db5aea08d889e38c346/type:zigbee/mac:6c-0b-84-6c-98-a5/location:25/parentip:10.10.25.89/temp:20.1
devicekey:9c0b27c9e54b4db5aea08d889e38c346/type:zigbee/mac:6c-0b-84-6c-98-a5/location:25/parentip:10.10.25.89/humi:51.8’。
步驟3、關于數據下行通道的網絡層,其流程示意如圖3所示,首先,在服務器到網關的北向接口,采用websocket協議實現,采用該協議的好處是可以實現真正意義上的長連接,減少了http協議在數據傳輸過程中不斷解析報文的開銷,其中,服務器做server端,網關做client端。所述數據庫服務器接收及存儲網關所上傳的數據報文,應用服務器生成應用指令及經管理服務器下發至網關。
步驟4、其次,網關作為websocketclient端,將通過websocket協議接收到服務器作為server端發送的應用指令進行解析,并且驗證應用指令中的設備信息,其中設備信息可以包括設備安全校驗碼devicekey、command字段、邏輯指令等;將其中的設備安全校驗碼devicekey匹配至設備信息庫,當設備信息庫中存在本地設備信息與應用指令中的設備信息對應時,表示合法,則提取應用指令中的數據報文的邏輯指令并匹配至指令信息庫,匹配成功表示合法,則獲得該邏輯指令所對應的控制指令,否則丟棄。
然后,由于與該指令下每個設備的安全校驗碼devicekey與該設備信息的設備id綁定,因此可以根據設備id將控制指令分配至設備信息對應的底層傳感設備deviceid。底層傳感設備接收到指令后進行相應的操作,即完成設備管理過程。
所述過程中,網關作為websocketclient端取出報文段中的最后一個字段,邏輯指令在指令信息庫中進行匹配,如果邏輯指令的內容合法,匹配成功,那么可以從這個庫中檢索出完整的控制指令,并且結合設備信息庫中檢索出的設備信息deviceid,把組合好的控制指令下發給對應的節點設備,以此完成對設備反向控制。
下面是給出從服務器websocketserver端到網關websocketclient端的控制指令格式示例,此處以wifi的燈控為例:
‘devicekey:7e4e5ff11f014041a8975399ad08c02b/type:wifi/mac:1c-60-de-77-45-8c/location:25/parentip:10.10.25.89/command:relay_0’
在服務器到網關,采用基于websocket協議的方式實現,通過websocket協議可以實現真正意義上的長連接,這樣使得用戶可以通過網頁瀏覽器或者手機app以調用webservice的方式完成對底層設備的控制與信息的配置工作。
綜上,本發明在網關中為了更好的實現通訊與協議轉換,在網關側建立了三種信息庫,分別為設備信息庫、策略信息庫和指令信息庫,實現了數據的認證功能、數據的轉發導向和控制指令的獲取功能。
上面結合附圖對本發明的實施方式作了詳細說明,但是本發明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發明宗旨的前提下做出各種變化。