李琛磊,種蘭祥
近年隨著物聯網、大數據等新興技術發展,我國智慧圖書館研究如火如荼。但截至目前,尚無將物聯網技術應用到古籍圖書館無線環境監測系統的實踐。眾所周知,古籍是人類文化載體,幾乎所有圖書館都將其視為珍品。但全球氣候變化導致空氣質量變差、大氣環境污染問題顯著,造成古籍紙張酸化現象嚴重。古籍圖書館中不合適的溫濕度會導致蟲害、霉菌滋生,嚴重影響著古籍保管的安全。然而,我國大部分圖書館古籍保護經費有限,出現書庫老化、場所簡陋、技術設施落后等問題,最為嚴重的是古籍保存環境未能得到根本性的監測與保護,導致古籍損壞現象加劇[1]。為此學界業界呼吁不斷更新技術,尋求低成本方案監測和改善古籍圖書館環境。
通過實地調研西安地區古籍圖書館后發現,傳統的古籍圖書館監測系統多采用人工定點觀測和有線監測兩種方式[2]。前者存在精度低和實時性差問題,后者基于RS485總線進行數據傳輸[3],因其采用分布式監測和集中供電,存在靈活性低和難以擴展等問題。近年電子技術與無線傳感器網絡的發展迅速,經濟發達地區室內環境監測已開始采用無線通信方案,其中較為常見的有WiFi、ZigBee、GPRS、射頻等。Xu Fucheng等[4]、溫超等[5]采用CC2530硬件設計了一種基于Zigbee技術的圖書館內溫濕度監測方案;張麗珍等[6]結合ZigBee與GPRS無線通信技術設計圖書館溫濕度光照度環境監測系統;王棟等[7]、吳健等[8]、G.Alsuhly等[9]利用WiFi技術來傳輸圖書館或博物館內監測到的環境變量。這些研究大多采用目前無線傳感器網絡較為常見的ZigBee、WiFi無線通信方案,普遍存在著信號干擾及功耗與成本問題,導致這些方案在經濟欠發達地區很難推廣使用,古籍圖書館將持續并長期處于技術落后、保存環境不佳的情況下,古籍存放的安全無法得到保證。為此本系統采用低成本、低功耗具有跳頻功能的無線射頻通信方式,不但能妥善解決上述問題,同時基于物聯網三層架構體系,構造出一個易擴展、通用性強的多點無線古籍圖書館環境監測系統。
本系統應滿足古籍圖書館監測的實時性、經濟性、效果呈現動態性與易用性等需求。古籍作為中華文明的文化瑰寶,必須對其存放環境進行全方位的監測保護。根據《圖書館古籍特藏書庫基本要求》發現古籍安全存放的相關環境參數如下:(1)溫度要穩定在16~22℃;相對濕度穩定在45%~60%RH。(2)光照度以30lx~50lx為宜,減少紫外線對紙張的破壞。(3)室內SO2濃度限值在0.01mg/m3。(4)配置安防火災自動報警裝置。根據以上古籍保護要求,本系統選取對應傳感器對室內物理量進行測量。為了提高監測系統的實時性與經濟性,本系統采用低成本無線射頻通信方案將監測數據發送給網關,使用Raspberry PI作為網關兼Web服務器,進一步降低成本。在效果呈現動態性與友好性方面,本系統自行開發出一套Web監測平臺,其具有用戶登錄、增加刪除設備、存儲數據、查看當前數據及歷史數據、聲光報警等功能。Web監測平臺將數據分析結果以更直觀、友好的方式呈現給用戶。同時將監測數據推到OneNet物聯網平臺作可視化展示,用戶可在任意地點查看古籍圖書館內情況,進一步加強系統的易用性與友好性。此外,平臺將各項報警數據發送到用戶郵箱與手機,促使用戶采取措施處理相關情況。
本著靈活、方便、可靠和易用原則,智慧古籍圖書館環境監測系統采用分布式模塊化設計思想。依物聯網三層架構,感知層選用最適合聯接傳感器的電子開發平臺Arduino為測量節點,對古籍圖書館內溫濕度、光照、SO2濃度、火焰以及人體進出情況進行測量,一旦監測數據超過設定閾值,系統會進行聲光報警,同時向預留郵箱與手機發送報警信息。網絡層常見的無線通信技術有WiFi、ZigBee、藍牙等。藍牙適用于便攜式可移動監測平臺,難以在古籍圖書館環境監測中有效發揮作用。ZigBee雖然是一種低功耗、近距離、自組網通信技術,但多工作于2.4GHz頻段之上,容易和WiFi、藍牙產生干擾,此外,ZigBee成本較高,難以在經濟不發達地區推廣。WiFi是日常生活中最普遍的無線通信技術,具有傳輸速度快、使用方便等特點,但WiFi功耗大,高帶寬的效益難以發揮。在網絡層使用低功耗、低成本并具有跳頻功能的射頻收發芯片nRF24L01,負責監測數據的無線傳輸,是一個優質的選擇。應用層采用僅有信用卡大小的片式計算機Raspberry PI作為網關兼作Web 服務器,管理測量節點、收集存儲數據、可視化展示監測數據,同時將數據推送到OneNet 物聯網云平臺,用戶可使用多種終端通過互聯網訪問本監測系統。監測系統總體結構如圖1所示。用戶可根據需求,將無線測量節點部署在古籍圖書館內任何地方,測量節點與網關構成一個星型網絡拓撲結構,以自組織的方式來向網關傳輸數據,繼而構成一個無線傳感器網絡。服務器與物聯網平臺統一作為數據處理中心,負責數據的顯示、預警、網絡發布等。

