999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SMT車間溫濕度分布式遠程監控系統的設計

2013-08-10 10:21:44鮑玉琦姜文剛
電子設計工程 2013年6期
關鍵詞:嵌入式界面程序

鮑玉琦,姜文剛

(江蘇科技大學 江蘇 鎮江 212003)

隨著SMT生產工藝技術的提高,生產車間對環境的溫濕度提出了溫度25±3℃,濕度45%RH~65%RH的要求。為了達到這樣的溫濕度要求,就不僅需要提高溫濕度傳感器的精度,而且要求現場的管理人員能夠實時的查看現場的環境數據,同時要求遠程的上級管理人員能夠查詢和管理各個監測點的溫濕度數據。

為了解決現場溫濕度實時顯示的問題,張晨昊等人在基于485總線的數字化溫濕度測控系統的設計一文中,提出為485溫濕度變送器擴展LCD顯示模塊來實現溫濕度實時顯示的方案[1]。這種獨立實時顯示方案需要為每個監測節點配置LCD模塊,存在成本投入高、不方便實時查看的缺點。文中針對這一缺點,提出了利用QT技術實現現場溫濕度集中實時顯示的方案,這個方案只需一個LCD模塊即可實現各監測點溫濕度實時查看,不僅成本低,而且方便管理。為了解決溫濕度的遠程管理問題,肖鴻威在基于modbus協議的空間分布式溫濕度測控系統設計一文中,提出了采用工控機和SQL server的方案來實現溫濕度的遠程采集和管理,這種方案需要配置高性能的工業PC,成本昂貴[2]。針對這一不足,本文提出了采用嵌入式ARM平臺和SQLITE數據庫方案,這種方案不僅成本低,而且設備小巧,安裝維護靈活方便。

根據SMT車間溫濕度數據采集、監控的要求,本文設計了基于SQLITE數據庫的分布式溫濕度遠程監控系統。本系統充分利用了QT技術和SQLITE數據庫的優點,搭建基于ARM微處理器和Linux操作系統的嵌入式Web服務器,從而實現現場數據的集中實時顯示和遠程管理。

1 系統的硬件平臺和軟件平臺

本系統以嵌入式Linux系統為核心,包括硬件平臺和軟件平臺。首先在以S3C2440微處理器為核心的硬件平臺上搭建嵌入式Linux環境,然后在Linux環境下移植Qtopia、SQLITE數據庫和Boa服務器,最后通過Qtopia開發環境完成QT實時顯示界面的設計,利用CGI技術實現Web服務器對SQLITE數據庫的遠程數據查詢。并且通過485總線搭建溫濕度的底層采集網絡。系統的平臺示意圖如圖1所示。

圖1 系統平臺示意圖Fig.1 Schematic diagram of system platform

1.1 系統的硬件平臺

傳統的以單片機為核心的分散式儀表監控模式,顯然已經不能滿足當前監控系統對遠程訪問和集中管理的要求。采用主機-終端的監控模式,雖然能夠對現場的溫濕度進行實時管理,但是這種監控模式布線相對復雜,傳輸的距離受到限制,很難對不同地點的溫濕度進行監控[2]。

為了對不同地點的溫濕度進行實時的遠程管理,需要搭建一個基于以太網的分布式監控系統。基于以太網的監控系統可以采用PC、PLC或者ARM為核心,采用PLC為核心的以太網監控系統通常需要配備以太網模塊,采用PC為核心的監控系統通常需要配置高性能的工業PC,這樣與以ARM為核心的監控系統相比,價格要昂貴的多。因此,本文采用以ARM為核心的以太網溫濕度遠程監控系統。

1.2 系統的軟件平臺

本系統的軟件平臺主要包括宿主機和目標機。宿主機是VMware8.0虛擬機下Fedora9.0的Linux操作系統+PC機,目標機為ARM9電路板。其中在宿主機上需要完成Bootloader的編譯,裁剪內核,制作內核映像文件和根文件系統映像文件,然后將其下載到ARM板的Flash,從而完成嵌入式Linux操作系統的搭建。

