王曉銀
(西安航空學院 計算機學院,西安 710000)
船舶安全是航運過程中考慮的重要問題,例如船舶在航行途中貨艙起火的事件時有發(fā)生,如果不及時發(fā)現將會造成較大的人員及財產損失。目前船艙監(jiān)控系統(tǒng)大多采用基于總線技術[1]的分布式控制方式,網絡通信方式多為傳統(tǒng)的有線連接方式。該方式布線復雜并且后期維護多采用人工巡邏方式很不方便。近幾年也出現了基于ZigBee協議棧的船舶機艙監(jiān)測系統(tǒng)[2-3],采用ZigBee模塊實現無線傳感器網絡設計。但由于船舶工作環(huán)境的特殊性,船艙溫度高,濕度大,噪聲大等惡略環(huán)境,對傳感器網絡的傳輸距離、抗干擾能力、功耗等都提出了更高的要求,因此本文設計了一款基于XBee模塊的無線傳感器網絡船艙監(jiān)控系統(tǒng),研究表明應用XBee模塊組建無線傳感器網絡的抗干擾能力、傳輸距離、使用功耗等都明顯優(yōu)于ZigBee通信模塊[4]。測試結果表明該船艙監(jiān)測系統(tǒng)能夠實時、連續(xù)、可靠的監(jiān)測機艙內各環(huán)境參數。
本系統(tǒng)的總體設計包括數據采集層,這部分主要由無線傳感器網絡節(jié)點組成,這些節(jié)點隨機部署在監(jiān)控區(qū)域[5],采集來自船艙的溫濕度,煙霧等信息。環(huán)境參數控制層,該層主要執(zhí)行由控制終端發(fā)送的控制命令,從而達到遠程控制風扇、空調、滅火等設備。數據匯聚層協調器節(jié)點,這個節(jié)點收集來自數據采集層采集到的傳感器信息,并將這些信息通過串口發(fā)送到控制終端,并接收控制終端發(fā)送的控制命令,對現場環(huán)境進行控制。系統(tǒng)的總體框架,如圖1所示。

圖1 基于XBee的船舶機艙監(jiān)測系統(tǒng)圖
本系統(tǒng)的無線傳感器網絡的互聯全部由基于XBee的2.4G射頻無線通訊模塊完成,監(jiān)控中心為船舶終端上位機,上位機與協調器間由串口RS232總線相連。
系統(tǒng)中的數據采集,信號調理,數據處理及相關的控制電路全部由基于ATmega328P AVR的微控制器Arduino完成。該控制器自帶32KB的閃存、2KB的SRAM、1KB的EEPROM。 同時它具有豐富的片上外設,包括6個PWM通道、10位ADC、SPI、I2C、UART接口以及觸摸庫支持,完全能夠滿足設計需要。同時它還有三種供電方式,分別為上位機直接供電、外部電源供電、電池供電,正好滿足了無線傳感器節(jié)點電池供電的需求。
本系統(tǒng)的無線傳輸部分利用DIGI公司的XBee模塊,將船艙的不同區(qū)域的監(jiān)測點通過網狀拓撲結構進行組網[6]。XBee模塊是一種遠距離低功耗的數據傳輸模塊,頻段有2.4G,900M,868M 3種,同時可兼容802.15.4協議。模塊內置協議棧,每個模塊都可以做為路由節(jié)點、協調器節(jié)點以及終端節(jié)點。可通過X-CTU以及Zigbee Operator軟件進行調試,同時還有對應的iDigi平臺,提供各種常用的接入方式,方便遠程控制。在實際使用中由于XBee是3.3 V邏輯電平[7],而大多數數字電路使用5 V邏輯電平,因此在設計中采用Arduino擴展板對電平進行轉換,并在協調器端將XBee模塊通過串口連接至上位機。
數據采集層主要用來采集來自現場的數據。本系統(tǒng)采用了溫濕度傳感器、煙霧傳感器實時采集船艙的溫濕度、煙霧等指標,通過XBee模塊組成的無線傳感器網絡將這些數據傳輸給協調器。協調器通過串口將數據上傳給上位機,與預先設置的閾值進行比較,根據比較結果給控制模塊下達控制指令。
1.3.1 溫濕度傳感器節(jié)點
溫濕度傳感器探測節(jié)點主要實時采集空氣中的溫度、濕度值,以便建立一個監(jiān)測系統(tǒng)平臺。設計中采用接口簡單,測量精度較高的溫濕度傳感器SHT71,該傳感器為數字式傳感器,可直接讀取測量結果,不需要再進行AD轉換,大大簡化了外接口的設計電路,如圖2所示。
1.3.2 煙霧傳感器節(jié)點
物質在燃燒過程中會產生大量煙霧,對煙霧的測量也是火災早期發(fā)現警報的主要手段,設計中選用靈敏度高、響應快、抗干擾能力強的MQ-2型煙霧傳感器。當傳感器所處環(huán)境中存在可燃氣體時,傳感器的電導率隨空氣中可燃氣體濃度的增加而增大。MQ-2型煙霧傳感器直接將煙霧濃度轉換成了0-5 V電壓值,可直接將此轉換信號送到Arduino控制板的模擬輸入端,使用簡單電路即可采集煙霧變化。電路接口,如圖2所示。
系統(tǒng)中傳感器節(jié)點及控制節(jié)點均需要采用電池供電,因此要實時對工作電壓進行檢測,電池電壓低時報警。設計中采用了LMP7300構成微功耗精密電池低電壓檢測電路,如圖3所示。

