田炳麗 姚梓豪 李 超
(1.青島海軍潛艇學(xué)院作戰(zhàn)指揮系,山東青島 266071;2.哈爾濱工程大學(xué)青島創(chuàng)新發(fā)展基地,山東青島 266071;3.自然資源部第一海洋研究所海洋與氣候研究中心,山東青島 266071)
船舶的正常驅(qū)動(dòng)需要足夠的空氣供給,船舶的柴油機(jī)、鍋爐等燃燒設(shè)備的燃燒,機(jī)艙環(huán)境的冷卻等都依賴于足量空氣的供給及其所產(chǎn)生的空氣流[1]。目前,船舶新風(fēng)系統(tǒng)主要采用常規(guī)的機(jī)械通風(fēng)、機(jī)械結(jié)合循環(huán)冷卻裝置通風(fēng)、射流通風(fēng)這三種方式,這三種通風(fēng)方式各有其特點(diǎn),不同船舶應(yīng)根據(jù)實(shí)際情況并結(jié)合自身需求采用不同方式[2]。我國(guó)新風(fēng)系統(tǒng)的發(fā)展尚處于初級(jí)階段,本文根據(jù)實(shí)際需求,設(shè)計(jì)了一套基于ARM、多參數(shù)新風(fēng)傳感器、風(fēng)機(jī)和無(wú)線傳輸模塊的船舶新風(fēng)控制系統(tǒng)[3-4],新風(fēng)傳感器的參數(shù)可通過(guò)無(wú)線傳輸模塊從單片機(jī)傳輸?shù)绞謾C(jī)App上,通過(guò)單片機(jī)和手機(jī)App界面手動(dòng)或自動(dòng)控制風(fēng)機(jī),實(shí)現(xiàn)室內(nèi)環(huán)境的遠(yuǎn)程監(jiān)控。
結(jié)合傳統(tǒng)新風(fēng)系統(tǒng)以及現(xiàn)代智能工業(yè)的特點(diǎn),基于新風(fēng)系統(tǒng)智能化、自動(dòng)化、網(wǎng)絡(luò)化要求,本文設(shè)計(jì)的新風(fēng)控制系統(tǒng)包括新風(fēng)傳感器、風(fēng)機(jī)、無(wú)線模塊等。通過(guò)新風(fēng)傳感器采集空氣質(zhì)量的相關(guān)數(shù)據(jù),送入單片機(jī)進(jìn)行數(shù)據(jù)分析及處理,其中新風(fēng)傳感器采集到的數(shù)據(jù)主要有溫度、濕度、二氧化碳濃度等。單片機(jī)外接DTU模塊,處理完新風(fēng)傳感器數(shù)據(jù)后送入無(wú)線模塊。無(wú)線模塊內(nèi)部安裝手機(jī)SIM卡進(jìn)行聯(lián)網(wǎng),將新風(fēng)傳感器數(shù)據(jù)送入Internet,可以和其他手機(jī)App通信,手機(jī)App可以實(shí)時(shí)顯示空氣質(zhì)量數(shù)據(jù),并可以手動(dòng)發(fā)送指令來(lái)控制風(fēng)扇的啟動(dòng)和關(guān)閉,以此來(lái)實(shí)現(xiàn)室內(nèi)環(huán)境的遠(yuǎn)程監(jiān)控。
整個(gè)系統(tǒng)硬件主要包括控制模塊、數(shù)據(jù)采集模塊、無(wú)線通信模塊、風(fēng)機(jī),系統(tǒng)總體框架如圖1所示。
1.2.1 控制器芯片的選擇
控制器的芯片要根據(jù)整個(gè)系統(tǒng)的功能要求選取,實(shí)現(xiàn)人機(jī)交互、實(shí)時(shí)監(jiān)控的功能,還要負(fù)責(zé)指令接收和數(shù)據(jù)處理,實(shí)現(xiàn)與服務(wù)器的通信。本設(shè)計(jì)采用STM32F103ZET6芯片,它具有72 MHz CPU,閃存高達(dá)1 MB。控制器的接口包含電動(dòng)機(jī)控制外圍設(shè)備以及CAN、USB全速接口。STM32系列的ARM Cortex-M3具有32位閃存,微控制器工作時(shí)不僅具有低功率、低電壓的優(yōu)點(diǎn),而且實(shí)時(shí)性能極佳,可以實(shí)現(xiàn)數(shù)據(jù)高速更新傳送。
在本設(shè)計(jì)中,芯片接收傳感器數(shù)據(jù)并進(jìn)行處理,芯片的串口通過(guò)無(wú)線模塊與服務(wù)器進(jìn)行通信,實(shí)時(shí)傳輸空氣質(zhì)量數(shù)據(jù),同時(shí)接收服務(wù)器傳輸?shù)闹噶畈⒏鶕?jù)指令控制風(fēng)機(jī)。
1.2.2 傳感器的選擇
采用多合一空氣質(zhì)量傳感器模組SNL-AIRC05。該傳感器模組可以采集空氣中二氧化碳濃度、甲醛、TVOC、PM2.5/PM1/PM10顆粒物、溫度、濕度8種空氣質(zhì)量參數(shù),測(cè)量精準(zhǔn),更新快速,為室內(nèi)環(huán)境調(diào)溫、調(diào)濕、通風(fēng)及凈化提供決策數(shù)據(jù)。該傳感器測(cè)量精度、誤差及范圍如表1所示。
表1 傳感器性能參數(shù)
1.2.3 無(wú)線模塊的選擇
采用正點(diǎn)原子開(kāi)發(fā)的一款高性能全網(wǎng)通4G DTU產(chǎn)品——ATK-M751,它以高速率、低延遲和無(wú)線數(shù)傳為核心功能,可快速實(shí)現(xiàn)應(yīng)用場(chǎng)景下的無(wú)線傳輸方案,保證了實(shí)時(shí)監(jiān)控功能的實(shí)現(xiàn)。它支持TCP、UDP、HTTP等多種協(xié)議,支持連接多種云服務(wù)器(如原子云、阿里云、百度云和OneNET),支持TCP/UDP/HTTP/MQTT數(shù)據(jù)透?jìng)?,支持USB無(wú)線網(wǎng)卡,支持自動(dòng)定時(shí)采集任務(wù),支持自定義心跳包和注冊(cè)包數(shù)據(jù),支持上位機(jī)/AT指令/短信/透?jìng)鞯戎噶钆渲脜?shù),并且支持RS232和RS485兩種串行接口,可以廣泛用于無(wú)線數(shù)傳、智能家居等諸多領(lǐng)域。
1.2.4 驅(qū)動(dòng)模塊的選擇
在本設(shè)計(jì)中,為簡(jiǎn)化接線,減少控制器的引腳占用,降低電路設(shè)計(jì)成本,采用PWM調(diào)節(jié)電子開(kāi)關(guān)控制板,即大功率MOS管模塊。該模塊是電子開(kāi)關(guān)控制板,采用雙MOS并聯(lián)有源輸出,內(nèi)阻更低、電流更大,功率穩(wěn)定,滿足本設(shè)計(jì)中風(fēng)機(jī)設(shè)備的使用;寬電壓、完美支持PWM,只需控制器的一個(gè)引腳提供高低電平信號(hào),就可實(shí)現(xiàn)風(fēng)機(jī)的開(kāi)關(guān)功能。
本設(shè)計(jì)采用原子云服務(wù)器,根據(jù)對(duì)數(shù)據(jù)庫(kù)的讀寫(xiě)功能來(lái)對(duì)控制器的輸出控制進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),同時(shí)根據(jù)五合一新風(fēng)傳感器的通信協(xié)議設(shè)計(jì)控制器的數(shù)據(jù)分析處理功能和傳感器驅(qū)動(dòng)功能。最后根據(jù)控制器的輸出控制來(lái)配置手機(jī)App,這樣就能夠?qū)崿F(xiàn)實(shí)時(shí)監(jiān)控環(huán)境空氣質(zhì)量各參數(shù)的功能。
新風(fēng)系統(tǒng)監(jiān)控功能的實(shí)現(xiàn)離不開(kāi)相關(guān)軟件的支持,本設(shè)計(jì)中軟件的總體方案包括數(shù)據(jù)分析及處理,App界面設(shè)計(jì),以實(shí)現(xiàn)遠(yuǎn)程在手機(jī)或電腦上查看各種空氣質(zhì)量參數(shù)和控制風(fēng)機(jī)運(yùn)轉(zhuǎn)的功能。系統(tǒng)軟件功能圖如圖2所示。
圖2 系統(tǒng)軟件功能圖
系統(tǒng)的軟件設(shè)計(jì)即根據(jù)設(shè)計(jì)要求對(duì)控制器、手機(jī)App軟件功能的設(shè)計(jì)。中央控制器分為主函數(shù)、驅(qū)動(dòng)函數(shù)、數(shù)據(jù)處理及顯示函數(shù)。主函數(shù)與數(shù)據(jù)顯示函數(shù)能夠?qū)崿F(xiàn)控制器的實(shí)時(shí)監(jiān)控功能,主函數(shù)與數(shù)據(jù)處理函數(shù)實(shí)現(xiàn)傳感器控制字和空氣質(zhì)量數(shù)據(jù)的發(fā)送以及空氣參數(shù)和控制指令的接收。通過(guò)App界面(圖3)可以查看相應(yīng)的空氣質(zhì)量參數(shù),也可以發(fā)送指令。
圖3 手機(jī)App圖
控制器程序是保證系統(tǒng)有效運(yùn)行的主要部分,既要能夠?qū)崿F(xiàn)數(shù)據(jù)采集接收以及轉(zhuǎn)發(fā),還要能夠?qū)?shù)據(jù)進(jìn)行分析處理,控制風(fēng)機(jī)運(yùn)轉(zhuǎn)。
2.1.1 主函數(shù)
以控制系統(tǒng)的要求作為根據(jù),控制器的主程序主要由初始化、串口3云平臺(tái)數(shù)據(jù)收發(fā)、串口2傳感器數(shù)據(jù)讀取、輸出控制、數(shù)據(jù)處理等函數(shù)構(gòu)成。
新風(fēng)傳感器的數(shù)據(jù)由手機(jī)App界面顯示,串口2完成傳感器數(shù)據(jù)采集任務(wù),串口3完成遠(yuǎn)程通信功能,包括數(shù)據(jù)收發(fā)、傳感器數(shù)據(jù)更新、控制指令更新,更新后的數(shù)據(jù)可以在手機(jī)App上顯示,同時(shí)完成云數(shù)據(jù)更新。主函數(shù)流程圖如圖4所示。
圖4 主函數(shù)流程圖
2.1.2 數(shù)據(jù)收發(fā)函數(shù)
數(shù)據(jù)收發(fā)函數(shù)分為兩部分,分別為串口2傳感器數(shù)據(jù)收發(fā)函數(shù)和串口3的4G DTU遠(yuǎn)程數(shù)據(jù)收發(fā)函數(shù)。本設(shè)計(jì)采用中斷接收方式接收數(shù)據(jù),在初始化過(guò)程中對(duì)中斷標(biāo)志位進(jìn)行初始化,為簡(jiǎn)化程序,在中斷回調(diào)函數(shù)中對(duì)兩個(gè)串口進(jìn)行設(shè)置,其中接收服務(wù)器風(fēng)機(jī)控制指令的優(yōu)先級(jí)比傳感器接收數(shù)據(jù)的優(yōu)先級(jí)高,優(yōu)先處理風(fēng)機(jī)控制指令后再處理傳感器數(shù)據(jù)。數(shù)據(jù)收發(fā)函數(shù)流程圖如圖5所示。
圖5 數(shù)據(jù)收發(fā)函數(shù)流程圖
2.1.3 顯示函數(shù)
由于ATK-M751具有RS232和RS485接口,故可當(dāng)作普通串口使用,要發(fā)送具體格式給手機(jī)App只需要在云平臺(tái)內(nèi)的數(shù)據(jù)接收中顯示正確格式即可??紤]到傳感器數(shù)據(jù)存在緩沖區(qū),同時(shí)顯示過(guò)程中名稱以及變量名變化,基于數(shù)據(jù)的靈活性,可在STM32編程軟件中對(duì)串口3重新定義printf函數(shù),使其能夠靈活顯示各空氣質(zhì)量參數(shù),在保證數(shù)據(jù)顯示靈活性的同時(shí)又可以簡(jiǎn)化編程。
2.1.4 驅(qū)動(dòng)函數(shù)
本設(shè)計(jì)中所采用的風(fēng)機(jī)驅(qū)動(dòng)模塊為雙MOS開(kāi)關(guān)驅(qū)動(dòng)模塊,只需供電和一個(gè)開(kāi)關(guān)或PWM信號(hào)即可啟動(dòng)風(fēng)機(jī)運(yùn)行??刂颇J接煽刂菩盘?hào)決定,若只需要控制風(fēng)機(jī)的啟動(dòng)與停止,則只需控制器的一個(gè)引腳提供高低電平作為開(kāi)關(guān)信號(hào);若需要對(duì)風(fēng)機(jī)進(jìn)行調(diào)速控制,則需要控制器提供一個(gè)PWM信號(hào)根據(jù)占空比進(jìn)行調(diào)速。在本設(shè)計(jì)中,為簡(jiǎn)化流程,只對(duì)風(fēng)機(jī)進(jìn)行開(kāi)關(guān)控制,故應(yīng)用引腳電平的置位和復(fù)位功能來(lái)對(duì)風(fēng)機(jī)進(jìn)行控制。
原子云平臺(tái)為設(shè)備提供了安全可靠的聯(lián)網(wǎng)通信能力,可連接大量設(shè)備,支持設(shè)備采集數(shù)據(jù)傳輸至云平臺(tái),配合ATK-M751自動(dòng)定時(shí)采集任務(wù)實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,同時(shí)提供云端API,服務(wù)器可通過(guò)云端API將控制指令發(fā)送至設(shè)備端,實(shí)現(xiàn)遠(yuǎn)程控制。原子云通信流程圖如圖6所示。
圖6 原子云通信流程圖
上行數(shù)據(jù):設(shè)備通過(guò)配置ATK-M751與原子云建立遠(yuǎn)程通信連接,上報(bào)數(shù)據(jù)只需通過(guò)發(fā)布主題功能即可將數(shù)據(jù)發(fā)送到原子云平臺(tái),將處理好的數(shù)據(jù)轉(zhuǎn)發(fā),手機(jī)App只需訂閱該主題就能顯示處理好的數(shù)據(jù),或通過(guò)上位機(jī)進(jìn)行顯示。
下行指令:手機(jī)App發(fā)布相關(guān)主題后,用戶下達(dá)控制指令,指令將通過(guò)API發(fā)送到云平臺(tái),將控制指令轉(zhuǎn)發(fā),設(shè)備只需訂閱相關(guān)主題即可接收控制指令,控制風(fēng)機(jī)。
控制系統(tǒng)軟件開(kāi)發(fā)環(huán)境是由控制器芯片決定的,編程方式有兩種:標(biāo)準(zhǔn)庫(kù)和HAL庫(kù)。HAL庫(kù)相比于標(biāo)準(zhǔn)庫(kù),具有上手容易、配置簡(jiǎn)單、功能強(qiáng)大、通用性強(qiáng)等特點(diǎn)。對(duì)比分析兩種編程方式,本設(shè)計(jì)控制器的編程方式采用HAL庫(kù),它可以通過(guò)界面對(duì)控制器芯片引腳直接定義功能,自動(dòng)生成代碼初始化系統(tǒng)所使用的引腳,同時(shí)將引腳相關(guān)功能集成為庫(kù),可直接使用函數(shù)來(lái)實(shí)現(xiàn)所需功能。
本系統(tǒng)測(cè)試主要分為功能測(cè)試和性能測(cè)試。
功能測(cè)試是根據(jù)設(shè)計(jì)要求讀取空氣質(zhì)量的各種參數(shù),結(jié)合收到的指令對(duì)風(fēng)機(jī)的運(yùn)轉(zhuǎn)進(jìn)行控制。在系統(tǒng)功能測(cè)試過(guò)程中,首先要對(duì)設(shè)備進(jìn)行聯(lián)網(wǎng),聯(lián)網(wǎng)后可在服務(wù)器界面看到設(shè)備狀態(tài),在查看主機(jī)是否成功發(fā)送數(shù)據(jù)至網(wǎng)絡(luò)數(shù)據(jù)庫(kù)時(shí),可以在“消息收發(fā)”界面查看設(shè)備運(yùn)行狀態(tài)。在調(diào)試過(guò)程中,“消息收發(fā)”界面具有消息保留功能,因此可以根據(jù)該界面來(lái)進(jìn)行在線調(diào)試,調(diào)試程序是否正常運(yùn)行、數(shù)據(jù)格式是否正確。
本設(shè)計(jì)中系統(tǒng)的性能測(cè)試包括控制系統(tǒng)性能測(cè)試以及傳感器采集和輸出功能測(cè)試??刂葡到y(tǒng)采用Keil軟件編程,利用軟件集成的功能可進(jìn)行在線調(diào)試。根據(jù)設(shè)計(jì)要求,新風(fēng)系統(tǒng)是針對(duì)區(qū)域內(nèi)空氣質(zhì)量的各種指標(biāo)做檢測(cè),因新風(fēng)傳感器是采用RS485串口輸出采集數(shù)據(jù),因而在調(diào)試過(guò)程中采用USB轉(zhuǎn)RS485作為數(shù)據(jù)接收端口,該傳感器模塊作為信號(hào)采集端,運(yùn)行在發(fā)送模式。
在系統(tǒng)功能測(cè)試過(guò)程中,主機(jī)將數(shù)據(jù)成功發(fā)送至網(wǎng)絡(luò)數(shù)據(jù)庫(kù),控制器可以根據(jù)數(shù)據(jù)庫(kù)的指令作出相應(yīng)操作,并反饋數(shù)據(jù)給主機(jī)。在進(jìn)行性能測(cè)試時(shí),將主機(jī)收集到的數(shù)據(jù)與實(shí)際空氣質(zhì)量參數(shù)做對(duì)比,測(cè)試結(jié)果與實(shí)際結(jié)果符合。
系統(tǒng)各功能模塊調(diào)試后進(jìn)行整體聯(lián)機(jī)測(cè)試,各模塊能夠正常運(yùn)行,系統(tǒng)能夠按照預(yù)期完成工作。
本文以新風(fēng)系統(tǒng)作為研究對(duì)象,基于ARM STM32 F103控制器,以SNL-AIRC-05多合一新風(fēng)傳感模組為數(shù)據(jù)采集模塊、4G DTU ATK-M751為無(wú)線通信模塊,利用原子云平臺(tái)等設(shè)計(jì)了一套新風(fēng)控制系統(tǒng),在新風(fēng)系統(tǒng)基本功能不變的基礎(chǔ)上,提升了新風(fēng)系統(tǒng)的網(wǎng)絡(luò)化和智能化水平。