本系統的軟件設計是建立在已搭建好的嵌入式Linux操作系統的基礎上。要設計QT實時顯示界面需要在宿主機上搭建起QT開發環境,需要在ARM板上通過移植Qtopia-2.2.0搭建起QT運行環境,最后將在宿主機編譯的執行文件下載到ARM板上。要實現采集數據的遠程web查詢,需要在ARM板上移植SQLITE數據庫和Boa服務器,然后通過CGI程序實現對SQLITE數據庫的訪問。

2 QT實時顯示界面的設計

Qtopia是一個基于Qte的類似桌面系統的應用環境,它能夠為基于嵌入式Linux的消費電子產品提供和創建圖形用戶界面,使用Qtopia開發的應用程序界面清晰美觀、操作方便,多用于PDA產品的界面開發中。

2.1 QT開發環境和運行環境的建立

QT開發是在宿主機上完成,而QT程序的運行是在ARM板上完成的,因為宿主機是X86體系,而ARM板一般是ARM體系,所以必須在宿主機上既要搭建適合X86的開發環境,又要搭建適合ARM體系的開發環境。本系統通過編譯 X86版本的 Qtopia-2.2.0和 ARM 版本的 Qtopia-2.2.0恰當的實現了QT開發環境的搭建。

QT程序的運行環境是在ARM板上,因此需要將Qtopia移植到ARM板上,即將Qtopia添加到文件系統中,為了讓Qtopia能夠在ARM板上運行起來,需要制作一個Qtopia運行腳本,然后將其權限設置為可執行文件,同時修改文件系統的“etc/init.d/rc.S”文件,在其中添加“qtopia&”的語句。

2.2 QT界面程序的設計

在QT的程序設計中會用到信號和槽,信號和槽是QT用于對象間通訊的一種機制,它是QT的中心特征,也是QT與其他工具包最不同的部分。而且信號和槽的機制是安全的:一個信號的簽名必須與它的接收槽的簽名相匹配。因此,信號和槽的機制可以保證一旦一個信號和一個槽連接起來,槽會在正確的時間使用信號的參數而被調用。

在本系統的QT程序中,使用主函數調用初始化函數,進行硬件的初始化,并打開傳感器設備;然后調用讀取函數,讀一次底層數據后發送一個信號,在QT程序中該信號連接一個槽,每發送一個信號,就會執行一次數據的顯示[5]。程序流程如圖2所示。

圖2 QT程序流程圖Fig.2 Flow chart of QT program

本系統中實現QT界面實時顯示的兩個重要函數:

信號和槽的連接是通過連接語句實現的。下面介紹QT程序中用到的2個connect語句:

connect (ok,SIGNAL ( clicked ()), this, SLOT (wenshidu_ok()

));//當按下ok按鈕時,將執行wenshidu_ok槽,即執行wenshidu_ok()函數。

connect( Slider1,SIGNAL ( valueChanged (int)), this,SLOT

(wenshidu_temperature()));//valueChanged信號發射時,將執行wenshidu_ok槽,即數據顯示。

因此,當按下ok后,界面中將有數據顯示。

2.3 交叉編譯QT程序及實際運行結果

在編譯好的ARM版本的Qtopia-2.2.0開發環境下,利用progen工具生成.pro文件,命令行為progen–o xianshi.pro;利用tmake工具生成Makefile文件,命令行為tmake–o Makefile xianshi.pro。然后通過make命令生成可執行文件,并將生成的執行文件xianshi下載到ARM板的/opt/Qtopia/bin/目錄下,將桌面圖標文件xianshi.png下載到ARM板的/opt/Qtopia/pics/目錄下,將桌面啟動器文件xianshi.desktop下載到ARM板的/opt/Qtopia/Apps/Applications/目錄下。最后重啟ARM板,在觸摸屏上點擊xiansh test文件圖標,打開QT界面,再點擊Initialization按鈕和Ok按鈕即可得到相關測試數據。最終的運行結果如圖3所示。

圖3 系統溫濕度實時顯示界面Fig.3 Display interface of real-time temperature and humidity system

該運行結果充分證明了QT程序已成功在ARM板上運行。將QT程序設置為每1秒刷新一次溫濕度數據,讓ARM板長時間運行,QT界面的溫濕度顯示仍然保持流暢,因此,說明該設計滿足實時顯示的要求。

