《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于ARM/Linux的燃料電池溫度監控系統GUI設計

基于ARM/Linux的燃料電池溫度監控系統GUI設計

2009-07-02
作者:楊建華,黃宇東,陳 安,胡躍明

  摘 要: 針對燃料電池開發過程中對溫度控制的需要,設計了一種溫度監控系統,監控溫度的變化。在介紹了系統整體結構及各部分設計方法之后,基于S3C2410和嵌入式Linux,以Qt/E為工具給出了GUI設計思想。實際運行表明該系統完全符合設計要求。
??? 關鍵詞: 燃料電池;Qt/Embedded;GUI;Web Server

?

?? 燃料電池(fuel cell)是一種新型綠色能源技術,是把燃料和氧化劑中的化學能直接轉化成電能的裝置。燃料電池與一般干電池的不同點是:只要保持燃料供應,電池就會不斷提供電能,而且電池反應的最終產物是水,不會對環境造成任何污染,以碳氫化合物作燃料時,反應產物僅增加少量二氧化碳[1]。
??? 燃料電池電堆的溫度分布對燃料電池的安全與壽命有重要影響,尤其是在采用質子交換膜的車用燃料電池中,溫度不僅影響到催化劑的活性,而且還直接影響到質子交換膜的含水性,因此對其溫度的控制有很高的要求。為了在研究過程中對其溫度變化進行實時監控,本文基于ARM/Linux構建了一個燃料電池溫度監控系統。
1 系統結構
??? 本監控系統整體結構如圖1所示。

?


  溫控系統采用ARM微處理器S3C2410作為嵌入式微處理器。將經過編譯的嵌入式Linux2.6內核及Qt/E庫移植到ARM上,溫控系統的GUI控制界面運行于LCD上。
??? 溫控器以freescale公司MC9S12DG128B單片機為控制核心,采用熱電阻作為溫度傳感器,將溫度信號轉化為模擬量的電信號,再經過放大電路及壓頻變換(V/F變換)后,變為數字量的電信號輸入控制器,實現控制算法。控制器輸出的PWM信號經過光電隔離后直接控制固態繼電器,從而控制熱風嘴加熱器對控制對象進行加熱操作,實現溫度控制。
??? Web Server單元采用移植基于Linux的Boa服務器,通過CGI(公共網關接口)實現遠程用戶與系統間的交互。
??? 數據庫單元采用SQLite數據庫,Qt為數據庫訪問提供的QtSql模塊實現了數據庫與Qt應用程序的無縫鏈接,同時為開發人員提供了一套與具體所用數據庫無關的調用接口。
??? GUI控制界面采用Qt Designer設計系統的控制界面,利用Qt的信號/槽(signals/slots)機制實現界面對下位機的控制。
2?各部分設計方法
?? 本文重點研究監控系統GUI界面、數據庫及遠程監控的設計與開發,主要詳細了介紹GUI界面、數據庫以及Web Server的設計,對于溫控器的設計本文不作重點介紹。
2.1? GUI界面及Qt程序設計
2.1.1? Qt的移植