圖1 監測系統總體結構
測量節點Arduino 聯接有溫濕度、光照、SO2氣體濃度、火焰、人體紅外傳感器對古籍圖書館內物理量進行測量。并通過聯接的射頻模塊nRF24L01將測量數據發送給Raspberry PI。
Arduino 是一款AVR 架構電子原型開發平臺,具有精簡指令形式,使用類Java、C語言的Processing/Wiring開發環境。硬件由I/O接口電路和其集成的通信總線組成。本系統選用Arduino UNO R3為測量節點的主控模塊,其采用Atmega328P作為處理器,內置32KB Flash、16MHZ晶振,14路數字I/O引腳并包含6路PWM通道,6路模擬輸入引腳,每個I/O直流輸出能力為20mA,具有UART 通信協議,集成IIC,SPI通信總線。
根據古籍保護相關要求,本系統采用DHT11溫濕度傳感器、SO2氣體濃度傳感器、SR501人體紅外感應傳感器、火焰傳感器以及GY30光照傳感器進行古籍圖書館內環境測量,后續可依需求增加傳感器。
DHT11 是一款可校準的數字化溫濕度傳感器,內部集成有電阻式感濕元件和NTC 測溫元件。溫度測量范圍在0~50℃,濕度測量范圍在20%~90%RH[10]。Arduino與傳感器通過單總線通信協議完成數據的雙向通信,并按照DHT11時序規則將數據依次輸出。SO2氣體濃度傳感器MQ135是一款化學類半導體模擬傳感器,工作電壓為5V。MQ135采用在潔凈空氣中電導率較低的SnO2作為氣敏材料,當SO2氣體存在時,氣敏材料與SO2氣體發生氧化還原反應,從而使SnO2電導率發生變化。SnO2電導率隨SO2氣體濃度增大而增大且呈線性關系。火焰傳感器工作電壓為5V,其對火焰光譜極其敏感。傳感器依據高溫燃燒所產生的760nm~1,100nm 光源進行火焰檢測[11],準確檢測火焰情況。人體紅外傳感器SR501用來檢測古籍圖書館內人體進出情況,通過被動式紅外探頭檢測人體發出10um左右的特定紅外波長,并將此紅外線通過菲涅爾濾鏡匯聚到紅外感應源上,以此判斷是否有人通過。GY30光照傳感器是一款數字傳感器,光照檢測范圍介于1~65535lx。傳感器使用光電二極管檢測周邊亮度,通過內部集成運算放大電路將電流信號放大并轉換為電壓信號,利用內置16位數模轉換電路將光照強度直接數字輸出[12]。
本系統采用的射頻收發芯片nRF24L01 是Nordic研發的基于SW-ARQ基帶協議引擎、頻率在2.4GHz~2.5GHz ISM之間的單片無線收發芯片,共有126 個1MHz 帶寬的信道,支持在126個信道之間自動跳頻通信與多點通信。采用GFSK調制方式,內置放大器、頻率發生器、晶振等,空中傳輸速率可達2Mbps,具有功耗低、傳輸速率快、數據傳輸穩定、安全等優點。無線射頻模塊工作電壓介于1.9V~3.6V,它與測量節點和網關都通過SPI總線進行通信。CE為模塊從低功耗空閑狀態轉換為高速工作狀態的開啟信號,Arduino與Raspberry PI通過SCK為射頻模塊提供時鐘,CSN為片選信號,數據通過MOSI與MISO兩根線進行主機與從機輸入輸出。IRQ為中斷信號,當測量節點將監測數據成功發送給網關并收到網關發來的ACK信號時,Arduino和Raspberry PI兩端的IRQ信號被拉低,完成這一次的數據傳輸。測量節點和網關可通過查詢IRQ信號的標志位進而判斷出數據成功發送或接收。射頻模塊在沒有收發任務時處于低功耗待機狀態,只有當網關請求數據發送時,射頻模塊被激活。
網關是監測系統的重要組成部分,作用是測量節點管理、數據收集與轉發。本系統選用三代B+型Raspberry PI,將網關與服務器集于一體。Raspberry PI 3B+是基于 ARM 架構的 Soc 片上系統,采用博通公司BCM2837芯片組,處理速度可達1.4GHz,擁有64位4核處理器,搭載基于Linux 且面向Raspberry PI 硬件做了優化的Raspbian操作系統,有3.5萬多個軟件包和預編譯的軟件供Raspberry PI 使用,支持Python、C、C++等語言開發。Raspberry PI需要5V電源供電,配有4個USB2.0接口并支持USB Hub擴展,具有RJ45接口且內置板載WiFi。由其芯片內部引出40個GPIO引腳用于硬件開發,集成有UART、IIC、SPI多種通信協議。
射頻模塊是測量節點與網關通信的媒介,需要軟件對其進行初始化、工作模式配置等。測量節點查找網關地址并發送數據,網關將數據上傳到服務器中,通過一系列軟件開發,完成一個測量硬件可配置的、數據可視化Web監測平臺。
根據本系統需求,使用nRF24L01射頻模塊構建星型網絡拓撲,實現一收多發功能。流程分為射頻模塊初始化、配置收發模式、發送接收數據、完成發送與接收。測量節點通過SPI總線對nRF24L01內部寄存器進行初始化,配置字長30字節,CSN引腳拉低進行初始化配置,其中包括EN_AA自動應答配置,SETUP_AW地址寬度配置等。初始化完成后,通過CONFIG 寄存器將nRF24L01 配置為 Shutdown、Standby、Idle-TX、TX、RX 等工作模式。在沒有收發任務時模塊首先穩定在Standby空閑模式。當CE引腳給一個持續10us的高脈沖,同時配置PRIM_RX為低電平,若此時發送端TX_FIFO 緩沖區為空,芯片由Standby模式進入Idle-TX模式并等待發送數據的到來。當數據需要發送時,將數據送入TX_FIFO 緩沖區,經過120us 時間后,Idle-TX會自動進入TX發送模式。為降低功耗,提高穩定性,采用配有前導碼和CRC 校驗位增強型ShockBurstTM收發方式,數據低速從Arduino送入,并高速向外發出,接收方自動處理前導碼與CRC校驗位,數據按照表1所示的幀格式發送。數據發送完畢后,芯片等待接收方應答信號,進而產生TX_DS中斷,完成數據發送過程。當成功完成一次數據發送過程后,清除寄存器置位和TX_FIFO中已發送的數據,芯片CE信號拉低,再次進入Standby空閑模式,等待下一次數據發送。

