www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]針對(duì)燃料電池開(kāi)發(fā)過(guò)程中對(duì)溫度控制的需要,設(shè)計(jì)了一種溫度監(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ì)要求。

燃料電池(fuel cell)是一種新型綠色能源技術(shù),是把燃料和氧化劑中的化學(xué)能直接轉(zhuǎn)化成電能的裝置。燃料電池與一般干電池的不同點(diǎn)是:只要保持燃料供應(yīng),電池就會(huì)不斷提供電能,而且電池反應(yīng)的最終產(chǎn)物是水,不會(huì)對(duì)環(huán)境造成任何污染,以碳?xì)浠衔镒魅剂蠒r(shí),反應(yīng)產(chǎn)物僅增加少量二氧化碳[1]。

燃料電池電堆的溫度分布對(duì)燃料電池的安全與壽命有重要影響,尤其是在采用質(zhì)子交換膜的車(chē)用燃料電池中,溫度不僅影響到催化劑的活性,而且還直接影響到質(zhì)子交換膜的含水性,因此對(duì)其溫度的控制有很高的要求。為了在研究過(guò)程中對(duì)其溫度變化進(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)過(guò)編譯的嵌入式Linux2.6內(nèi)核及Qt/E庫(kù)移植到ARM上,溫控系統(tǒng)的GUI控制界面運(yùn)行于LCD上。

溫控器以freescale公司MC9S12DG128B單片機(jī)為控制核心,采用熱電阻作為溫度傳感器,將溫度信號(hào)轉(zhuǎn)化為模擬量的電信號(hào),再經(jīng)過(guò)放大電路及壓頻變換(V/F變換)后,變?yōu)閿?shù)字量的電信號(hào)輸入控制器,實(shí)現(xiàn)控制算法??刂破鬏敵龅腜WM信號(hào)經(jīng)過(guò)光電隔離后直接控制固態(tài)繼電器,從而控制熱風(fēng)嘴加熱器對(duì)控制對(duì)象進(jìn)行加熱操作,實(shí)現(xiàn)溫度控制。

Web Server單元采用移植基于Linux的Boa服務(wù)器,通過(guò)CGI(公共網(wǎng)關(guān)接口)實(shí)現(xiàn)遠(yuǎn)程用戶(hù)與系統(tǒng)間的交互。
數(shù)據(jù)庫(kù)單元采用SQLite數(shù)據(jù)庫(kù),Qt為數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)提供的QtSql模塊實(shí)現(xiàn)了數(shù)據(jù)庫(kù)與Qt應(yīng)用程序的無(wú)縫鏈接,同時(shí)為開(kāi)發(fā)人員提供了一套與具體所用數(shù)據(jù)庫(kù)無(wú)關(guān)的調(diào)用接口。

GUI控制界面采用Qt Designer設(shè)計(jì)系統(tǒng)的控制界面,利用Qt的信號(hào)/槽(signals/slots)機(jī)制實(shí)現(xiàn)界面對(duì)下位機(jī)的控制。

2 各部分設(shè)計(jì)方法

本文重點(diǎn)研究監(jiān)控系統(tǒng)GUI界面、數(shù)據(jù)庫(kù)及遠(yuǎn)程監(jiān)控的設(shè)計(jì)與開(kāi)發(fā),主要詳細(xì)了介紹GUI界面、數(shù)據(jù)庫(kù)以及Web Server的設(shè)計(jì),對(duì)于溫控器的設(shè)計(jì)本文不作重點(diǎn)介紹。

2.1GUI界面及Qt程序設(shè)計(jì)

2.1.1Qt的移植

本系統(tǒng)的構(gòu)建是通過(guò)編譯Qt4的庫(kù)到開(kāi)發(fā)板來(lái)實(shí)現(xiàn)的,首先應(yīng)對(duì)源碼進(jìn)行配置編譯,使庫(kù)添加對(duì)底層驅(qū)動(dòng)的支持。設(shè)置環(huán)境變量如下[2]:

Export PATH= /usr/local/arm/3.3.2/bin:$PATH
Export QTDIR=$PWD
Export QTEDIR=$QTDIR
Export LD_LIBRARY_PATH=$QTDIR/lib:$ LD_LIBRARY_PATH

配置Qt使其支持?jǐn)?shù)據(jù)庫(kù)、網(wǎng)絡(luò)、觸摸屏等驅(qū)動(dòng),將編譯后的Qt目錄下的lib文件夾下的庫(kù)文件加入根文件系統(tǒng)。

為了方便用戶(hù)操作,本系統(tǒng)應(yīng)支持中文字體顯示。為此,一方面將編譯后的Qt/Embedeed的/lib/font目錄下的字體庫(kù)文件添加到根文件系統(tǒng)中,為了節(jié)省資源,可以只選擇比較常用的一兩種字體庫(kù);另一方面由于程序中默認(rèn)的字體不支持中文,故在程序中需指定一種中文字體,方法是在程序的main函數(shù)中添加如下語(yǔ)句:

QTextCodec::setCodecForTr(QTextcodec::codecForName(‘gb18030‘));

2.1.2程序界面開(kāi)發(fā)

根據(jù)功能需求分析,設(shè)計(jì)構(gòu)建了監(jiān)控系統(tǒng)的層次化GUI界面結(jié)構(gòu)圖[3],如圖2所示。


從圖2中可以看出,子菜單主要分成兩部分:一部分是溫控界面的主要控制菜單,其中主要包括溫度的設(shè)定、工作模式的設(shè)定、通信控制按鈕、和溫度顯示部分;另一部分主要完成歷史數(shù)據(jù)的顯示,通過(guò)選擇特定的通道和時(shí)間區(qū)間,可以在顯示區(qū)顯示溫度的變化曲線(xiàn),為此需要在程序中構(gòu)建一個(gè)數(shù)據(jù)庫(kù)文件用來(lái)存放歷史數(shù)據(jù),這部分會(huì)在后面詳細(xì)介紹。

首先使用設(shè)計(jì)器創(chuàng)建界面的對(duì)話(huà)框,在對(duì)話(huà)框中添加組件,如:添加按鈕以調(diào)用其他類(lèi)來(lái)實(shí)現(xiàn)界面的控制,添加LCDNumber控件來(lái)模擬顯示溫度,添加下拉菜單來(lái)進(jìn)行不同通道的選擇等。連接組件的SIGNAL/SLOT以響應(yīng)事件,修改控件屬性,合理調(diào)整布局。保存GUI界面為T(mén)emperature.ui,根據(jù)設(shè)計(jì)器保存的界面文件(ui文件)使用uic命令生成.h頭文件。

在Qt下,使用多重繼承的方式設(shè)計(jì)我們自己的界面類(lèi),這需要從標(biāo)準(zhǔn)的QTabWidget類(lèi)和Qt設(shè)計(jì)器生成的界面類(lèi)繼承,如圖3所示。


在界面類(lèi)MytemperWid中,定義GUI界面所需要的槽函數(shù),如:定義Displaynumber()函數(shù)用于顯示接收到的數(shù)據(jù),定義Connect_serial()和Disconnect_serial()分別用于連接和斷開(kāi)端口,定義CreatSqliteDB()用于創(chuàng)建數(shù)據(jù)庫(kù)等。

MytemperWid類(lèi)的程序片段如下:
class MytemperWid:public QTabWidget,public Ui::Temperature
{Q_OBJECT
public:
Mytempwid(QWidget *parent =0);
public slots:
void Displaynumber(); //接收并顯示溫度信息
void Connect_serial();//連接端口
void Disconnect_serial(); //斷開(kāi)端口
void CreatSqliteDB();//創(chuàng)建數(shù)據(jù)口
… …
private:
… …
};

2.2Web Server的設(shè)計(jì)