3 CGI訪問SQLITE數據庫的實現

嵌入式系統在數據的采集和處理過程中有大量的動態數據,而對數據的存取主要有兩種方式:一種是基于文件的方式,一種是基于數據庫的方式。對于文件方式,應用程序通常獨占數據文件的讀寫操作,數據共享性差;對于數據庫方式,數據和應用程序相互獨立,通過事務進行調度和并發控制,可有效的實現對數據進行存取、查詢等共享操作,并且運行時需要較少的內存[3]。因此,本系統采用了基于SQLITE數據庫的方式。

嵌入式web服務器對SQLITE數據庫的訪問是通過CGI技術實現的。本系統在宿主機上通過編譯SQLITE數據庫工具包搭建起SQLITE數據庫開發環境,在ARM板上通過移植Boa服務器和SQLITE數據庫搭建起CGI程序運行環境,然后在宿主機環境下編譯CGI程序并將生成的執行文件下載到ARM板相關目錄下,從而實現CGI對SQLITE數據庫的訪問。圖4為嵌入式Web服務器對SQLITE數據庫進行訪問的結構圖。

圖4 嵌入式Web服務器訪問SQLITE數據庫的結構框圖Fig.4 Block diagram of embedded Web server accessing SQLITE database

3.1 CGI對嵌入式Boa服務器的訪問

CGI(Common Gateway Interface)是一個 web 服務器與外部應用程序交互的標準接口,它允許將其輸出結果經web服務器傳送給web瀏覽器。web服務器將web瀏覽器發來的消息,傳遞給CGI程序,由CGI程序進行處理,處理完成后把響應的結果再回送給web服務器,web服務器再把消息發送給web瀏覽器[4]。CGI程序可以用多種語言來實現,如Perl、C、Unix shell等,由于C語言有較強的平臺無關性,占用的資源少,效率高,本系統選取C語言來編寫CGI程序。

CGI程序有GET和POST兩種提交數據的方法。其中,GET方式提交數據,是將數據保存在QUERY_STRING環境變量中,通過調用函數 getenv(“QUERY_STRING”)來讀取數據;POST方式提交數據,則程序先從CONTENT-LENGTH環境變量中得到數據的字長,然后從標準輸入中讀取相應長度的字符串[7]。一般,如果只是為取得和顯示數據多采用GET方式提交數據,一旦涉及數據的保存和更新,多采用POST的方式提交數據,本系統采用的是GET方式來提交數據。

CGI是建立在Boa服務器的基礎上的,關于Boa服務器的移植在此不再贅述。

3.2 嵌入式SQLITE數據庫的實現

3.2.1 嵌入式SQLITE數據庫簡介

SQLITE是D.Richard Hipp開發的開源性嵌入式數據庫引擎,全部源代碼大約3萬行左右,編譯后的程序大小250 kB,甚至可以縮小至150 kB左右。它具有體積小、數據容量大、處理速度快、占用內存少的特點。并且它用一個小型的C庫來實現嵌入式關系數據庫管理體制,提供了對SQL92的大多數支持[6],包括:多表和索引、事務、視圖、觸發和一系列的用戶驅動及其接口。

3.2.2 SQLITE常用的API函數

1)打 開 數 據 庫 :int sqlite3_open(const char*filename,SQLITE3**db);//*filename是數據庫的文件名,**db是數據庫句柄。

2) 運行函數:int sqlite3_exec (sqlite3*,const char**sql,sqlite3_callback,void*,char**errmsg); callback 是回調函數,用戶可以根據需要自己編寫callback函數獲得操作數據庫的結果。

3)查詢數據:int sqlite3_get_table(sqlite3*,const char*sql,char***result,int*nrow,int*ncolumn,char**errmsg);//參數result以數組的形式存放查詢的數據,參數nrow和ncolumn分別為查詢語句返回的結果集的行數和列數。

4)關閉數據庫:int sqlite3_close(sqlite3*)。

3.2.3 嵌入式SQLITE數據庫在ARM-LINUX上的移植

本系統是將嵌入式SQLITE數據庫應用到S3C2440+Linux環境中,首先需要在宿主機的交叉編譯環境下,編譯生成SQLITE的可執行文件,然后將其下載到ARM板的相關目錄下。移植SQLITE的主要步驟如下:

