張婧婧,陳寧(新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,烏魯木齊 830052)
環(huán)境監(jiān)測系統(tǒng)的可視化設(shè)計與實現(xiàn)
張婧婧,陳寧
(新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,烏魯木齊830052)
可視化技術(shù)以其直觀性、交互性的優(yōu)勢受到各類環(huán)境監(jiān)測系統(tǒng)的“青睞”。目前,以溫、濕度為主要環(huán)境指標(biāo)的監(jiān)測系統(tǒng)設(shè)計中,鑒于基本功能和硬件成本的因素,開發(fā)者通常選用單片機或嵌入式開發(fā)平臺完成數(shù)據(jù)采集終端的設(shè)計[1];數(shù)據(jù)的監(jiān)測及終端的顯示則以圖形、圖像表示為主,其中VC++、VB等集成開發(fā)環(huán)境仍為此類開發(fā)設(shè)計者的首選[2];在用戶端則選用小型數(shù)據(jù)庫Access即可滿足數(shù)據(jù)存儲的要求。文中筆者以單片機為采集控制核心,以AMS2320為采集設(shè)備,結(jié)合上位機VC 6.0的集成開發(fā)平臺及Access數(shù)據(jù)庫的存儲功能,設(shè)計并實現(xiàn)了可視化環(huán)境監(jiān)測系統(tǒng)。本系統(tǒng)設(shè)計中均采用成熟的軟、硬技術(shù),對低成本、高穩(wěn)定性的可視化產(chǎn)品的開發(fā)具有借鑒、指導(dǎo)意義。
就系統(tǒng)的整體設(shè)計而言,其開發(fā)過程可分為采集、傳輸、存儲、顯示四個階段,相應(yīng)的模塊設(shè)計如圖1所示。
由圖1不難看出,系統(tǒng)的硬件設(shè)計相對容易,旨在完成數(shù)據(jù)采集終端的硬件功能;系統(tǒng)的軟件開發(fā)工作量則較大,主要包括數(shù)據(jù)采集終端的程控設(shè)計和上位機的數(shù)據(jù)通訊、數(shù)據(jù)庫訪問、圖形監(jiān)測界面的開發(fā)等方面。
圖1 環(huán)境監(jiān)測系統(tǒng)的模塊劃分
作為系統(tǒng)硬件的主要組成部分,采集終端肩負著數(shù)據(jù)的采集、傳送并與監(jiān)測界面實時匹配等任務(wù)。設(shè)計中選用AMS2320傳感器采集環(huán)境參數(shù),以AT89C51單片機為控制核心,于液晶屏1602中實時顯示溫、濕度數(shù)據(jù),并通過設(shè)定其閾值及聲光報警電路與圖形界面相互對應(yīng),旨在實現(xiàn)基于單片機的數(shù)據(jù)采集控制部分[3-4],其硬件結(jié)構(gòu)如圖2所示。
利用AMS2320溫、濕度傳感器,系統(tǒng)在采集終端首先獲得了溫度精度為±0.1℃,濕度精度為±0.1%的實時環(huán)境數(shù)據(jù),并將其通過串口傳送至上位機。
圖2 采集終端的硬件結(jié)構(gòu)
3.1數(shù)據(jù)采集終端的程序控制
如圖3所示,數(shù)據(jù)采集終端的程序控制始于各類硬件的初始化,包括液晶、AMS2320及T1定時器的初始化程序;隨后分別進入按鍵掃描模塊,數(shù)據(jù)采集模塊,液晶顯示模塊,聲光報警模塊及串行數(shù)據(jù)發(fā)送模塊,最終將溫、濕度數(shù)據(jù)以字節(jié)形式發(fā)送至串口。發(fā)送數(shù)據(jù)的格式如下:
FF 0A 02 03 01,其中,F(xiàn)F 0A為幀頭,表示溫度值,02 03 01表示溫度為23.1。
FF 0B 02 03 01,其中,F(xiàn)F 0B為幀頭,表示濕度值,02 03 01表示濕度為23.1%。
圖3 數(shù)據(jù)采集終端的主程序設(shè)計流程
3.2系統(tǒng)的終端顯示方案
系統(tǒng)顯示界面的設(shè)計基于VC 6.0的開發(fā)環(huán)境,應(yīng)用MFC(微軟基礎(chǔ)類庫)進行開發(fā)[5-6]。由于MFC框架定義了應(yīng)用程序的輪廓,在此基礎(chǔ)上,系統(tǒng)開發(fā)中將串行通信、數(shù)據(jù)庫的訪問、圖形圖表的顯示等應(yīng)用程序納入框架即可完成溫、濕度數(shù)據(jù)的圖形輸出。
3.3數(shù)據(jù)串行通信及協(xié)議
在系統(tǒng)采集終端正常工作的前提下,單片機通過調(diào)用sendone(uchar x)函數(shù)將溫、濕度數(shù)據(jù)以一次40bit 且10幀為一個周期的形式不斷進行發(fā)送,如發(fā)送溫度數(shù)據(jù):ff 0a t2 t1 t0等。
根據(jù)單片機的發(fā)送協(xié)議,顯示終端需進行相應(yīng)的接收。在VC 6.0的集成環(huán)境下,系統(tǒng)采用CreateFile Windows API函數(shù)打開串口,調(diào)用ReadFile Windows API函數(shù)對相應(yīng)數(shù)據(jù)進行采集。值得注意的是,采集的數(shù)據(jù)是以字符串的形式送入,因此還需進一步轉(zhuǎn)換,如每次以10個字符串進行分離、轉(zhuǎn)換,用于數(shù)據(jù)的最終輸出。
3.4數(shù)據(jù)庫的訪問
VC 6.0中對數(shù)據(jù)庫的訪問技術(shù)包括ODBC API、MFC ODBC和ADO[7]等,本系統(tǒng)采用ADO模型。其中包括3個主體對象,即Connection、Command和Recordset對象,三者均可被獨立地創(chuàng)建和釋放;另外還包括4個集合對象,即Errors、Parameters、Properties和Fields。部分核心代碼包括:
此外,系統(tǒng)設(shè)計中還封裝了CAdoLx類用于建立數(shù)據(jù)庫與圖形界面的動態(tài)鏈接。
3.5數(shù)據(jù)庫的圖形化處理
VC 6.0中,CDC(設(shè)備環(huán)境)類封裝了圖形繪制所需的各類操作[8]。該類直接繼承于Cobject類,能夠定義不同設(shè)備對象。在設(shè)計圖形界面時,筆者通過繼承CFrameWnd類,創(chuàng)建一個CChartFrame類,在此窗口類中直接為CDC類所創(chuàng)建的對象繪制條形框圖,即產(chǎn)生了監(jiān)測界面中動態(tài)顯示的溫、濕度數(shù)據(jù)圖形,其部分代碼包括:
此外,界面設(shè)計中筆者還結(jié)合 ComApp類與CFrameWnd類創(chuàng)建了一個單文檔界面,利用CLoginDlg類創(chuàng)建對話框,通過CMainView類創(chuàng)建列表視圖以增強系統(tǒng)的直觀、交互性。
在系統(tǒng)功能模塊逐一完善之后,應(yīng)用數(shù)據(jù)采集裝置,筆者進行了系統(tǒng)的上位機測試與運行。在上限為30000條記錄的Access數(shù)據(jù)庫中,通過COM3串行口,系統(tǒng)完成了環(huán)境監(jiān)測的圖形化顯示,其運行結(jié)果如圖4 (a)、(b)所示:
如圖4所示,在系統(tǒng)測試中,數(shù)據(jù)采集裝置以1Hz的采集頻率與監(jiān)測界面進行動態(tài)鏈接,完成本系統(tǒng)的可視化輸出。而系統(tǒng)運行的不足之處在于,硬件顯示終端與圖形界面輸出的數(shù)據(jù)間仍有500ms左右延時。
借助VC 6.0的開發(fā)平臺,環(huán)境監(jiān)測系統(tǒng)的可視化功能基本完成。與大型環(huán)境監(jiān)測系統(tǒng)相比,本系統(tǒng)的設(shè)計功能略顯單薄。但對于低成本和高效率的可視化產(chǎn)品開發(fā)而言,系統(tǒng)對圖形界面的運行要求樸素,且將采集裝置的成本降至最低,在此意義上,本系統(tǒng)的可視化過程更具指導(dǎo)意義。
圖4?。╞)系統(tǒng)的可視化界面與硬件終端的對應(yīng)顯示
[1]王簃,周杰.基于GSM遠程溫室環(huán)境監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn)[J].現(xiàn)代電子技術(shù),2008(22):151-154.
[2]李丹妮,劉金輝,姜應(yīng)戰(zhàn).基于Visual C++的數(shù)據(jù)采集與處理軟件設(shè)計與實現(xiàn)[J].微計算機信息,2007(22):117-119.
[3]梅榮.基于單片機的溫濕度檢測與控制系統(tǒng)研究[J].農(nóng)機化研究,2012(1):131-134.
[4]朱高中.基于單片機的糧倉溫濕度遠程監(jiān)控系統(tǒng)的設(shè)計[J].湖北農(nóng)業(yè)科學(xué),2013,52(3):677-680.
[5]車忠志,孫雪雁.MFC應(yīng)用程序基本框架分析[J].農(nóng)業(yè)網(wǎng)絡(luò)信息.2010(09):145-147.
[6]索巖,崔紅志.基于MFC的數(shù)據(jù)庫動態(tài)訪問技術(shù)[J].科技信息.2009(31):428-439.
[7]蘇岳龍,李貽斌,宋銳.基于VC++6.0的高速串口通信數(shù)據(jù)采集系統(tǒng)[J].微計算機信息,2005(05):147-148.
[8]陳功,張晞,高喻,顧歆,宋耀民.基于VC++的數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2007(06):114-115.
Environmental Monitoring;Acquisition Terminal;Serial Communication;Database;Visual Interface
Visual Design and Implement of Environmental Monitoring System
ZHANG Jing-jing,CHEN Ning
(College of Computer and Information Engineering,Xinjiang Agricultural University,Urumqi 830052)
1007-1423(2016)18-0075-04
10.3969/j.issn.1007-1423.2016.18.018
張婧婧(1981-),女,湖南寧鄉(xiāng)人,碩士,講師,研究方向為復(fù)雜系統(tǒng)、嵌入式理論與應(yīng)用
2016-04-12
2016-06-15
可視化編程技術(shù)在環(huán)境監(jiān)測系統(tǒng)的開發(fā)中具有顯著優(yōu)勢。以環(huán)境監(jiān)測系統(tǒng)的圖形界面設(shè)計為主旨,通過溫、濕度數(shù)據(jù)的采集、傳輸、存儲、顯示實現(xiàn)數(shù)據(jù)的可視化功能。首先借助單片機開發(fā)平臺采集溫、濕度數(shù)據(jù),其次通過串口將其送至上位機并在VC 6.0集成開發(fā)環(huán)境下完成系統(tǒng)的交互式設(shè)計。最終根據(jù)測試、對比,分析該系統(tǒng)在低成本、高穩(wěn)定性方面具有指導(dǎo)意義。
環(huán)境監(jiān)測;采集終端;串行通信;數(shù)據(jù)庫;可視化界面
Visual programming technology has obvious advantages in the development of environmental monitoring system.As the main idea is to design graphical interface for environmental monitoring system,finds the way that through the temperature and humidity data acquisition,transmission,storage and display to realize the visualization function.At first,the temperature and humidity data are collected by the microcontroller development platform.Then through the serial port,sends the data to the host computer and use VC 6.0 integrated development environment to complete the graphical interface of the system.Finally finds that the system has guiding significance in low cost and high stability.