農(nóng)業(yè)大棚智能檢測環(huán)境系統(tǒng)
摘要:介紹了以STC89C52單片機(jī)為核心的光照和溫度控制系統(tǒng)的工作原理和設(shè)計方法。系統(tǒng)由TSL2561光傳感器和DS18B20溫度傳感器采集數(shù)據(jù)傳輸給控制器,通過外圍設(shè)備LCM12864顯示現(xiàn)場光照度和溫度值,并設(shè)計上位機(jī)程序,通過串口通信實(shí)時獲取光照度和溫度,所采集的數(shù)據(jù)放入到Access數(shù)據(jù)庫當(dāng)中,然后從數(shù)據(jù)庫讀出光照度和溫度的值,通過曲線顯示到PC機(jī)上,進(jìn)行實(shí)時曲線監(jiān)控。同時,系統(tǒng)具有溫度和光強(qiáng)報警功能。
關(guān)鍵詞:STC89C52;VC++;Access;照度和溫度控制系統(tǒng);DS18B20;TSL2561
0 引言
隨著科學(xué)技術(shù)的不斷發(fā)展,人們的生產(chǎn)對周圍環(huán)境的要求也越來越高,比如農(nóng)作物大棚、工廠以及一些大型機(jī)械設(shè)備,都需要實(shí)時掌握工作條件的溫度、光照等。傳統(tǒng)的人工測量方法浪費(fèi)人力物力,效率低,安全性差。隨著單片微型機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)對一些工業(yè)控制系統(tǒng)參數(shù)進(jìn)行檢測和控制。與此同時,PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有簡潔、靈活、快速的控制特點(diǎn)。通過PC機(jī)的RS 232串行接口與外部設(shè)備進(jìn)行通信,是現(xiàn)在測控中常用的一種通信解決方案,所以PC機(jī)與單片機(jī)之間的通信具有非常重要的現(xiàn)實(shí)意義。
1 系統(tǒng)硬件總體設(shè)計
系統(tǒng)總體設(shè)計是基于上位機(jī)利用串口通信與單片機(jī)環(huán)境監(jiān)控系統(tǒng)設(shè)計,由上位機(jī)、通信接口和下位機(jī)三部分組成。微控制器采用STC89 C52;光傳感器采用TSL2561;溫度傳感器采用DALLAS公司生產(chǎn)的DS18B20。單片機(jī)將傳感器采集到的數(shù)據(jù)通過串口通信方式傳輸給PC機(jī),PC機(jī)將獲得的數(shù)據(jù)實(shí)時顯示在監(jiān)控畫面中,同時實(shí)時顯示溫度曲線和光照曲線。系統(tǒng)總體結(jié)構(gòu)如圖1所示。
1.1 控制模塊功能
主控板采用一片STC89C52作為控制器。STC89C52是一個高性能CMOS 8位單片機(jī),片內(nèi)含8 KB可反復(fù)擦寫的FLASH ROM和256 B的RAM。
STC89C52性能優(yōu)越且成本低,非常適合應(yīng)用于本系統(tǒng)。核心控制模塊STC89C52的主要功能是負(fù)責(zé)將傳感器所采集的數(shù)據(jù)進(jìn)行處理,通過RS 232串口通信接口傳輸?shù)缴衔粰C(jī),同時,將數(shù)據(jù)實(shí)時顯示到LCM12864液晶屏上。當(dāng)自動判斷所采集到的數(shù)據(jù)高于設(shè)定數(shù)值時,立即啟動相關(guān)的蜂鳴器,完成報警功能。
1.2 串口通信模塊
該模塊采用RS 232,它是美國電子工業(yè)協(xié)會EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn),采用異步傳輸方式,其特點(diǎn)是使用簡單,價格低廉。它將單片機(jī)采集到的數(shù)據(jù)傳送到上位機(jī)中,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
1.3 光采集模塊
TSL2561是TAOS公司推出的一種高速、低功耗、寬量程、可編程、靈活配置的光強(qiáng)度數(shù)字轉(zhuǎn)換芯片,它是光一數(shù)字轉(zhuǎn)換器,單片機(jī)通過I2C總線從TSL2561內(nèi)部獲得CH0和CH1通道的數(shù)值,通過軟件計算,將所采集到的數(shù)字信號轉(zhuǎn)換為lux的光學(xué)單位,最后將光強(qiáng)轉(zhuǎn)換成數(shù)字信號輸出。光強(qiáng)算法如下:
1.4 溫度采集模塊
DS18B20是數(shù)字溫度傳感器,它提供9位二進(jìn)制溫度讀數(shù),其為單線結(jié)構(gòu),信息經(jīng)由單線接口送入DS18B20或輸出DS18B20。在該設(shè)計中,可以自行設(shè)置高溫警報數(shù)值上限,當(dāng)溫度高于設(shè)定值時,則啟動蜂鳴器,提示采取相應(yīng)的措施。
1.5 顯示模塊
該顯示模塊采用LCM12864液晶顯示,其模塊內(nèi)置字庫,鏈接方便,顯示質(zhì)量高,且成本低。它主要顯示系統(tǒng)光強(qiáng)信息和溫度信息的采集,以及定時器計數(shù)值,以便系統(tǒng)的整體調(diào)試和現(xiàn)場觀看。
1.6 串口軟件模塊
在VC 6.0下,采用其自帶的MSComm控件,可以實(shí)現(xiàn)單片機(jī)與PC機(jī)的串口通信,利用RS 232實(shí)現(xiàn)數(shù)據(jù)的接收。在此,選擇com1口,波特率為9 600 b/s,以二進(jìn)制方式檢取數(shù)據(jù),主要代碼如下:
1.7 數(shù)據(jù)存儲模塊
在完成數(shù)據(jù)接收之后,就要將數(shù)據(jù)存儲到Access數(shù)據(jù)庫中,數(shù)據(jù)庫中的變量與接收的數(shù)據(jù)完全對應(yīng)。在Access 2000中創(chuàng)建數(shù)據(jù)庫bia o.Mdb,添加對ODBC數(shù)據(jù)庫的支持,在項目stdafx.h文件中添#include<afxdb.h>,完成ODBC類的加入。采用ODBC訪問Access 2000數(shù)據(jù)庫,存儲速度快,內(nèi)存消耗少,操作簡單。
1.8 上位機(jī)數(shù)據(jù)讀取和曲線顯示模塊
通過軟件VC 6.0編程,將采集到的數(shù)據(jù)在PC機(jī)上進(jìn)行曲線顯示。本模塊采用VC 6.0自帶的teechart8控件編寫,此控件具有很好的繪制實(shí)時曲線功能,操作簡單。上位機(jī)檢測界面如圖2所示。
2 系統(tǒng)軟件設(shè)計
該設(shè)計中單片機(jī)部分采用模塊化設(shè)計,通過Keil公司開發(fā)的μVision 4編譯器用C語言編寫,主要包括光強(qiáng)采集、溫度采集、液晶顯示,以及串口發(fā)送模塊程序。上位機(jī)部分在VC 6.0環(huán)境下,通過VC++語言進(jìn)行編寫,其中包括串口通信、數(shù)據(jù)庫保存和曲線繪制模塊。上、下位機(jī)主程序流程圖如圖3、圖4所示。
3 結(jié)語
本文基于STC89C52,在VC 6.0的環(huán)境下提供了一種農(nóng)業(yè)大棚光照與溫度檢測系統(tǒng)。其光傳感器TSL2561和溫度傳感器DS18B20均是高精度測量傳感器,是一個具有高精度、遠(yuǎn)程監(jiān)控的檢測系統(tǒng)。上位機(jī)界面為友好的動態(tài)曲線觀測,可供用戶方便地查看和記錄數(shù)據(jù)。同時,本設(shè)計的下位機(jī)還可以實(shí)現(xiàn)多點(diǎn)測控,具有很強(qiáng)的擴(kuò)展能力,性價比高,實(shí)用性強(qiáng)。