1)解壓 sqlite-3.5.6.tar.gz工具包,命令為 tar-zxvf sqlite-3.5.6.tar.gz;

2)解壓完成之后進入sqlite-3.5.6目錄下新建一個文件夾build。

3)進入 build文件夾,執行./configure--host=arm-linuxprefix=/opt/sqlite-3.5.6/build,其中host是指定進行編譯的交叉編譯器,prefix是編譯后目標存放的路徑。

4)執行 make和 make install命令,在新建的 build目錄下生成 bin、lib、include、share 4 個文件夾。

5)將build/bin目錄下的文件拷貝到ARM板的/usr/bin中,將build/lib目錄下的文件拷貝到ARM板的lib文件夾下。

6)修改ARM板/usr/bin/sqlite3的權限,命令為chmod 755 sqlite3。

完成上述6步后,可以在ARM板的終端輸入:sqlite3 test.db來驗證SQLITE數據庫是否移植成功。

3.3 嵌入式Web服務器對SQLITE數據庫的遠程查詢

要實現嵌入式Web服務器對SQLITE數據庫的遠程數據查詢,需要實現數據的查詢和網頁顯示。針對生產車間溫濕度數據的當前值、最大值和最小值,本系統設計了對最近五次的溫濕度和所有溫濕度的最大值、最小值進行查詢的CGI程序。 在 CGI程序中,利用 sqlite3_get_table(db,“select max (temperature)from dht11;”,&result,&nrow,&ncolumn,&errmsg)來實現對溫度數據最大值的查詢,其它數據的查詢類似。要實現溫濕度的網頁顯示需要在CGI程序中指定輸出一 個 文 本 的 html網 頁 , 通 過 printf (“Content-type:text/html ”)程序語句即可實現[7]。

編寫好的CGI程序需要在特定的交叉編譯環境下才能編譯成功。這里使用arm-linux-gcc–I/opt/build/include–L/opt/build/lib–o main.cgi main.c–lsqlite3編譯生成main.cgi(其中-I和-L后面指定的是頭文件和鏈接文件),然后將其下載到ARM板的www目錄下,并將該文件設置為可執行文件權限。最后在客戶端的IE瀏覽器上輸入http://192.168.58.230/main.html即可進入溫濕度實時查詢界面,其中下圖5顯示的是溫濕度的歷史數據頁面。

圖5 系統溫濕度的歷史數據頁面Fig.5 Page of historical data for temperature and humidity system

該運行結果說明Boa服務器和SQLITE數據庫已成功移植到了設計的ARM電路板上,并且編寫的CGI程序完成了對SQLITE數據庫的遠程訪問功能。經多次實驗運行,本系統的嵌入式web服務器工作穩定,執行速度快并且安全、可靠。

4 結束語

文中設計了基于SQLITE數據庫的嵌入式Web服務器,引入QT技術來設計溫濕度實時顯示界面,利用SQLITE數據庫和Boa服務器實現溫濕度的遠程管理。本系統是嵌入式技術在溫濕度監控系統方面的成功運用,并且該系統經多次實驗測試穩定可靠,可應用到其他相關領域,為實現現場數據的集中實時顯示和遠程數據訪問提供了一種切實可行的方案。

[1]張晨昊,吳桂清,戴喻興.基于485總線的數字化溫濕度測控系統的設計[J].科學技術與工程,2007,7(11):2656-2658.ZHANG Chen-hao,WU Gui-qing,DAI Yu-xing.Design of digitized temperature and humidity measurement and control system based on 485 bus[J].Science Technology and Engineering,2007,7(11):2656-2658.

[2]肖鴻威.基于modbus協議的空間分布式溫濕度測控系統設計[J].電子元器件應用,2009,11(9):40~41.XIAO Hong-wei.Design of spatially distributed temperature and humidity monitoring and control system based on the modbus protocol[J].Application of Electronic Components,2009,11(9):40-41.

[3]孟旭霞,譚少華,唐漢雄,等.嵌入式Web Server中SQLITE訪問技術的研究[J].微計算機信息:管控一體化,2008,24(8):95-97.MENG Xu-xia,TAN Shao-hua,TANG Han-xiong,etal.Research of SQLITE access technology of embedded Web server[J].The Microcomputer:Managementand Control Integration,2008,24(8):95-97.

