崔秀芳,李志剛,王宏宇,陳剛
(上海海洋大學(xué) 工程學(xué)院,上海 201306)
隨著船舶自動(dòng)化程度的不斷提高,對(duì)船舶機(jī)艙監(jiān)測(cè)系統(tǒng)也提出了更高的要求.對(duì)于24 m及以上的大船來(lái)說,船舶機(jī)艙溫度極其重要,溫度過高或過低會(huì)直接影響船舶各機(jī)構(gòu)的正常運(yùn)作.因此,準(zhǔn)確控制船舶機(jī)艙溫度是提高船舶運(yùn)行效率的重要保障.雖然目前已經(jīng)出現(xiàn)了一些以單片機(jī)為核心的溫控系統(tǒng),但是由于船舶機(jī)艙本身環(huán)境與技術(shù)方面復(fù)雜性的影響,這種溫控系統(tǒng)并沒有得到很好的應(yīng)用[1].
本文以北斗及ARM嵌入式系統(tǒng)為平臺(tái),實(shí)現(xiàn)船舶的定位與機(jī)艙溫度的實(shí)時(shí)監(jiān)測(cè).采用北斗系統(tǒng)用戶端機(jī)、嵌入式處理器、嵌入式操作系統(tǒng)、嵌入式圖形用戶界面等進(jìn)行設(shè)計(jì),具有功能豐富、開發(fā)成本低廉、性能穩(wěn)定、界面友好等優(yōu)點(diǎn).
基于北斗及嵌入式的船舶機(jī)艙溫度監(jiān)測(cè)系統(tǒng)主要是由船載部分與遠(yuǎn)程監(jiān)控部分組成.船載部分包括主控制器、溫度采集器、北斗系統(tǒng)用戶端機(jī)、控制裝置及外圍設(shè)備、PC機(jī)及智能手機(jī)等;遠(yuǎn)程監(jiān)控部分包括北斗系統(tǒng)用戶端機(jī)、服務(wù)器、數(shù)據(jù)庫(kù)、監(jiān)控客戶端等.系統(tǒng)總體結(jié)構(gòu)如圖1所示.
船載部分的溫度采集器是四路DS18B20溫度傳感器,完成對(duì)溫度的采集.主控制器是樹莓派3B,完成對(duì)信號(hào)的接收與處理,并將數(shù)據(jù)存儲(chǔ)于SD卡中,再由PC機(jī)或智能手機(jī)通過無(wú)線網(wǎng)絡(luò)登錄到樹莓派系統(tǒng)中搭建的Web服務(wù)器,對(duì)相關(guān)信息進(jìn)行查看與控制.樹莓派還將傳感器節(jié)點(diǎn)采集到的溫度信息通過RS232串口線傳遞到北斗通信模塊.北斗通信模塊對(duì)船舶進(jìn)行實(shí)時(shí)定位,并將船舶溫度及位置信息通過北斗衛(wèi)星傳到遠(yuǎn)程監(jiān)控部分.遠(yuǎn)程監(jiān)控部分的服務(wù)器與北斗系統(tǒng)用戶端機(jī)也是通過RS232串口線進(jìn)行連接,負(fù)責(zé)完成對(duì)數(shù)據(jù)的接收,然后通過網(wǎng)絡(luò)將數(shù)據(jù)傳輸?shù)綌?shù)據(jù)庫(kù)與監(jiān)控客戶端進(jìn)行存儲(chǔ)與顯示,同時(shí)實(shí)現(xiàn)對(duì)船載部分的遠(yuǎn)程控制.
船載部分硬件主要是由ARM微處理器、DS18B20溫度采集模塊、北斗通信模塊、雙色LED模塊、制冷裝置模塊、制熱裝置模塊、蜂鳴器模塊等組成.其原理圖如圖2所示.
2.1.1 ARM微處理器
系統(tǒng)采用的是目前廣泛流行的樹莓派3B開發(fā)板.它使用的是由三星公司生產(chǎn)的一款64位ARM微處理器,是以ARM cortex-A53作為系統(tǒng)的CPU,用VideoCore IV GPU封裝到BCM2837芯片[2].該處理器主要是面向嵌入式設(shè)備,在多種操作系統(tǒng)下可移植,并且具有執(zhí)行效率高、控制能力強(qiáng)等優(yōu)點(diǎn).
2.1.2 溫度采集模塊
系統(tǒng)的溫度采集模塊采用的是四路DS18B20溫度傳感器,它是采用單總線的接口方式,而且不同的DS18B20傳感器有不同的設(shè)備號(hào),因此可以把多個(gè)溫度傳感器掛在一條總線上.四路DS18B20傳感器接線圖如圖3所示.該單總線接口定義的信號(hào)類型有復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1.除了應(yīng)答脈沖之外,都由主機(jī)發(fā)出同步信號(hào),而且發(fā)送的指令和數(shù)據(jù)都是字節(jié)的低位在前.在樹莓派系統(tǒng)的命令行打開/boot/目錄下的config.txt配置文件,添加單總線GPIO的配置信息,之后加載w1-gpio和w1-therm兩個(gè)驅(qū)動(dòng).驅(qū)動(dòng)加載成功后即可查看到4個(gè)DS18B20溫度傳感器的設(shè)備信息[3].如圖4所示.
2.1.3 北斗通信模塊
船載部分的北斗系統(tǒng)用戶端機(jī)選用的是北斗天匯科技有限公司生產(chǎn)的一款北斗通信模塊.該北斗通信模塊的RX和TX輸入輸出接口,與主控制器采用RS232串口通信,波特率為115 200.電源接口包含用于模塊接收的VCC和用于模塊發(fā)射的VCCPA.接收狀態(tài)工作電壓為4.2~5.2 V,發(fā)射狀態(tài)工作電壓為4.9~5.2 V.此模塊可實(shí)現(xiàn)衛(wèi)星無(wú)線電測(cè)定業(yè)務(wù)(RDSS)定位、短報(bào)文通信等功能,模塊接口協(xié)議滿足北斗4.0協(xié)議[4],如表1所示.
表1 北斗民用短報(bào)文協(xié)議格式
其中,信息內(nèi)容一共分為四個(gè)部分,具體如表2所示.
表2 信息內(nèi)容結(jié)構(gòu)
此模塊主要應(yīng)用于船舶定位、車輛導(dǎo)航與監(jiān)測(cè)、氣象探測(cè)等領(lǐng)域,其尺寸較小,集成度高、功耗低,非常適用于對(duì)尺寸、功耗要求較高的場(chǎng)合[4].北斗通信模塊及天線如圖5所示.
2.1.4 控制裝置及外圍設(shè)備
系統(tǒng)的控制裝置由制冷裝置(小風(fēng)扇)、制熱裝置(加熱器)組成,還包含有16 G的SD卡、雙色LED指示燈、蜂鳴器裝置等外圍設(shè)備.
遠(yuǎn)程監(jiān)控部分的北斗系統(tǒng)用戶端機(jī)同樣選用的是北斗天匯科技有限公司生產(chǎn)的北斗通信模塊,其與服務(wù)器采用RS232串口線進(jìn)行連接,數(shù)據(jù)庫(kù)、監(jiān)控客戶端使用網(wǎng)絡(luò)連入服務(wù)器,完成對(duì)北斗系統(tǒng)用戶端機(jī)數(shù)據(jù)的接收、存儲(chǔ)與顯示,同時(shí)實(shí)現(xiàn)對(duì)船載部分的遠(yuǎn)程控制.
3.1.1 嵌入式操作系統(tǒng)
在樹莓派3B中搭建一個(gè)當(dāng)前使用最廣泛的Raspbian操作系統(tǒng),其系統(tǒng)本身是基于Debian的單純ARM版Linux系統(tǒng)[5].Linux是一個(gè)可以實(shí)現(xiàn)多任務(wù)、多用戶、支持多線程和多CPU的類UNIX操作系統(tǒng).它支持32位和64位硬件,不僅免費(fèi)而且開放源代碼,很多應(yīng)用軟件都是用Linux來(lái)搭建操作系統(tǒng)平臺(tái)[6].
3.1.2 無(wú)線網(wǎng)絡(luò)連接
在樹莓派系統(tǒng)的終端模式下進(jìn)入/etc/network/目錄,使用vim打開interfaces配置文件,修改部分配置信息并添加無(wú)線網(wǎng)絡(luò)的SSID(網(wǎng)絡(luò)名稱)、PSK(密碼)等信息.通過樹莓派的Configuration Tool啟用VNC和SSH協(xié)議,重啟樹莓派即可通過VNC或SSH遠(yuǎn)程控制工具實(shí)現(xiàn)無(wú)線登錄和控制.
3.1.3 溫度采集與控制系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)啟動(dòng)后,初始化硬件及北斗通信模塊,溫度采集系統(tǒng)與嵌入式設(shè)備進(jìn)行通信,將采集到的數(shù)據(jù)進(jìn)行壓縮、打包,傳給ARM處理器,ARM處理器將接收到的數(shù)據(jù)進(jìn)行分析、解包、處理,然后通過WiFi無(wú)線傳輸顯示到用戶界面上.設(shè)備控制單元根據(jù)需求對(duì)加熱、降溫裝置進(jìn)行控制[7].系統(tǒng)流程圖如圖6所示.其中T為當(dāng)前溫度值,(a,b)為正常溫度區(qū)間,(c,a)與(b,d)為控制溫度區(qū)間,c為低溫報(bào)警值,d為高溫報(bào)警值.
3.1.4 Web服務(wù)器搭建
在樹莓派3B中搭建嵌入式Web服務(wù)器,嵌入式平臺(tái)通過嵌入式Web Server接入到Internet[8].Bottle是一個(gè)簡(jiǎn)單、快速、輕量級(jí)的WSGI框架,代碼量約4 000行,在Python環(huán)境下即可運(yùn)行,不需要任何的依賴,并且適配多種Web服務(wù)器,具有快速開發(fā)的能力.基于此框架實(shí)現(xiàn)的Web服務(wù)器代碼如下所示.
from bottle import route,run,request
htmlstr="""