??? 本系統的構建是通過編譯Qt4的庫到開發板來實現的,首先應對源碼進行配置編譯,使庫添加對底層驅動的支持。設置環境變量如下[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使其支持數據庫、網絡、觸摸屏等驅動,將編譯后的Qt目錄下的lib文件夾下的庫文件加入根文件系統。
  為了方便用戶操作,本系統應支持中文字體顯示。為此,一方面將編譯后的Qt/Embedeed的/lib/font目錄下的字體庫文件添加到根文件系統中,為了節省資源,可以只選擇比較常用的一兩種字體庫;另一方面由于程序中默認的字體不支持中文,故在程序中需指定一種中文字體,方法是在程序的main函數中添加如下語句:
  QTextCodec::setCodecForTr(QTextcodec::codecForName('gb18030'));
2.1.2? 程序界面開發
  根據功能需求分析,設計構建了監控系統的層次化GUI界面結構圖[3],如圖2所示。


  從圖2中可以看出,子菜單主要分成兩部分:一部分是溫控界面的主要控制菜單,其中主要包括溫度的設定、工作模式的設定、通信控制按鈕、和溫度顯示部分;另一部分主要完成歷史數據的顯示,通過選擇特定的通道和時間區間,可以在顯示區顯示溫度的變化曲線,為此需要在程序中構建一個數據庫文件用來存放歷史數據,這部分會在后面詳細介紹。
  首先使用設計器創建界面的對話框,在對話框中添加組件,如:添加按鈕以調用其他類來實現界面的控制,添加LCDNumber控件來模擬顯示溫度,添加下拉菜單來進行不同通道的選擇等。連接組件的SIGNAL/SLOT以響應事件,修改控件屬性,合理調整布局。保存GUI界面為Temperature.ui,根據設計器保存的界面文件(ui文件)使用uic命令生成.h頭文件。
  在Qt下,使用多重繼承的方式設計我們自己的界面類,這需要從標準的QTabWidget類和Qt設計器生成的界面類繼承,如圖3所示。


  在界面類MytemperWid中,定義GUI界面所需要的槽函數,如:定義Displaynumber()函數用于顯示接收到的數據,定義Connect_serial()和Disconnect_serial()分別用于連接和斷開端口,定義CreatSqliteDB()用于創建數據庫等。
  MytemperWid類的程序片段如下:
  ??? class MytemperWid:public QTabWidget,public Ui::Temperature
  {? Q_OBJECT
  ??? public:
  ???????? Mytempwid(QWidget *parent =0);
  ??? public slots:
  ???????? void Displaynumber();?//接收并顯示溫度信息
  ???????? void Connect_serial();? //連接端口
  ???????? void Disconnect_serial(); //斷開端口
  ???????? void CreatSqliteDB();? //創建數據口
???? … …
 ????? private:
  ???????? … …
  };
2.2? Web Server的設計
  Boa是嵌入式 Web Server中的代表,對于Boa的移植非常簡單[4],配置好交叉編譯器后,編譯Boa源代碼,將生成的應用程序放入根文件系統的/bin目錄下,接下來完成Boa的配置。
  Boa需要在/etc目錄下建立一個boa目錄,里面放入Boa的主要配置文件boa.conf。在Boa源碼目錄下已有一個示例boa.conf,可以在其基礎上進行修改。首先修改Group為User,修改User為boa,要根據自己開發板的情況設定,一定要是存在的用戶和組。設置ServerName可以為想要的任何名字,接下來,從Linux主機的/etc目錄下將mine.types文件復制到文件系統/etc目錄下。最后,創建日志文件所需的目錄/var/log/boa,HTML文檔的主目錄/var/www,CGI腳本所在目錄/var/www/cgi-bin。
  配置工作完成以后,設定開發板的ip與主機在同一網段,運行boa,即可開啟boa服務器,將靜態網頁放入/var/www目錄下,在瀏覽器中輸入開發板ip即可看到網頁運行,對于動態網頁,要編寫相應的CGI程序,編譯后放入/var/www/cgi-bin目錄。
  CGI是Web服務器與你的或其他機器上的http程序進行“交談”的一種工具,其程序需運行在網絡服務器上。在本設計中,ARM板通過串口與下位機進行通信,遠程PC無法直接與下位機進行通信,所以采用數據庫作為數據的中轉單元,在數據庫中建立兩個字段,一個字段用于存放數據信息,另一字段存放控制信息。如圖1系統的結構圖所示,下位機的數據信息通過串口發往ARM,將這些信息在LCD上顯示,同時經這些信息保存在數據字段中,CGI程序讀取并處理數據字段信息后,將這些信息顯示在遠程PC的瀏覽器上;另一方面,PC端的控制信息,經CGI編碼后存放于數據庫的控制字段中,Qt程序檢查控制字段,根據這些控制信息改變程序運行狀態。
2.3? 數據庫的設計
  SQLite是一款輕型的數據庫,它的設計目標是嵌入式,占用資源低、能夠支持Windows/Linux/Unix等主流的操作系統,與Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統相比,它的處理速度快[5]。Qt的QtSql模塊由三部分組成,分別是驅動層、SQL接口層、用戶接口層。QtSql模塊為不同層次的用戶提供了豐富的數據庫操作類。
  在進行數據庫操作前,必須首先建立與數據庫的連接。QtSql模塊使用驅動插件與不同數據庫接口通信,目前Qt4支持幾乎所有主流數據庫。在配置Qt時,選擇將SQLite驅動內置于Qt中或者編譯成插件。在使用QtSql模塊時,需要對工程進行配置:在頭文件中加入語句#include;在工程的.pro文件中加入Qt+=sql。經配置后,在Qt應用程序中就可以連接并使用SQLite數據庫了。在Qt中建立數據庫連接的方法是:
  QSqlDatabase db=QSqldatabase::addDatabase('QSQ-LITE');
  根據本系統的要求,要監控8個通道的溫度數據,能根據這些數據繪制歷史曲線,所以數據庫要包含一個時間字段和八個溫度值字段,同時還要一個數值字段和一個控制字字段用于與遠程PC的通信,在Qt程序中可以使用如下語句建立數據庫:
  QSqlQuery? q;
  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)');
  建立數據庫后,就可以使用INSERT、DELETE等SQL語句對數據庫進行插入、刪除等操作了。
