崔秀芳,李志剛,王宏宇,陳剛
(上海海洋大學 工程學院,上海 201306)
隨著船舶自動化程度的不斷提高,對船舶機艙監測系統也提出了更高的要求.對于24 m及以上的大船來說,船舶機艙溫度極其重要,溫度過高或過低會直接影響船舶各機構的正常運作.因此,準確控制船舶機艙溫度是提高船舶運行效率的重要保障.雖然目前已經出現了一些以單片機為核心的溫控系統,但是由于船舶機艙本身環境與技術方面復雜性的影響,這種溫控系統并沒有得到很好的應用[1].
本文以北斗及ARM嵌入式系統為平臺,實現船舶的定位與機艙溫度的實時監測.采用北斗系統用戶端機、嵌入式處理器、嵌入式操作系統、嵌入式圖形用戶界面等進行設計,具有功能豐富、開發成本低廉、性能穩定、界面友好等優點.
基于北斗及嵌入式的船舶機艙溫度監測系統主要是由船載部分與遠程監控部分組成.船載部分包括主控制器、溫度采集器、北斗系統用戶端機、控制裝置及外圍設備、PC機及智能手機等;遠程監控部分包括北斗系統用戶端機、服務器、數據庫、監控客戶端等.系統總體結構如圖1所示.
船載部分的溫度采集器是四路DS18B20溫度傳感器,完成對溫度的采集.主控制器是樹莓派3B,完成對信號的接收與處理,并將數據存儲于SD卡中,再由PC機或智能手機通過無線網絡登錄到樹莓派系統中搭建的Web服務器,對相關信息進行查看與控制.樹莓派還將傳感器節點采集到的溫度信息通過RS232串口線傳遞到北斗通信模塊.北斗通信模塊對船舶進行實時定位,并將船舶溫度及位置信息通過北斗衛星傳到遠程監控部分.遠程監控部分的服務器與北斗系統用戶端機也是通過RS232串口線進行連接,負責完成對數據的接收,然后通過網絡將數據傳輸到數據庫與監控客戶端進行存儲與顯示,同時實現對船載部分的遠程控制.
船載部分硬件主要是由ARM微處理器、DS18B20溫度采集模塊、北斗通信模塊、雙色LED模塊、制冷裝置模塊、制熱裝置模塊、蜂鳴器模塊等組成.其原理圖如圖2所示.
2.1.1 ARM微處理器
系統采用的是目前廣泛流行的樹莓派3B開發板.它使用的是由三星公司生產的一款64位ARM微處理器,是以ARM cortex-A53作為系統的CPU,用VideoCore IV GPU封裝到BCM2837芯片[2].該處理器主要是面向嵌入式設備,在多種操作系統下可移植,并且具有執行效率高、控制能力強等優點.
2.1.2 溫度采集模塊
系統的溫度采集模塊采用的是四路DS18B20溫度傳感器,它是采用單總線的接口方式,而且不同的DS18B20傳感器有不同的設備號,因此可以把多個溫度傳感器掛在一條總線上.四路DS18B20傳感器接線圖如圖3所示.該單總線接口定義的信號類型有復位脈沖、應答脈沖、寫0、寫1、讀0和讀1.除了應答脈沖之外,都由主機發出同步信號,而且發送的指令和數據都是字節的低位在前.在樹莓派系統的命令行打開/boot/目錄下的config.txt配置文件,添加單總線GPIO的配置信息,之后加載w1-gpio和w1-therm兩個驅動.驅動加載成功后即可查看到4個DS18B20溫度傳感器的設備信息[3].如圖4所示.
2.1.3 北斗通信模塊
船載部分的北斗系統用戶端機選用的是北斗天匯科技有限公司生產的一款北斗通信模塊.該北斗通信模塊的RX和TX輸入輸出接口,與主控制器采用RS232串口通信,波特率為115 200.電源接口包含用于模塊接收的VCC和用于模塊發射的VCCPA.接收狀態工作電壓為4.2~5.2 V,發射狀態工作電壓為4.9~5.2 V.此模塊可實現衛星無線電測定業務(RDSS)定位、短報文通信等功能,模塊接口協議滿足北斗4.0協議[4],如表1所示.

表1 北斗民用短報文協議格式
其中,信息內容一共分為四個部分,具體如表2所示.

表2 信息內容結構
此模塊主要應用于船舶定位、車輛導航與監測、氣象探測等領域,其尺寸較小,集成度高、功耗低,非常適用于對尺寸、功耗要求較高的場合[4].北斗通信模塊及天線如圖5所示.
2.1.4 控制裝置及外圍設備
系統的控制裝置由制冷裝置(小風扇)、制熱裝置(加熱器)組成,還包含有16 G的SD卡、雙色LED指示燈、蜂鳴器裝置等外圍設備.
遠程監控部分的北斗系統用戶端機同樣選用的是北斗天匯科技有限公司生產的北斗通信模塊,其與服務器采用RS232串口線進行連接,數據庫、監控客戶端使用網絡連入服務器,完成對北斗系統用戶端機數據的接收、存儲與顯示,同時實現對船載部分的遠程控制.
3.1.1 嵌入式操作系統
在樹莓派3B中搭建一個當前使用最廣泛的Raspbian操作系統,其系統本身是基于Debian的單純ARM版Linux系統[5].Linux是一個可以實現多任務、多用戶、支持多線程和多CPU的類UNIX操作系統.它支持32位和64位硬件,不僅免費而且開放源代碼,很多應用軟件都是用Linux來搭建操作系統平臺[6].
3.1.2 無線網絡連接
在樹莓派系統的終端模式下進入/etc/network/目錄,使用vim打開interfaces配置文件,修改部分配置信息并添加無線網絡的SSID(網絡名稱)、PSK(密碼)等信息.通過樹莓派的Configuration Tool啟用VNC和SSH協議,重啟樹莓派即可通過VNC或SSH遠程控制工具實現無線登錄和控制.
3.1.3 溫度采集與控制系統軟件設計
系統啟動后,初始化硬件及北斗通信模塊,溫度采集系統與嵌入式設備進行通信,將采集到的數據進行壓縮、打包,傳給ARM處理器,ARM處理器將接收到的數據進行分析、解包、處理,然后通過WiFi無線傳輸顯示到用戶界面上.設備控制單元根據需求對加熱、降溫裝置進行控制[7].系統流程圖如圖6所示.其中T為當前溫度值,(a,b)為正常溫度區間,(c,a)與(b,d)為控制溫度區間,c為低溫報警值,d為高溫報警值.
3.1.4 Web服務器搭建
在樹莓派3B中搭建嵌入式Web服務器,嵌入式平臺通過嵌入式Web Server接入到Internet[8].Bottle是一個簡單、快速、輕量級的WSGI框架,代碼量約4 000行,在Python環境下即可運行,不需要任何的依賴,并且適配多種Web服務器,具有快速開發的能力.基于此框架實現的Web服務器代碼如下所示.
from bottle import route,run,request
htmlstr="""