表1 增強型ShockBurstTM數據幀格式
作為網關,Raspberry PI接收來自測量節點發來的數據。軟件通過SPI時序完成射頻模塊一系列初始化后,將射頻模塊配置為RX模式。等待130us,射頻模塊進入監視狀態,請求發送模塊數據包的到來。數據包到來時,射頻模塊通過節點地址信息與CRC校驗碼對數據進行判斷,當數據包正確時,nRF24L01自動移除前導碼、地址信息與CRC 校驗位,并通過STATUS 狀態寄存器RX_DR 中斷置位通知Raspberry PI 得到正確數據,繼而從RX_FIFO數據緩存區讀取出正確的數據包。等待所有數據讀取完畢后,清除STATUS狀態寄存器置位,清空RX_FIFO緩存區數據,CE 引腳拉低,使其進入Standby 空閑模式,完成此次數據接收,并等待下一次數據到來。
為保證用戶良好體驗,本系統應用層設計為B/S模式。在Raspberry PI上采用LAMP架構搭建輕量級Web 服務器。安裝配置Apache 服務器,用PHP+Pyhton語言進行系統后端開發,將測量節點發來的環境數據存儲在MySQL數據庫中。前端界面采用HTML+CSS+JavaScrip技術開發。用戶可在同一局域網內使用任意終端登錄查看智慧古籍圖書館內環境數據。系統后端結構框圖見圖2。網關接收到來自測量節點的數據,用Python中的MySQLdb函數連接并導入數據庫。在數據庫中建立存儲測量節點物理量的數據表,并定義設備ID為主鍵,與數據庫中的設備表進行關聯。將PHP 嵌套在前端HTML 頁面之中與數據庫建立連接,瀏覽器與服務器采用AJAX異步交換信息。后端通過遍歷數據庫中存儲的測量節點數據,把數據封裝為JSON格式進行數據回傳,用JavaScrip 中的Echarts 組件將數據圖形化顯示,最終完成古籍圖書館環境變量的實時監測。