3? 運行實例
  根據上文所提出的技術方案和Qt/E程序設計思想,在S3C2410ARM處理器上完成了系統的開發,系統運行界面截圖如圖4所示。


??? 選則好通道和時間區間,可以查看各通道不同時間段內的歷史曲線圖,如圖5所示。


  在開發板上運行Boa服務器,設置開發板ip為192.168.1.100,在遠程PC上打開瀏覽器,輸入“http://192.168.1.100/cgi-bin/temperature”,則可在瀏覽器上監控系統運行,如圖6所示。

?


  根據燃料電池開發過程中對溫度監控的需要設計了實時監控系統及GUI界面,本文詳細介紹了整個系統的結構及系統各部分的開發流程,基于Qt/E類庫,設計了監控系統的GUI及程序結構。實際運行結果表明,所提出的設計方法能夠滿足應用的需要。
??? 本設計與初步應用表明,采用Qt/Embedded作為開發圖形界面工具,利用其結構清晰的特點和跨平臺性,能有效縮短項目的開發周期,提高程序代碼的重用率,是開發嵌入式系統GUI界面的有效工具。


參考文獻
[1] 孫佳,郭樺,陳士忠,等.溫度對PEM燃料電池性能的影響[J].沈陽建筑大學學報(自然科學版),2006(03).
[2] 任善全,呂強,錢培德,等.一個基于Qt/Embedded的嵌入式linux應用程序的實現.計算機應用與軟件,2006,2(23).
[3] BLANCHETTE G,SUMMERFIELD M.C++ GUI Qt3編程[M].北京:北京航空航天大學出版社,2006.
[4] 陸永健,王萍,吳佳,等.嵌入式Web服務器Boa的移植及其應用[J].河海大學常州分校學報,2005(04).
[5] 蔡志明,盧傳富,李立夏.精通Qt4編程[M].北京:電子工業出版社,2008.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品久久久久婷婷884| 亚洲欧美日韩另类精品一区二区三区| 国产精品国码视频| 欧美激情欧美狂野欧美精品| 久久综合色婷婷| 久久久久九九九九| 欧美在线视频一区二区三区| 亚洲欧美第一页| 亚洲在线免费| 午夜精品久久久久久久久| 亚洲自拍高清| 午夜精品国产精品大乳美女| 亚洲自拍偷拍一区| 欧美亚洲综合另类| 久久成人资源| 久久精品毛片| 久久精品一区二区三区中文字幕| 久久精品国产一区二区三区| 久久精品五月| 久久久亚洲精品一区二区三区| 久久精品中文字幕免费mv| 久久免费国产精品| 免费成人av在线看| 欧美日本国产精品| 欧美性大战久久久久| 国产精品久久久久一区二区三区共| 国产精品av免费在线观看| 国产精品日本精品| 国产一区二区三区丝袜| 精品成人一区| 亚洲福利专区| 日韩一区二区精品葵司在线| 亚洲视频在线观看三级| 亚洲欧美激情四射在线日| 亚欧成人精品| 亚洲激情小视频| 中文欧美在线视频| 欧美一区二区三区视频免费播放| 久久久av网站| 欧美精品videossex性护士| 欧美日韩三区四区| 国产日产欧美一区| 亚洲第一在线| 亚洲天堂网站在线观看视频| 午夜一区不卡| 亚洲毛片播放| 午夜精品国产更新| 久久躁日日躁aaaaxxxx| 欧美女人交a| 国产精品一区2区| 亚洲福利专区| 亚洲一区在线观看免费观看电影高清| 欧美一区1区三区3区公司| 亚洲欧洲在线看| 亚洲欧美日韩精品综合在线观看| 久久久噜噜噜久久人人看| 欧美精品18videos性欧美| 国产精品女同互慰在线看| 红桃视频国产一区| 亚洲精品系列| 欧美在线视频一区二区三区| 99视频精品全部免费在线| 午夜欧美精品久久久久久久| 免费观看日韩av| 国产精品捆绑调教| 亚洲高清一区二区三区| 亚洲综合国产激情另类一区| 亚洲精品一区二| 久久精品国产一区二区电影| 欧美日韩午夜视频在线观看| 国产午夜精品全部视频播放| 亚洲美女区一区| 久久精品青青大伊人av| 亚洲视频中文字幕| 免费成人高清视频| 国产精品一区二区男女羞羞无遮挡 | 中文一区字幕| 最新国产拍偷乱拍精品| 亚洲欧美在线观看| 欧美激情一区二区三区蜜桃视频| 国产欧美在线播放| 99精品欧美一区二区蜜桃免费| 久久高清国产| 性色av一区二区三区红粉影视| 欧美国产三区| 狠狠色丁香久久婷婷综合丁香| 一区二区久久| 亚洲精品视频在线观看免费| 久久精品女人天堂| 国产精品久久中文| 亚洲七七久久综合桃花剧情介绍| 久久av免费一区| 午夜精品免费视频| 欧美剧在线免费观看网站| 一区二区三区在线免费观看| 亚洲一区二区在线看| 亚洲作爱视频| 欧美经典一区二区三区| 在线不卡中文字幕| 久久精品国产一区二区电影| 欧美一区二区三区在线播放| 欧美性大战久久久久久久蜜臀| 亚洲福利视频网站| 久久精品二区三区| 久久精品国产一区二区三区| 国产精品乱码一区二区三区| 夜夜嗨网站十八久久| 日韩一级成人av| 欧美福利一区二区| 亚洲电影在线看| 亚洲激情偷拍| 免费视频最近日韩| 激情另类综合| 亚洲第一综合天堂另类专| 久久久久久久999精品视频| 国产精品素人视频| 亚洲午夜未删减在线观看| 亚洲一区二区三区午夜| 欧美视频在线视频| 在线一区视频| 亚洲欧美日韩精品久久久| 国产精品福利av| 在线亚洲免费视频| 亚洲专区在线| 国产精品久久久久影院亚瑟| 亚洲午夜91| 先锋影院在线亚洲| 国产色视频一区| 久久99在线观看| 欧美aa国产视频| 亚洲精品一区二区三区av| 一本色道久久88亚洲综合88| 欧美日本在线看| 99re国产精品| 亚洲欧美日韩另类| 国产日韩欧美三区| 久久精品国产精品亚洲| 裸体素人女欧美日韩| 亚洲国产成人在线| 中文亚洲免费| 国产乱码精品1区2区3区| 欧美亚洲在线| 久热精品视频在线观看一区| 91久久在线播放| 亚洲一区二区精品视频| 国产精品午夜av在线| 久久er99精品| 欧美电影在线| 亚洲午夜精品久久| 久久精品二区亚洲w码| 亚洲丶国产丶欧美一区二区三区| 亚洲理论电影网| 国产精品国产三级国产专播精品人| 亚洲欧美日韩在线播放| 久久综合久色欧美综合狠狠| 亚洲三级性片| 亚洲欧美日韩一区二区三区在线观看| 国产日韩欧美在线观看| 91久久夜色精品国产九色| 欧美日韩精品欧美日韩精品一| 亚洲深夜激情| 久久一区亚洲| 一本色道久久| 久久国产黑丝| 亚洲精品久久久久久久久久久久| 亚洲欧美日韩一区在线观看| 国内精品久久久久久| 99re成人精品视频| 国产欧美日韩一区| 亚洲美女电影在线| 国产色综合网| 中文精品视频| 激情五月综合色婷婷一区二区| 一区二区日韩精品| 国内伊人久久久久久网站视频| 99视频日韩| 国产一区二区久久| 亚洲深夜激情| 国产亚洲免费的视频看| 一本久道久久久| 红桃视频国产精品| 亚洲欧美日韩精品久久亚洲区 | 亚洲精品免费在线播放| 欧美在线观看视频一区二区三区| 亚洲国产精品一区二区第四页av | 久久久一区二区| 一区二区三区视频免费在线观看| 久久久亚洲高清| 亚洲午夜高清视频| 女生裸体视频一区二区三区| 亚洲一区二区三区视频播放| 欧美成人亚洲成人| 午夜精品视频在线观看| 欧美久久综合| 亚洲国产精品一区二区第一页 | 久久蜜桃资源一区二区老牛 | 亚洲欧美99| 欧美三级黄美女| 亚洲精品免费在线观看| 国产日韩欧美一区二区三区在线观看 |