圖2 煙霧及溫濕度采集電路

圖3 電壓檢測電路
LMP7300是一個微功率、精密基準和可調遲滯的比較器,基準電壓為2.048 V,基準電壓精度為0.25%, 電源電壓范圍為2.7~12 V,通過對電池電壓比較實時監(jiān)測電池電壓情況,電池電壓低時報警,同時發(fā)電量低信號給上位機。
系統(tǒng)設計軟件主要包括:終端節(jié)點中的數據采集、處理、傳輸;控制軟件的設計;協調器功能軟件及上位機軟件的實現。
數據采集節(jié)點主要負責終端傳感器信號的信息采集,各傳感器將實時采集到的數據信息經過處理后轉化成相應的幀格式,通過XBee模塊無線傳送給協調器[8],同時接收從協調器發(fā)送過來的指令,并執(zhí)行相應操作,數據采集節(jié)點軟件流程,如圖4所示。
本系統(tǒng)中傳輸網絡的組建、各網絡節(jié)點的數據采集及上傳均由網絡協調器負責完成。網絡協調器上電后開始建立網絡,等待傳感器節(jié)點加入網絡,每一個成功加入的子節(jié)點會被分配唯一的16位網絡地址。此后協調器開始進行收發(fā)數據,該任務包括接收無線傳感器節(jié)點采集的數據后進行分析、處理,通過串口將信息發(fā)給控制終端,如圖5所示。

圖4 數據采集節(jié)點軟件流程圖圖5 協調器設計軟件流程圖
船舶監(jiān)控終端是由放置在控制中心的終端計算機完成,主要實現如下功能:①通過串口接收從協調器發(fā)送來的數據。②管理接收到的數據,主要包括數據的處理、存儲及顯示。③根據處理結果,發(fā)送控制指令給協調器,如圖6所示。

圖6 終端監(jiān)控軟件系統(tǒng)框圖
在成功搭建此船舶機艙監(jiān)測系統(tǒng)后,需要對該系統(tǒng)的可靠性及穩(wěn)定性進行測試分析,該系統(tǒng)重點在于基于XBee的無線通信模塊及組網設計。主要從通信距離、抗干擾及模塊功耗等方面對無線通信模塊在船舶機艙控制系統(tǒng)的參數進行測試。
由于船舶機艙環(huán)境復雜,無線傳感器模塊的安裝位置、阻擋物的多少、天氣等多種因素都會影響到無線傳輸距離,實驗選擇300米范圍之內的室內、樓道、室外不同地方放置傳感器節(jié)點。每隔一段距離發(fā)送30次數據,得到距離與丟包率測試數據,如表1所示。
由表分析通信距離小于220 m時,信號的丟包率幾乎為零,信號的傳輸距離能夠滿足實際需要。

表1 無線通信模塊通信距離測試結果表
船艙環(huán)境的實時數據由散落在各地的傳感器終端節(jié)點采集,這些節(jié)點采用電池供電,由于電池電量有限,為了減少電池更換的周期,設計中盡量降低系統(tǒng)功耗。因此傳感器終端節(jié)點采用喚醒和周期性睡眠方式工作。通過智能電參數測量儀器測量XBee節(jié)點發(fā)射時的功率僅為0.73 W,若使用電池供電電池壽命至少可達6個月以上。
協調器節(jié)點負責無線傳感器網絡的組網及與上位機通訊,需要一直處于激活狀態(tài),可以選擇一些比較合適的環(huán)境安裝,采用有線供電方式供電。
本文研究了一種基于XBee的船舶機艙監(jiān)控系統(tǒng)。通過Arduino控制器及XBee模塊實現了船艙環(huán)境數據的無線采集及控制。該設計解決了目前傳統(tǒng)機艙監(jiān)測系統(tǒng)監(jiān)測節(jié)點少,布線繁雜,維護不方便等問題。系統(tǒng)測試穩(wěn)定可靠,可移植性強,用戶可根據需要增刪節(jié)點,實時監(jiān)控機艙環(huán)境的各項數據,確保航運過程可靠安全。