圖2 系統后端結構框圖
本系統網關并行連接OneNet物聯網云服務平臺。OneNet是中國移動公司為用戶提供的開放物聯網平臺,其定位為PaaS服務,適用多種網絡環境的接入協議,各類傳感器、智能網關都可以通過OneNet提供的API和應用模板進行設備接入與程序開發。平臺提供數據存儲,添加觸發器,增加、刪除設備等功能,方便系統后續功能的擴展。Raspberry PI作為網關,可根據用戶需求自行設定數據上傳時間,并將接收到的各個測量節點數據推送到物聯網平臺。網關通過Internet接入OneNet物聯網平臺,并選用HTTP協議上傳數據到平臺的云服務器。物聯網平臺接入步驟如下:注冊網關接入設備賬號,登錄OneNet物聯網平臺建立智慧古籍圖書館環境監測項目,獲取云平臺分配的唯一“Master-APIkey”與設備ID號并作為連接憑證,添加設備并在設備之下增加數據流模板,數據流要與網關發來的傳感器數據相互對應。當云平臺接收到來自Raspberry PI的數據上報請求時,通過鑒權“APIkey”和設備ID號確認與網關建立TCP連接,把傳感器數據封裝為JSON格式,上傳到物聯網平臺云服務器進行處理。在環境變量超過閾值時,除了進行聲光報警外,利用平臺提供的觸發器功能,通知綁定的郵箱和手機,使用戶對情況進行相應處理。
本系統一方面采用僅有信用卡大小的Raspberry PI作為網關兼Web服務器,接收和處理來自測量節點采集的各項數據,作為Web 監測平臺,使用戶可以在局域網內訪問古籍圖書館情況。另一方面網關接入OneNet物聯網平臺,并按照用戶設定的時間間隔向平臺上傳監測數據,隨即在“應用孵化中心”對數據進行可視化展示,使用戶可以在任意地點查看古籍圖書館內環境監測情況。用戶在后期利用自行搭建的Web監測平臺可以更方便的管理、維護和增加功能,且信息安全得到保證。OneNet物聯網平臺在聲光報警外還提供了觸發器報警功能,又因其公網特性,用戶可在任意地點掌握古籍圖書館情況,兩種方式依存,取長補短。
在自行搭建的Web 監測平臺內,實現了用戶登錄、添加刪除設備、實時顯示當前監測數據、查看歷史數據曲線與回看數據等功能。用戶登陸成功后自動跳轉到數據顯示界面,前端界面如圖3 所示,可看到各傳感器最新的監測數據。同時可從系統中查詢所有傳感器監測的歷史數據,其歷史曲線如圖4所示。在查看歷史數據界面中,用戶可通過調節折線圖下方的條形框來選擇日期時間段回看歷史數據。

圖3 室內環境實時數據

圖4 歷史數據變化曲線
用戶可登錄OneNet物聯網平臺,在任意地點查看各個測量節點最新監測數據與歷史數據曲線,如圖5所示。其前端界面使用儀表盤組件讓用戶直觀地看到網關最新推送的數據,并用折線圖來展現各個監測數據的變化。在報警方面,物聯網平臺的觸發器關聯著系統內所有測量節點,一旦古籍圖書館內環境監測物理量不在古籍安全保護范圍內,界面立即顯示該節點并報警,同時激活觸發條件,將觸發時間、測量節點名稱、傳感器信息、觸發值等相關數據通過郵件與短信的方式發送到預留郵箱和手機,促使用戶采取措施處理,同時記錄并保存報警數據,方便用戶后續對數據進行預警分析、處理。

圖5 物聯網平臺監測界面
本文采用物聯網三層架構體系,詳細介紹了智慧古籍圖書館環境監測系統的技術思路,將物聯網、無線傳感器網絡相關技術運用到智慧圖書館建設之中。設計開發了一種可以連接32個測量節點的星型網絡拓撲結構智慧古籍圖書館環境監測系統。為增強用戶體驗度,并行連接OneNet物聯網平臺,用戶可以在任意地點任何時間查看智慧古籍圖書館環境質量情況。測量節點可根據用戶需求,部署到整個圖書館內,進一步加強智慧圖書館建設。實驗測試證明,本系統具有耗能小、成本低、可擴展、部署方便、用戶體驗好等特點,具有較高的普適性與應用價值,能夠滿足各地區智慧古籍圖書館環境監測的需要。后續將繼續優化本系統,擴展節點數量,提高可靠性和穩定性,并對報警數據進行預警分析。