



摘? 要:現存的冷藏運輸車在長途運輸過程中難以保證車廂內溫濕度等數據的穩(wěn)定。為了獲取長途運輸過程中冷藏車車廂溫度和壓力等數據,降低運輸風險,文章基于STM32微控制器設計了一款車載數據監(jiān)測系統(tǒng),系統(tǒng)使用C++和Qt框架進行圖形交互界面的開發(fā),通過MS8607傳感器監(jiān)測車廂數據。該設計結合了軟件部分可移植性強和硬件部分耐受力高等優(yōu)點。
關鍵詞:數據監(jiān)測;Qt平臺;STM32
中圖分類號:TP277? ? ? ?文獻標識碼:A文章編號:2096-4706(2022)03-0162-03
Design of Data Monitoring System for Refrigerated Transport Vehicle
DU Zheng
(School of Electrical and Information Engineering, Anhui University of Science and Technology, Huainan? 232001, China)
Abstract: The existing refrigerated transport vehicles are difficult to ensure the stability of temperature, humidity and other data in the carriage during long-distance transportation process. In order to obtain the temperature and pressure and other data of refrigerated vehicles during long-distance transportation process and reduce the transportation risk, this paper designs an on-board data monitoring system based on STM32 microcontroller. The system uses C++ and QT frame to develop the graphical interactive interface, and monitors the vehicle data through MS8607 sensor. The design combines the advantages of strong portability of software and high tolerance of hardware and so on.
Keywords: data monitoring; QT platform; STM32
0? 引? 言
在冷鏈物流行業(yè)中,傳統(tǒng)的公路運輸依然是最主要的運輸方式,而廂式冷藏運輸車依然是最最主要的運輸工具。長途運輸過程中若車廂制冷系統(tǒng)發(fā)生故障,勢必影像運輸貨物的安全。司機在行駛過程中也很難分心照顧車廂溫濕度等數據。從食品安全的角度出發(fā),提高冷藏物流運輸過程中的車廂數據監(jiān)測是非常有必要的。基于上述原因,設計出一套車載數據監(jiān)測系統(tǒng)。
1? 系統(tǒng)總體設計
監(jiān)測系統(tǒng)的總體設計如圖1所示。系統(tǒng)主要由傳感器采集模塊、上位機數據顯示模塊和數據傳輸模塊組成。冷藏車車廂內的溫度、壓力和濕度數據由MS8607傳感器采集,數據統(tǒng)一存放至SD存儲卡中。由Qt平臺編寫的圖形交互界面顯示數據,當數據超出設定閾值時發(fā)出警報提醒司機,并通過GPRS通信模塊向監(jiān)測中心發(fā)出報警短信。
2? 軟件部分設計
2.1? 主程序設計
軟件部分采用C++和Qt框架進行設計,其面向對象的特性也提高了程序的適用性和可移植性。Qt是一個GUI仿真工具包,即不使用本地工具包作調用,而是使用各自平臺上的低級繪圖函數,從而提高程序的速度。工作流程如圖2所示,大致為:當程序開始工作時,系統(tǒng)會進行定時器和引腳的初始化,當溫濕度傳感器檢測到冷藏車廂內數據超過設定閾值時,蜂鳴器發(fā)出警報提醒司機,司機根據當時狀況選擇是否通過GPRS通信模塊發(fā)送當前車廂的異常數據和車廂定位信息。
2.2? 圖形界面設計
車廂系統(tǒng)軟件主界面中有四個按鈕,分別是系統(tǒng)狀態(tài)、車廂設置、行駛記錄和系統(tǒng)設置。通過可視化界面實時監(jiān)測溫度變化,實現用戶對數據的快速觀測。溫度設置界面設置車廂監(jiān)測溫度的上限和下限,當車輛運行中溫度出現異常時蜂鳴器會發(fā)出報警聲響,LED也會發(fā)出紅色警報。當畫面處于系統(tǒng)主界面窗口時點擊按鈕“車廂設置”,進入到溫度設置界面,如圖3所示。假設主界面是窗口A,溫度設置界面是窗口B。調用者A設置了一個槽函數,發(fā)出動作“創(chuàng)建一個B窗口”,使用exec()方法啟動了B窗口。被調用者B也是利用信號與槽的連接函數,單擊“保存退出”按鈕后關閉界面。界面上有繼承了QPushButton類的saveButton按鈕對象和quitButton按鈕對象,如字面意思,分別實現保存數據的功能和退出當前界面的功能。為了讓溫度設置界面更加的個性化,分別設置了繼承了QSlider類的數據調整對象horizontalSlider和繼承了QLCDNumber類的數據顯示對象lcdNumber。QSlider很少有自己的函數,大部分功能在QAbstractSlider中。這里拿設置最高車廂溫度來說明,通過setMininum()和setMininum()函數分別設置滑動條的最小值為-50,最大值為50,即最低溫度-50 ℃最高溫度50 ℃,此處僅表示軟件設置界面的最大最小值。
車輛行駛過程中車廂溫度一直處于動態(tài)變化的過程,為了便于實時的觀測和統(tǒng)計,行駛記錄界面中設置了折線視圖來便于整體觀測車廂溫度在24 h內變化情況。使用一個QSplineSeries曲線對象,一個QChart圖表和一個QChartView圖表視圖。本設計使用的是Qt5.12版本自帶的繪圖組件庫,首先在工程pro文件中添加“QT += charts”以便在項目中使用Qt Charts模塊,使用圖表模塊前還需要使用命名空間,在頭文件中添加“QT_CHARTS_USE_NAMESPACE”,這樣才能順利定義圖表繪制中的坐標軸。首先通過setGeometry(0,0,800,480)函數設置顯示位置與大小,定義坐標軸數據范圍,分別進行曲線、圖表、圖表視圖的實例化,溫度變化效果如圖4所示,提供實時的溫度變化。創(chuàng)建橫坐標軸X和縱坐標軸Y的對象,定時器timer用來控制繪制速度。設置縱坐標軸Y的標題、坐標軸方向、Y軸顯示范圍(-50℃到50℃),通過“splineSeries->attachAxis(axisX)”將曲線對象附加在Y軸上,同理進行X軸的相關屬性設置。在將圖表視圖對象設置為顯示界面的中心部件后開始信號槽連接,當定時器timer發(fā)出信號timerout時顯示組件開始曲線繪制操作。程序讀寫由溫度傳感器提供的數據,設置每次讀取的最大數據為24個單位,通過循環(huán)使得當數據個數超過最大值后,刪除第一個數據,如此反復便實現了數據的移動過程,也即曲線的動態(tài)顯示。
3? 硬件部分設計
3.1? GPS模塊
ATK-S1216F8-BD-V23模塊具有167個通道,測量輸出頻率最高可達20 Hz,通過串口對模塊各參數進行配置并保存在內部FLASH中,使用SkyTrap協(xié)議配置串口波特率、PPS脈沖輸出寬度、輸出頻率等。默認采用NEMA-0183協(xié)議輸出GPS的定位數據,NMEA-0183協(xié)議是以類似$GPGSV為開頭,然后固定輸出格式,以‘*’作為有效數據的結尾。VCC為電源引腳(3.3 ~ 5 V),GND接地引腳,TXD為模塊串口發(fā)送引腳,RXD為模塊串口接受引腳,發(fā)送和接收引腳均為TTL電平。模塊自帶狀態(tài)知識燈PPS,指示燈常亮表示模塊已經開始工作,但未完成定位,指示燈閃爍時表示已經定位成功。
3.2? GPRS模塊
GPRS模塊是具有GPRS數據傳輸功能的GSM模塊(將GSM射頻芯片、基帶處理芯片、存儲器、功放器件等集成在一塊線路板上的功能模塊)。GPRS模塊就是一個精簡版的手機,集成GSM通信的主要功能于一塊電路板上,具有發(fā)送短消息、通話、數據傳輸等功能。GPRS模塊相當于手機的核心部分,如果增加鍵盤和屏幕就是一個完整的手機。本設計中MCU通過RS-232串口與GPRS模塊相連,通過AT指令控制GPRS模塊實現各種基于GSM的通信功能。
3.3? 顯示模塊
顯示模塊采用4.3寸的RGBLCD電容觸摸屏,屏幕分辨率為480×272,最高支持24位真彩顯示。顯示模塊本身是不帶控制器的,在本設計中程序通過交叉編譯移植進硬件后,通過顯示模塊打開用戶界面。VCC引腳為5 V電源輸入引腳,GND接地,R0至R7是8位RED數據位,G0至G7是8位GREEN數據位,B0至B7是8位BLUE數據位,CLK為像素時鐘。HSYNC和VSYNC分別是水平同步信號引腳和垂直同步信號引腳,DE為數據使能信號位。LCD控制共需要29個IO口驅動,輸入格式為RBG888,電容觸摸屏需要33個IO口驅動,MCU在初始化RGB參數前先讀取R7/G7/B7的狀態(tài),從而判斷顯示屏對應的分辨率為480×272。觸摸屏模塊通過I2C接口與MCU連接。
3.4? 通信接口設計
設計中使用RS-232串口連接GPRS模塊和開發(fā)板。TTL的電平標準在理想狀態(tài)下使用5 V表示二進制邏輯1,0 V表示邏輯0;而為了增加串口通信的遠距離傳輸及抗干擾能力,它使用-15 V表示邏輯1,+15 V表示邏輯0。
Qt提供了串口類,可以直接對串口進行訪問。將QSerialPort庫安裝到Qt中,需要在Qt的pro項目文件中添加窗口模塊的支持:QT += core gui serialport。在頭文件中聲明屬于QSerialPort類的串口對象serialPort,用作接收數據的對象textBrowser,用作發(fā)送數據對象textEdit。在頭文件中聲明界面布局初始化函數,掃描系統(tǒng)可用串口函數以及進行波特率項、數據位項、檢驗位項、停止位項的初始化函數聲明。在源文件中首先進行界面布局初始化的設置,利用垂直布局和網格布局方式,根據實際顯示屏大小設置全屏顯示。初始化界面后開始查找系統(tǒng)可用的串口,并添加串口名到下拉窗口部件comboBox[0]中,串口波特率預設為115 200,并添加到comboBox[1]中,設置默認數據為8,無校驗位,默認停止位為1。使用函數void openSerialPortPush ButtonClicked()打開或者關閉串口,從緩存區(qū)里讀取數據并顯示到textBrower中。
4? 結? 論
本次設計以STM32為主控核心,硬件部分采用了GPRS模塊進行遠距離通信、GPS模塊定位運輸車輛的坐標信息、溫度傳感器模塊實時監(jiān)測車廂中的溫度變化,以及一些系統(tǒng)必備的功能模塊。軟件部分處于系統(tǒng)兼容性的考慮選擇了Qt框架平臺進行圖形用戶界面的開發(fā)。使用QApplication類管理GUI程序的控制流和主要設置、QPixmap類進行圖形繪制、QSplashScreen類實現Qt程序的啟動動畫以及QTest類進行單元測試。
參考文獻:
[1] 毋慶剛.我國冷鏈物流發(fā)展現狀與對策研究 [J].中國流通經濟,2011,25(2):24-28.
[2] 游燕珍,趙國鋒,徐川.基于Qt/E的嵌入式GUI的研究及其移植 [J].微計算機信息,2008(14):61-63.
[3] 陳冰曲.基于嵌入式系統(tǒng)的車輛目標檢測研究 [D].重慶:重慶交通大學,2019.
[4] 滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無線智能家居網關設計 [J].計算機應用,2010,30(9):2541-2544.
[5] 鄭州朗睿科技有限公司.一種嵌入式系統(tǒng)的串行通信接口電平轉換電路:CN207543086U [P].2018-06-26.
[6] 李助軍,譚森.一種汽車涉水遠程報警裝置的研制 [J].裝備制造技術,2014(6):64-66.
[7] 苑潔,常太華.基于STM32單片機的高精度超聲波測距系統(tǒng)的設計 [J].電子設計工程,2011,19(15):76-78+82.
作者簡介:杜錚(1994.12—),男,漢族,安徽舒城人,碩士在讀,研究方向:傳感器與檢測技術。