Boa是嵌入式 Web Server中的代表,對(duì)于Boa的移植非常簡(jiǎn)單[4],配置好交叉編譯器后,編譯Boa源代碼,將生成的應(yīng)用程序放入根文件系統(tǒng)的/bin目錄下,接下來(lái)完成Boa的配置。

Boa需要在/etc目錄下建立一個(gè)boa目錄,里面放入Boa的主要配置文件boa.conf。在Boa源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎(chǔ)上進(jìn)行修改。首先修改Group為User,修改User為boa,要根據(jù)自己開(kāi)發(fā)板的情況設(shè)定,一定要是存在的用戶(hù)和組。設(shè)置ServerName可以為想要的任何名字,接下來(lái),從Linux主機(jī)的/etc目錄下將mine.types文件復(fù)制到文件系統(tǒng)/etc目錄下。最后,創(chuàng)建日志文件所需的目錄/var/log/boa,HTML文檔的主目錄/var/www,CGI腳本所在目錄/var/www/cgi-bin。

配置工作完成以后,設(shè)定開(kāi)發(fā)板的ip與主機(jī)在同一網(wǎng)段,運(yùn)行boa,即可開(kāi)啟boa服務(wù)器,將靜態(tài)網(wǎng)頁(yè)放入/var/www目錄下,在瀏覽器中輸入開(kāi)發(fā)板ip即可看到網(wǎng)頁(yè)運(yùn)行,對(duì)于動(dòng)態(tài)網(wǎng)頁(yè),要編寫(xiě)相應(yīng)的CGI程序,編譯后放入/var/www/cgi-bin目錄。

CGI是Web服務(wù)器與你的或其他機(jī)器上的http程序進(jìn)行“交談”的一種工具,其程序需運(yùn)行在網(wǎng)絡(luò)服務(wù)器上。在本設(shè)計(jì)中,ARM板通過(guò)串口與下位機(jī)進(jìn)行通信,遠(yuǎn)程PC無(wú)法直接與下位機(jī)進(jìn)行通信,所以采用數(shù)據(jù)庫(kù)作為數(shù)據(jù)的中轉(zhuǎn)單元,在數(shù)據(jù)庫(kù)中建立兩個(gè)字段,一個(gè)字段用于存放數(shù)據(jù)信息,另一字段存放控制信息。如圖1系統(tǒng)的結(jié)構(gòu)圖所示,下位機(jī)的數(shù)據(jù)信息通過(guò)串口發(fā)往ARM,將這些信息在LCD上顯示,同時(shí)經(jīng)這些信息保存在數(shù)據(jù)字段中,CGI程序讀取并處理數(shù)據(jù)字段信息后,將這些信息顯示在遠(yuǎn)程PC的瀏覽器上;另一方面,PC端的控制信息,經(jīng)CGI編碼后存放于數(shù)據(jù)庫(kù)的控制字段中,Qt程序檢查控制字段,根據(jù)這些控制信息改變程序運(yùn)行狀態(tài)。

2.3數(shù)據(jù)庫(kù)的設(shè)計(jì)

SQLite是一款輕型的數(shù)據(jù)庫(kù),它的設(shè)計(jì)目標(biāo)是嵌入式,占用資源低、能夠支持Windows/Linux/Unix等主流的操作系統(tǒng),與Mysql、PostgreSQL這兩款開(kāi)源世界著名的數(shù)據(jù)庫(kù)管理系統(tǒng)相比,它的處理速度快[5]。Qt的QtSql模塊由三部分組成,分別是驅(qū)動(dòng)層、SQL接口層、用戶(hù)接口層。QtSql模塊為不同層次的用戶(hù)提供了豐富的數(shù)據(jù)庫(kù)操作類(lèi)。

