版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于ARM/Linux的燃料電池溫度監(jiān)控系統(tǒng)GUI設(shè)計(jì)
楊建華,黃宇東,陳安,胡躍明時(shí)間:2009年07月02日
字體:大中小
關(guān)鍵詞:<"cblue""/search/?q=燃料電池"target='_blank'>燃料電池<"cblue""/search/?q=監(jiān)控系統(tǒng)"target='_blank'>監(jiān)控系統(tǒng)<"cblue""/search/?q=開發(fā)板"target='_blank'>開發(fā)板<"cblue""/search/?q=下位機(jī)"target='_blank'>下位機(jī)<"cblue""/search/?q=應(yīng)用程序"target='_blank'>應(yīng)用程序
摘要:針對<"cblue""/search/?q=燃料電池"title="燃料電池">燃料電池開發(fā)過程中對溫度控制的需要,設(shè)計(jì)了一種溫度<"cblue""/search/?q=監(jiān)控系統(tǒng)"title="監(jiān)控系統(tǒng)">監(jiān)控系統(tǒng),監(jiān)控溫度的變化。在介紹了系統(tǒng)整體結(jié)構(gòu)及各部分設(shè)計(jì)方法之后,基于S3C2410和嵌入式Linux,以Qt/E為工具給出了GUI設(shè)計(jì)思想。實(shí)際運(yùn)行表明該系統(tǒng)完全符合設(shè)計(jì)要求。
???關(guān)鍵詞:燃料電池;Qt/Embedded;GUI;WebServer???燃料電池(fuelcell)是一種新型綠色能源技術(shù),是把燃料和氧化劑中的化學(xué)能直接轉(zhuǎn)化成電能的裝置。燃料電池與一般干電池的不同點(diǎn)是:只要保持燃料供應(yīng),電池就會不斷提供電能,而且電池反應(yīng)的最終產(chǎn)物是水,不會對環(huán)境造成任何污染,以碳?xì)浠衔镒魅剂蠒r(shí),反應(yīng)產(chǎn)物僅增加少量二氧化碳[1]。
???燃料電池電堆的溫度分布對燃料電池的安全與壽命有重要影響,尤其是在采用質(zhì)子交換膜的車用燃料電池中,溫度不僅影響到催化劑的活性,而且還直接影響到質(zhì)子交換膜的含水性,因此對其溫度的控制有很高的要求。為了在研究過程中對其溫度變化進(jìn)行實(shí)時(shí)監(jiān)控,本文基于ARM/Linux構(gòu)建了一個(gè)燃料電池溫度監(jiān)控系統(tǒng)。
1系統(tǒng)結(jié)構(gòu)
???本監(jiān)控系統(tǒng)整體結(jié)構(gòu)如圖1所示。?
溫控系統(tǒng)采用ARM微處理器S3C2410作為嵌入式微處理器。將經(jīng)過編譯的嵌入式Linux2.6內(nèi)核及Qt/E庫移植到ARM上,溫控系統(tǒng)的GUI控制界面運(yùn)行于LCD上。
???溫控器以freescale公司MC9S12DG128B單片機(jī)為控制核心,采用熱電阻作為溫度傳感器,將溫度信號轉(zhuǎn)化為模擬量的電信號,再經(jīng)過放大電路及壓頻變換(V/F變換)后,變?yōu)閿?shù)字量的電信號輸入控制器,實(shí)現(xiàn)控制算法。控制器輸出的PWM信號經(jīng)過光電隔離后直接控制固態(tài)繼電器,從而控制熱風(fēng)嘴加熱器對控制對象進(jìn)行加熱操作,實(shí)現(xiàn)溫度控制。
???WebServer單元采用移植基于Linux的Boa服務(wù)器,通過CGI(公共網(wǎng)關(guān)接口)實(shí)現(xiàn)遠(yuǎn)程用戶與系統(tǒng)間的交互。
???數(shù)據(jù)庫單元采用SQLite數(shù)據(jù)庫,Qt為數(shù)據(jù)庫訪問提供的QtSql模塊實(shí)現(xiàn)了數(shù)據(jù)庫與Qt<"cblue""/search/?q=應(yīng)用程序"title="應(yīng)用程序">應(yīng)用程序的無縫鏈接,同時(shí)為開發(fā)人員提供了一套與具體所用數(shù)據(jù)庫無關(guān)的調(diào)用接口。
???GUI控制界面采用QtDesigner設(shè)計(jì)系統(tǒng)的控制界面,利用Qt的信號/槽(signals/slots)機(jī)制實(shí)現(xiàn)界面對<"cblue""/search/?q=下位機(jī)"title="下位機(jī)">下位機(jī)的控制。
2?各部分設(shè)計(jì)方法
??本文重點(diǎn)研究監(jiān)控系統(tǒng)GUI界面、數(shù)據(jù)庫及遠(yuǎn)程監(jiān)控的設(shè)計(jì)與開發(fā),主要詳細(xì)了介紹GUI界面、數(shù)據(jù)庫以及WebServer的設(shè)計(jì),對于溫控器的設(shè)計(jì)本文不作重點(diǎn)介紹。
2.1?GUI界面及Qt程序設(shè)計(jì)
2.1.1?Qt的移植
???本系統(tǒng)的構(gòu)建是通過編譯Qt4的庫到<"cblue""/search/?q=開發(fā)板"title="開發(fā)板">開發(fā)板來實(shí)現(xiàn)的,首先應(yīng)對源碼進(jìn)行配置編譯,使庫添加對底層驅(qū)動的支持。設(shè)置環(huán)境變量如下[2]:
???ExportPATH=/usr/local/arm/3.3.2/bin:$PATH
ExportQTDIR=$PWD
ExportQTEDIR=$QTDIR
ExportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
配置Qt使其支持?jǐn)?shù)據(jù)庫、網(wǎng)絡(luò)、觸摸屏等驅(qū)動,將編譯后的Qt目錄下的lib文件夾下的庫文件加入根文件系統(tǒng)。
為了方便用戶操作,本系統(tǒng)應(yīng)支持中文字體顯示。為此,一方面將編譯后的Qt/Embedeed的/lib/font目錄下的字體庫文件添加到根文件系統(tǒng)中,為了節(jié)省資源,可以只選擇比較常用的一兩種字體庫;另一方面由于程序中默認(rèn)的字體不支持中文,故在程序中需指定一種中文字體,方法是在程序的main函數(shù)中添加如下語句:
QTextCodec::setCodecForTr(QTextcodec::codecForName('gb18030'));
2.1.2?程序界面開發(fā)
根據(jù)功能需求分析,設(shè)計(jì)構(gòu)建了監(jiān)控系統(tǒng)的層次化GUI界面結(jié)構(gòu)圖[3],如圖2所示。
從圖2中可以看出,子菜單主要分成兩部分:一部分是溫控界面的主要控制菜單,其中主要包括溫度的設(shè)定、工作模式的設(shè)定、通信控制按鈕、和溫度顯示部分;另一部分主要完成歷史數(shù)據(jù)的顯示,通過選擇特定的通道和時(shí)間區(qū)間,可以在顯示區(qū)顯示溫度的變化曲線,為此需要在程序中構(gòu)建一個(gè)數(shù)據(jù)庫文件用來存放歷史數(shù)據(jù),這部分會在后面詳細(xì)介紹。
首先使用設(shè)計(jì)器創(chuàng)建界面的對話框,在對話框中添加組件,如:添加按鈕以調(diào)用其他類來實(shí)現(xiàn)界面的控制,添加LCDNumber控件來模擬顯示溫度,添加下拉菜單來進(jìn)行不同通道的選擇等。連接組件的SIGNAL/SLOT以響應(yīng)事件,修改控件屬性,合理調(diào)整布局。保存GUI界面為Temperature.ui,根據(jù)設(shè)計(jì)器保存的界面文件(ui文件)使用uic命令生成.h頭文件。
在Qt下,使用多重繼承的方式設(shè)計(jì)我們自己的界面類,這需要從標(biāo)準(zhǔn)的QTabWidget類和Qt設(shè)計(jì)器生成的界面類繼承,如圖3所示。
在界面類MytemperWid中,定義GUI界面所需要的槽函數(shù),如:定義Displaynumber()函數(shù)用于顯示接收到的數(shù)據(jù),定義Connect_serial()和Disconnect_serial()分別用于連接和斷開端口,定義CreatSqliteDB()用于創(chuàng)建數(shù)據(jù)庫等。
MytemperWid類的程序片段如下:
???classMytemperWid:publicQTabWidget,publicUi::Temperature
{?Q_OBJECT
???public:
????????Mytempwid(QWidget*parent=0);
???publicslots:
????????voidDisplaynumber();?//接收并顯示溫度信息
????????voidConnect_serial();?//連接端口
????????voidDisconnect_serial();//斷開端口
????????voidCreatSqliteDB();?//創(chuàng)建數(shù)據(jù)口
????……
?????private:
????????……
};
2.2?WebServer的設(shè)計(jì)
Boa是嵌入式WebServer中的代表,對于Boa的移植非常簡單[4],配置好交叉編譯器后,編譯Boa源代碼,將生成的應(yīng)用程序放入根文件系統(tǒng)的/bin目錄下,接下來完成Boa的配置。
Boa需要在/etc目錄下建立一個(gè)boa目錄,里面放入Boa的主要配置文件boa.conf。在Boa源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎(chǔ)上進(jìn)行修改。首先修改Group為User,修改User為boa,要根據(jù)自己開發(fā)板的情況設(shè)定,一定要是存在的用戶和組。設(shè)置ServerName可以為想要的任何名字,接下來,從Linux主機(jī)的/etc目錄下將mine.types文件復(fù)制到文件系統(tǒng)/etc目錄下。最后,創(chuàng)建日志文件所需的目錄/var/log/boa,HTML文檔的主目錄/var/www,CGI腳本所在目錄/var/www/cgi-bin。
配置工作完成以后,設(shè)定開發(fā)板的ip與主機(jī)在同一網(wǎng)段,運(yùn)行boa,即可開啟boa服務(wù)器,將靜態(tài)網(wǎng)頁放入/var/www目錄下,在瀏覽器中輸入開發(fā)板ip即可看到網(wǎng)頁運(yùn)行,對于動態(tài)網(wǎng)頁,要編寫相應(yīng)的CGI程序,編譯后放入/var/www/cgi-bin目錄。
CGI是Web服務(wù)器與你的或其他機(jī)器上的http程序進(jìn)行“交談”的一種工具,其程序需運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。在本設(shè)計(jì)中,ARM板通過串口與下位機(jī)進(jìn)行通信,遠(yuǎn)程PC無法直接與下位機(jī)進(jìn)行通信,所以采用數(shù)據(jù)庫作為數(shù)據(jù)的中轉(zhuǎn)單元,在數(shù)據(jù)庫中建立兩個(gè)字段,一個(gè)字段用于存放數(shù)據(jù)信息,另一字段存放控制信息。如圖1系統(tǒng)的結(jié)構(gòu)圖所示,下位機(jī)的數(shù)據(jù)信息通過串口發(fā)往ARM,將這些信息在LCD上顯示,同時(shí)經(jīng)這些信息保存在數(shù)據(jù)字段中,CGI程序讀取并處理數(shù)據(jù)字段信息后,將這些信息顯示在遠(yuǎn)程PC的瀏覽器上;另一方面,PC端的控制信息,經(jīng)CGI編碼后存放于數(shù)據(jù)庫的控制字段中,Qt程序檢查控制字段,根據(jù)這些控制信息改變程序運(yùn)行狀態(tài)。
2.3?數(shù)據(jù)庫的設(shè)計(jì)
SQLite是一款輕型的數(shù)據(jù)庫,它的設(shè)計(jì)目標(biāo)是嵌入式,占用資源低、能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),與Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)相比,它的處理速度快[5]。Qt的QtSql模塊由三部分組成,分別是驅(qū)動層、SQL接口層、用戶接口層。QtSql模塊為不同層次的用戶提供了豐富的數(shù)據(jù)庫操作類。
在進(jìn)行數(shù)據(jù)庫操作前,必須首先建立與數(shù)據(jù)庫的連接。QtSql模塊使用驅(qū)動插件與不同數(shù)據(jù)庫接口通信,目前Qt4支持幾乎所有主流數(shù)據(jù)庫。在配置Qt時(shí),選擇將SQLite驅(qū)動內(nèi)置于Qt中或者編譯成插件。在使用QtSql模塊時(shí),需要對工程進(jìn)行配置:在頭文件中加入語句#include;在工程的.pro文件中加入Qt+=sql。經(jīng)配置后,在Qt應(yīng)用程序中就可以連接并使用SQLite數(shù)據(jù)庫了。在Qt中建立數(shù)據(jù)庫連接的方法是:
QSqlDatabasedb=QSqldatabase::addDatabase('QSQ-LITE');
根據(jù)本系統(tǒng)的要求,要監(jiān)控8個(gè)通道的溫度數(shù)據(jù),能根據(jù)這些數(shù)據(jù)繪制歷史曲線,所以數(shù)據(jù)庫要包含一個(gè)時(shí)間字段和八個(gè)溫度值字段,同時(shí)還要一個(gè)數(shù)值字段和一個(gè)控制字字段用于與遠(yuǎn)程PC的通信,在Qt程序中可以使用如下語句建立數(shù)據(jù)庫:
QSqlQuery?q;
q.exec('CREATETABLEtemperature(datetimeDOUBLE,''channel1DOUBLE,''channel2DOUBLE,''channel3DOUBLE,''channel4DOUBLE,''channel5DOUBLE,''channel6DOUBLE,''channel7DOUBLE,''channel8DOUBLE,''webdateDOUBLE,''webcontrolDOUBLE)');
建立數(shù)據(jù)庫后,就可以使用INSERT、DELETE等SQL語句對數(shù)據(jù)庫進(jìn)行插入、刪除等操作了。
3?運(yùn)行實(shí)例
根據(jù)上文所提出的技術(shù)方案和Qt/E程序設(shè)計(jì)思想,在S3C2410ARM處理器上完成了系統(tǒng)的開發(fā),系統(tǒng)運(yùn)行界面截圖如圖4所示。
???選則好通道和時(shí)間區(qū)間,可以查看各通道不同時(shí)間段內(nèi)的歷史曲線圖,如圖5所示。
在開發(fā)板上運(yùn)行Boa服務(wù)器,設(shè)置開發(fā)板ip為00,在遠(yuǎn)程PC上打開瀏覽器,輸入“http://00/cgi-bin/temperature”,則可在瀏覽器上監(jiān)控系統(tǒng)運(yùn)行,如圖6所示。?
根據(jù)燃料電池開發(fā)過程中對溫度監(jiān)控的需要設(shè)計(jì)了實(shí)時(shí)監(jiān)控系統(tǒng)及GUI界面,本文詳細(xì)介紹了整個(gè)系統(tǒng)的結(jié)構(gòu)及系統(tǒng)各部分的開發(fā)流程,基于Qt/E類庫,設(shè)計(jì)了監(jiān)控系統(tǒng)的GUI及程序結(jié)構(gòu)。實(shí)際運(yùn)行結(jié)果表明,所提出的設(shè)計(jì)方法能夠滿足應(yīng)用的需要。
???本設(shè)計(jì)與初步應(yīng)用表明,采用Qt/Embedded作為開發(fā)圖形界面工具,利用其結(jié)構(gòu)清晰的特點(diǎn)和跨平臺性,能有效縮短項(xiàng)目的開發(fā)周期,提高程序代碼的重用率,是開發(fā)嵌入式系統(tǒng)GUI界面的有效工具。
參考文獻(xiàn)
[1]孫佳,郭樺,陳士忠,等.溫度對PEM燃料電池性能的影響
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年算法模型訓(xùn)練數(shù)據(jù)標(biāo)注合同
- 水電站照明系統(tǒng)設(shè)計(jì)方案
- 安全員A證考試考前沖刺測試卷附有答案詳解重點(diǎn)附答案詳解
- 安全員A證考試考前沖刺練習(xí)【奪分金卷】附答案詳解
- 早教托班的面試題及答案解析(2025版)
- 安全員A證考試通關(guān)檢測卷(各地真題)附答案詳解
- 2023年安全員之B證(項(xiàng)目負(fù)責(zé)人)通關(guān)模擬卷附答案詳解
- 司法考試民法歷年主觀題真題及答案
- 安全員A證考試通關(guān)考試題庫及參考答案詳解【新】
- 管線施工材料采購方案
- 2026年南通科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題含答案解析
- 2025年廣西職業(yè)師范學(xué)院招聘真題
- 中遠(yuǎn)海運(yùn)集團(tuán)筆試題目2026
- 扦插育苗技術(shù)培訓(xùn)課件
- 妝造店化妝品管理制度規(guī)范
- 婦產(chǎn)科臨床技能:新生兒神經(jīng)行為評估課件
- 浙江省2026年1月普通高等學(xué)校招生全國統(tǒng)一考試英語試題(含答案含聽力原文含音頻)
- 基本農(nóng)田保護(hù)施工方案
- 股骨頸骨折患者營養(yǎng)護(hù)理
- 二級醫(yī)院醫(yī)療設(shè)備配置標(biāo)準(zhǔn)
- 北師大版(2024)小學(xué)數(shù)學(xué)一年級上冊期末綜合質(zhì)量調(diào)研卷(含答案)
評論
0/150
提交評論