劉洪濤 廖茂萍
(1.成都職業(yè)技術學院 四川省成都市 610041 2.成都工業(yè)職業(yè)技術學院 四川省成都市 610213)
隨著學校實驗室越來越開放,儀器和器材的管理越加復雜和困難,使用新技術進行自動管理的需求越來越強,現(xiàn)代的技術教育更加注重學生的實踐,學校的實驗室也在對學生的開放上越來越強,大量的創(chuàng)新型實驗室、創(chuàng)客型實驗室也應運而生,這為學生提供更好的學習科研環(huán)境的同時,設備與器材的管理也不斷困擾實驗管理員和教師,實驗管理員或教師不可能24 小時為在實驗室的學生提供管理與服務,導致設備損壞、遺失等事件高發(fā),同時,也難以對設備使用情況進行準確地記錄,降低了管理效率。同時,由于對固定資產管理水平要求越來越高,又需要管理者能對這些固定資產進行精細化的管理,完全由人工來管理的工作方法也越來越不現(xiàn)實了。
作為一種可自組網的系統(tǒng),Zigbee 有獨特的優(yōu)勢。TI 公司為Zigbee 開發(fā)了用于自組網的Zstack 協(xié)議棧,可實現(xiàn)房間空間的所有節(jié)點自動完成動態(tài)無線路由設計與配置,從而使每個節(jié)點可以在網絡中隨時加入、退出和移動,這些特點使它在一些特別的應用場景中顯得非常有價值,同時,TI 公司的Zigbee 芯片CC2531 極強的節(jié)能水平,使得該技術在設備管理上的應用變得可行。
傳感層的數(shù)據需要通過Internet 才能被有效共享,物聯(lián)網的云平臺為這種數(shù)據共享提供了非常好的平臺和應用開發(fā)工具?;谶@樣的平臺,可以非常容易地開發(fā)出對設備柜設備的實時遠程查看與管理。
本設計是將具有RFID 檢測柜內設備的能力的智能設備柜通過Zigbee 進行聯(lián)網,并通過阿里云物聯(lián)網平臺實現(xiàn)對儀器的自動借出、歸還、清點和使用記錄,從而準確地追蹤儀器設備的使用路線和使用記錄,實現(xiàn)對儀器設備的精細化管理。
總體設計如圖1 所示。
在這個結構中,最低層的是從柜端到設備端的總線網絡,這一層實現(xiàn)柜子內部的信息采集,完成對柜內設備的清點與查找;其上一層是基于Zigbee 的無線自組網,實現(xiàn)了小區(qū)域(一個房間內)柜子之間的無線聯(lián)網,避免了網絡連線,提升了靈活性;再上一層為傳統(tǒng)的局域網,由路由和集線器等構成,它將各個小區(qū)域進行聯(lián)網,可根具體分布選擇不同的組網方式;最上一層為基于云平臺數(shù)據管理的以Internet 為基礎的廣域網,實現(xiàn)云平臺數(shù)據管理與移動端數(shù)據訪問。
它位于體系結構的最低層,電氣上基于RS485 技術規(guī)范,為了回避RS485 總線非全雙工的問題,此處采用了雙485 結構,實現(xiàn)了設備端數(shù)據的快速讀取。
圖1:總體系統(tǒng)框圖
在這個網絡上,柜端承擔了主機(Master)的角色,所有設備端都是從機(Slave)。這條雙485 總線上,一對總線為指令總線,只負責將主機的指令廣播下傳給所有從機,從機的數(shù)據則通過另一對總線(數(shù)據總線)上傳主機。從機不間斷監(jiān)聽指令總線,當聽到主機廣播中有要求自己上傳數(shù)據的指令時,才會在規(guī)定的時間內將相關數(shù)據上傳,其它時間只監(jiān)聽和判斷總線空閑。這樣一來,主機與從機之間就形成了全雙工通信:主機在任意時間都可以下達指令,為了避免多個從機沖突,從機在主機的協(xié)調下,當監(jiān)聽到總線空閑的時候,在規(guī)定的時間內上傳數(shù)據。
設備端是以RFID 讀卡器為主的設備識別端,每個設備都有一個獨立的不干膠柔性RFID 卡貼在設備后蓋合適位置,當設備放入設備柜后,RFID 卡靠近讀卡器,讀卡器通過讀取卡的序列號實現(xiàn)對設備是否在柜中的判斷。同時,關于設備的信息,包括狀態(tài)記錄和維修記錄,都被云平臺數(shù)據庫存在該ID 序列號下,實現(xiàn)對設備的精細化管理。
使用了RFID 管理后,設備可被放在任意柜中或柜中任意位置,要取用時,可通過每個讀卡器上的LED 進行位置提示,實現(xiàn)對設備借用歸還的柔性化精細化管理。
Zigbee 是基于IEEE802.15.4 標準的低功耗PAN 協(xié)議,它規(guī)定了該技術是一種短距離、低功耗、窄帶的無線通信技術,非常適合實驗室內設備柜與管理端的通信。
ZigBee 無線網絡由諸多節(jié)點組成。ZigBee 節(jié)點有三種類別,分別是協(xié)調器(Coodinator)、路由器(Router)、終端(End Device)。同一網絡中至少需要一個也只能有1 個協(xié)調器,負責各個節(jié)點16 位地址分配,通過自組網的協(xié)議棧,可以實現(xiàn)地址的自動分配。
ZigBee 無線網絡根據連接的拓撲方式,可以分為星形、樹型和網形三種,為了適應面積較大實驗室的使用,采用樹形網是較優(yōu)的選擇,如果某個設備柜與協(xié)調器節(jié)點太遠(通常距離大于10 米),就有可能無法與協(xié)調器節(jié)點直接連接,這時候通過某個中間的路由節(jié)點,就可以實現(xiàn)連網通信了。
實現(xiàn)這一過程,使用了Z-stack 協(xié)議棧。Z-stack 協(xié)議棧繼承了Zigbee 無線網協(xié)議層的架構,它的物理層和媒體訪問層基于IEEE802.15.4 規(guī)范,而網絡層和應用層則基于標準Zigbee 規(guī)范。如果某些節(jié)點或全部節(jié)點被設置為路由節(jié)點,這些節(jié)點便可以成為某兩個相距較遠節(jié)點的中斷路由,協(xié)議棧通過對各節(jié)點信號強度的測量確定它與這些節(jié)點的通信距離,并由此構建出最為合理的網絡結構,這種網絡構建是動態(tài)的,會不斷根據節(jié)點的通斷電增刪節(jié)點,也能不斷根據節(jié)點的移動改變網絡結構,實現(xiàn)所謂的自組網,實現(xiàn)將小區(qū)域內的設備柜聯(lián)網。
每個設備柜為一個Zigbee 節(jié)點,為適應不同的房間布置后的自組網生成,都被設置成了路由節(jié)點。每個節(jié)點周期性地將本柜的數(shù)據通過這個自組網上報,上報的數(shù)據為柜端通過總線對柜內設備端掃描清點獲得。
Z-stack 協(xié)議棧的APL 層可以理解成一個基于任務循環(huán)的簡單操作系統(tǒng),如果要增加一個新的任務,則需要將這個任務加入到循環(huán)中。加入的方法是先進行登記,再將任務函數(shù)加入到任務列表,從而在循環(huán)中實現(xiàn)任務功能。在本例中,循環(huán)中最主要的任務是對本柜設備的掃描清點。
如果僅有一個實驗室,只需要一個Zigbee 網絡即可實現(xiàn)對所有設備柜的覆蓋,則這個中層局域網絡是可以省略的。如果有多個實驗室,需要將設備柜納入統(tǒng)一管理,這些實驗室則需要通過中層局域網絡來連接,這種中層局域網絡是成熟的以太局域網,它可以根據具體情況設計網絡拓撲結構。
中層局域網將所有的實驗室設備柜數(shù)據都可以匯集到服務器中,這個服務器可以是本地的服務器,也可以是云服務器,而后者可以實現(xiàn)基于互聯(lián)網的遠程管理。本例使用的是阿里云物聯(lián)網的云平臺。
物聯(lián)網云平臺是實現(xiàn)物聯(lián)網遠程管理的重要平臺工具,很多網絡公司均在打造屬于自己的物聯(lián)網平臺,如阿里云、百度云、騰迅云等,各種云平臺有各自的特色與特點,但有大致相似的基本架構。本例以阿里云物聯(lián)網平臺為例,完成設備柜管理數(shù)據的云平臺共享。
阿里云物聯(lián)網平臺有豐富而完備的架構與模塊,本項目僅使用它的少量資源,在這個架構中,Zigbee 協(xié)調器作為云平臺的設備為物聯(lián)網平臺提供數(shù)據,物聯(lián)網平臺完成數(shù)據的存儲、設備管理、數(shù)據監(jiān)控以及權限管理等工作。除此之外,阿里云還提供了諸多產品,如果函數(shù)計算、圖像識別、機器學習等,這些可用于本例的升級應用。
阿里云物聯(lián)網平臺為開發(fā)者提供了相應的開發(fā)平臺LinkDevelop,可以方便地開發(fā)數(shù)據接入、Web 端大屏顯示、移動端(IOS 和Android)簡單應用、服務器端的相應應用。具體開發(fā)過程分為以下幾步:
LinkDevelop 平臺提供了多種接入方式,例如WiFi、LoRa、ZigBee、藍牙等。接入的過程需要先選擇通訊方式和設備類型,并為設備取名和分類,以及選擇適合的數(shù)據結構,最后進行功能定義,功能定義包括功能名稱、標識符、數(shù)據類型、取值范圍、單位等更為詳細的內容。
添加測試設備是接入設備的準備。這是因為設備在接入LinkDevelop 平臺時,需要一個三元組(ProductKey,DeviceName,DeviceSecret)來構建連接參數(shù)。
建立連接的方法,是使用ZigbeeManager 對象的autoConnect方法先將設備連接到Zigbee。然后再用MQTT 協(xié)議將設備接入LinkDevelop 平臺,它由初始化連接參數(shù)的函數(shù)AliyunIoT_Init()、與阿云IoT 建立連接的函數(shù)AliyunIoT_Connect()和檢查連接狀態(tài)的函數(shù)AliyunIoT_CheckConnection()共同完成。
上報數(shù)據前應先對上報的數(shù)據進行定義,通常采用定期上報的方式。
在本例中,對數(shù)據的應用相對簡單,因此采用非托管web 應用。在設備接入了LinkDevelop 平臺之后,就可以通過這個開發(fā)顯示設備柜中的設備儲存數(shù)據了。這一過程很簡單,先使用eggjs 作為Web 開發(fā)框架,創(chuàng)建并初始化eggjs 應用并創(chuàng)建模板,然后使用aliyun-api-gateway 發(fā)出API 請求,最后使用axios 在頁面中發(fā)出Ajax 請求,在規(guī)定的周期內實現(xiàn)顯示數(shù)據的刷新。
采用Web 應用開發(fā),可以使得數(shù)據的查看和顯示可以在任意有網絡的地方實現(xiàn),提升了數(shù)據的共享水平。
如果需要,根據這一思路,還可以在LinkDevelop 平臺快速開發(fā)出基于IOS 或Android 的應用,這里就不介紹了。
基于云平臺的物聯(lián)網解決方案具有突出的優(yōu)點:開發(fā)簡單、開發(fā)周期短、網絡功能齊全等,并且避免了服務器等價格昂貴、維護麻煩、升級周期短的建設,僅用少量的租金即可實現(xiàn)企業(yè)級的物聯(lián)網系統(tǒng)應用。從這些優(yōu)點來看,基于云平臺的物聯(lián)網系統(tǒng)集成的應用會很快成為主流。
數(shù)據的獲得主要來源于傳感網,對于數(shù)據量小、位置靈活并可能經常移動的應用場景,Zigbee 因其自組網的特性擁有難以替換的優(yōu)勢。在Zigbee 開發(fā)中,使用成熟且易于開發(fā)的協(xié)議棧,是提升開發(fā)效率的關鍵。