在進(jìn)行數(shù)據(jù)庫(kù)操作前,必須首先建立與數(shù)據(jù)庫(kù)的連接。QtSql模塊使用驅(qū)動(dòng)插件與不同數(shù)據(jù)庫(kù)接口通信,目前Qt4支持幾乎所有主流數(shù)據(jù)庫(kù)。在配置Qt時(shí),選擇將SQLite驅(qū)動(dòng)內(nèi)置于Qt中或者編譯成插件。在使用QtSql模塊時(shí),需要對(duì)工程進(jìn)行配置:在頭文件中加入語(yǔ)句#include;在工程的.pro文件中加入Qt+=sql。經(jīng)配置后,在Qt應(yīng)用程序中就可以連接并使用SQLite數(shù)據(jù)庫(kù)了。在Qt中建立數(shù)據(jù)庫(kù)連接的方法是:

QSqlDatabase db=QSqldatabase::addDatabase(‘QSQ-LITE‘);

根據(jù)本系統(tǒng)的要求,要監(jiān)控8個(gè)通道的溫度數(shù)據(jù),能根據(jù)這些數(shù)據(jù)繪制歷史曲線(xiàn),所以數(shù)據(jù)庫(kù)要包含一個(gè)時(shí)間字段和八個(gè)溫度值字段,同時(shí)還要一個(gè)數(shù)值字段和一個(gè)控制字字段用于與遠(yuǎn)程PC的通信,在Qt程序中可以使用如下語(yǔ)句建立數(shù)據(jù)庫(kù):

QSqlQueryq;
q.exec(‘CREATE TABLE temperature (datetime DOUBLE,‘‘channel1 DOUBLE,‘‘channel2 DOUBLE,‘‘channel3 DOUBLE,‘‘channel4 DOUBLE,‘‘channel5 DOUBLE,‘‘channel6 DOUBLE,‘‘channel7 DOUBLE,‘‘channel8 DOUBLE,‘‘webdate DOUBLE,‘‘webcontrol DOUBLE)‘);

建立數(shù)據(jù)庫(kù)后,就可以使用INSERT、DELETE等SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行插入、刪除等操作了。

3運(yùn)行實(shí)例

根據(jù)上文所提出的技術(shù)方案和Qt/E程序設(shè)計(jì)思想,在S3C2410ARM處理器上完成了系統(tǒng)的開(kāi)發(fā),系統(tǒng)運(yùn)行界面截圖如圖4所示。

選則好通道和時(shí)間區(qū)間,可以查看各通道不同時(shí)間段內(nèi)的歷史曲線(xiàn)圖,如圖5所示。
在開(kāi)發(fā)板上運(yùn)行Boa服務(wù)器,設(shè)置開(kāi)發(fā)板ip為192.168.1.100,在遠(yuǎn)程PC上打開(kāi)瀏覽器,輸入“http://192.168.1.100/cgi-bin/temperature”,則可在瀏覽器上監(jiān)控系統(tǒng)運(yùn)行,如圖6所示。


根據(jù)燃料電池開(kāi)發(fā)過(guò)程中對(duì)溫度監(jiān)控的需要設(shè)計(jì)了實(shí)時(shí)監(jiān)控系統(tǒng)及GUI界面,本文詳細(xì)介紹了整個(gè)系統(tǒng)的結(jié)構(gòu)及系統(tǒng)各部分的開(kāi)發(fā)流程,基于Qt/E類(lèi)庫(kù),設(shè)計(jì)了監(jiān)控系統(tǒng)的GUI及程序結(jié)構(gòu)。實(shí)際運(yùn)行結(jié)果表明,所提出的設(shè)計(jì)方法能夠滿(mǎn)足應(yīng)用的需要。

本設(shè)計(jì)與初步應(yīng)用表明,采用Qt/Embedded作為開(kāi)發(fā)圖形界面工具,利用其結(jié)構(gòu)清晰的特點(diǎn)和跨平臺(tái)性,能有效縮短項(xiàng)目的開(kāi)發(fā)周期,提高程序代碼的重用率,是開(kāi)發(fā)嵌入式系統(tǒng)GUI界面的有效工具。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