[4]楊建華,黃宇東,陳安,等.基于ARM/Linux的燃料電池溫度監控系統GUI設計[J].信息化縱橫,2009,28(9):13-15.YANG Jian-hua,HUANG Yu-dong,CHEN An,et al.Design of fuel cell temperature monitoring system GUI based on ARM/Linux[J].Aspect of Information Technology,2009,28(9):13-15.

[5]劉偉明,韓斌,李征.基于Linux的數據采集及在QT界面的顯示[J].微計算機信息:測控自動化,2008,24(8):97-99.LIU Wei-ming,HAN Bin,LI Zheng.Data acquisition and QT interfacediaplaybasedonLinux[J].MicrocomputerInformation:Automatic Measurement and Control,2008,24(8):97-99.

[6]李桂香,常赟杰.SQLITE在嵌入式Web Server中的應用研究[J].計算機時代,2010,3(5):23-24.LIGui-xiang,CHANG Yun-jie.Application research of embedded Web server for SQLITE[J].The Computer Age,2010,3(5):23-24.

[7]廖臨光.基于嵌入式web服務器遠程溫度監測系統設計與實現[D].蘭州:西北民族大學,2010.

猜你喜歡
嵌入式界面程序
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
搭建基于Qt的嵌入式開發平臺
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
人機交互界面發展趨勢研究
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 午夜色综合| 国产欧美另类| 亚洲天堂.com| 国产激爽大片在线播放| 九九久久精品免费观看| 日本高清视频在线www色| 国产精品无码在线看| 欧美第一页在线| 亚洲码一区二区三区| 国产精品成人免费视频99| 国产成人区在线观看视频| 精品国产免费第一区二区三区日韩| 欧美国产在线看| 国产精品视频免费网站| 免费又黄又爽又猛大片午夜| 国产免费久久精品99re不卡 | 国产精品三级专区| 国产99热| 亚洲人成网站色7777| 国产一区在线视频观看| 婷五月综合| 亚洲天堂2014| 亚洲精品无码抽插日韩| 国产十八禁在线观看免费| 婷婷伊人久久| 久青草网站| 中文字幕天无码久久精品视频免费| 国产精品漂亮美女在线观看| 亚洲精品图区| 亚洲欧美成人在线视频| 亚洲欧洲日韩久久狠狠爱| 毛片免费高清免费| 亚洲综合专区| 一本久道久久综合多人| 久久激情影院| 午夜在线不卡| 91无码人妻精品一区| 欧美激情伊人| 5555国产在线观看| 女人18一级毛片免费观看| 日韩欧美中文字幕在线韩免费| 最新国产午夜精品视频成人| 国产亚洲精品自在久久不卡| 欧美区在线播放| 91福利在线观看视频| 一级高清毛片免费a级高清毛片| 久久这里只有精品免费| 国产精品一区在线麻豆| 亚洲高清在线播放| 亚洲无线观看| 久久99国产精品成人欧美| 热思思久久免费视频| 国产成人AV综合久久| 伊人国产无码高清视频| 一区二区三区毛片无码| 亚洲福利片无码最新在线播放| 国产精品无码作爱| 日韩久草视频| www欧美在线观看| 极品国产在线| 亚洲人成网站在线观看播放不卡| 国产91在线|日本| 综合色区亚洲熟妇在线| 欧美一区二区三区欧美日韩亚洲| 亚洲区欧美区| 国产欧美日韩另类精彩视频| 欧美视频在线不卡| 久精品色妇丰满人妻| 亚洲日韩第九十九页| 国产又爽又黄无遮挡免费观看| 亚洲欧美成人综合| 亚洲一道AV无码午夜福利| 女人18一级毛片免费观看| 亚洲首页在线观看| 91无码人妻精品一区二区蜜桃 | 国产精品久久久免费视频| 黄色三级毛片网站| 国产亚洲精品无码专| 日韩欧美高清视频| 国产日韩久久久久无码精品| 亚洲天堂成人在线观看| 久久夜夜视频|