基于RS-485總線的溫室環(huán)境數(shù)據(jù)采集系統(tǒng)的研究
植物生長需要一個適宜的環(huán)境,在可控環(huán)境下,可以不分季節(jié)、不分地區(qū)地種植所需要的植物。溫室作為植物生長的環(huán)境,其內(nèi)部的因子(如溫度、濕度、光照度和CO2濃度等)是植物生長的關鍵因素。所以,對溫室環(huán)境因子進行數(shù)據(jù)采集,不僅可以為分析環(huán)境與植物生長之間的關系提供依據(jù),而且為實現(xiàn)溫室環(huán)境控制奠定基礎。
在規(guī)模生產(chǎn)中,一般使用多座溫室,溫室之間在空間上相對分散,且與計算機監(jiān)控室也存在一段距離,信號傳輸距離長達幾十米甚至上千米,分布在現(xiàn)場的監(jiān)測節(jié)點與操作人員之間有大量的數(shù)據(jù)傳輸,采用一般的傳輸線通信由于速度比較慢、通信質(zhì)量不高、抗干擾能力差,往往達不到要求。
在這種情況下,采用串行總線技術來構成溫室環(huán)境遠程數(shù)據(jù)采集系統(tǒng),是一種較好的技術。RS-485總線技術比較簡單、總線結構穩(wěn)定、成熟易于實現(xiàn),且總線傳輸速率高、傳輸距離遠、可靠性較好、支持多點通信等優(yōu)點。所以本文介紹采用RS-485構成溫室環(huán)境數(shù)據(jù)采集系統(tǒng)。系統(tǒng)主要用于溫室內(nèi)的溫度、濕度、光照度和CO2濃度等環(huán)境因子的自動采集,對溫室的異常情況進行故障初發(fā)期的報警處理,為控制植物生長環(huán)境所需的溫度、濕度、光照度和CO2濃度奠定基礎。
1 系統(tǒng)網(wǎng)絡拓撲結構
溫室環(huán)境遠程數(shù)據(jù)采集系統(tǒng)的網(wǎng)絡拓撲采用RS-485總線方式,系統(tǒng)以PC機為主機,以RM417模塊為從機,二者通過RS-232/RS-485接口轉換器連接,系統(tǒng)網(wǎng)絡拓撲結構如圖1所示。
系統(tǒng)采用主從方式進行多機通信,每個從機擁有自己固定的地址,由主機控制完成網(wǎng)上的每一次通信。網(wǎng)絡的連接線采用雙屏蔽線,圖1中的R為平衡電阻,R=120 Ω,通信波特率為9 600 bit/s,串行數(shù)據(jù)格式為:1位起始位,8位數(shù)據(jù)位和1位停止位,無奇偶校驗位。
主機呼叫某一從機時,會向網(wǎng)上發(fā)出從機的地址,所有從機接收到該地址,先與自己的地址比較,如果地址相符,說明主機在呼叫自己,則將采集到的溫度、濕度、光照度和CO2濃度數(shù)據(jù)發(fā)送到網(wǎng)上,如果地址不相符,則不予理睬,繼續(xù)處于監(jiān)聽狀態(tài)。通信結束后,所有從機繼續(xù)處于監(jiān)聽和等待呼叫狀態(tài)。
2 系統(tǒng)硬件
2.1 傳感器
1)溫、濕度傳感變送器
本系統(tǒng)的室內(nèi)外溫、濕度傳感變送器選用E+E公司的產(chǎn)品HCT01,溫度測量范圍:-25~60℃,精度±0.2攝氏度,相對濕度測量范圍:0~100%RH,精度±2.5%RH,輸出信號:4~20 mA。HCT01溫濕度傳感器接口電路如圖2所示。在串行時鐘輸入SCK于單片機的P0.4口連接,用于處理微處理器與傳感器之間的同步通信,串行數(shù)據(jù)線DATA與單片機P0.5口連接,用于讀取數(shù)據(jù),微處理器應驅(qū)動DATA在低電平,采用一個4.7 kΩ的上拉電阻將信號拉至高電平。
2)CO2傳感變送器
從精度、可靠性和使用方便等方面考慮,本系統(tǒng)選用VAISALA公司的GMW22D紅外式CO2傳感變送器,測量范圍:0~2 000x10-6,精度:小于±20x10-6+讀數(shù)的1.5%,重復性:小于±20x10-6,穩(wěn)定性:小于±20x10-6/5年,輸出信號:0~20mA。CO2傳感器接口電路如圖3所示,電源線采用12 V電源輸入,由于單片機P1口具有A/D轉換功能,將數(shù)據(jù)口與單片機的P1.1口連接即可,微處理器處理的DATA應在高電平,所以電路中接10K的下拉電阻將數(shù)據(jù)口拉至低電平。
3)光照傳感變送器
光照傳感變送器選用NHZD10CI,將光照強度轉換為電流信號,測量范圍:0~2 000 Klx,輸出信號4~20 mA,再經(jīng)運算放大器轉換為電壓信號輸出。電流電壓轉換電路如圖4所示。流過反饋電阻Rf的電流等于(UO-UN)/Rf,與UN/R1+(UN-Uf)/R5相等。由此可得輸出電壓UO=(1+Rf/R1+Rf/R5)*UN-(R4/R5)/Uf,由于集成運放滿足虛短,即UN=UP= Ii*s4,用UP代替UO表達式中的UN,若R4=200 Ω,R1=18 kΩ,則UO=0.313*Ii-1.250,當輸入為4~20 mA電流信號時,輸出為0~5 V電壓信號。
2.2 RS-232/RS-485接口轉換器
本系統(tǒng)采用無源RS232/RS485轉換器,能夠?qū)S-232串行口的TXD和RXD信號轉換成平衡的半雙工的RS-485信號。232電平轉換電路選擇使用HIN232芯片,485電路采用MAX485集成電路,該芯片通過RE和DE兩個引腳來控制數(shù)據(jù)的輸入和輸出。轉換電路如5所示,在本電路使用TX線和HIN232的9腳及Q5來控制MAX485的狀態(tài)切換。當N1H232芯片的9腳輸出高電平時,加在Q5的基極,經(jīng)過Q5反相后,從Q5的集電極輸出低電平,使MAX485的RE和DE也為低電平,此時MAX485就處于數(shù)據(jù)接收狀態(tài)。當PC機發(fā)送數(shù)據(jù)時,NIH232的9腳輸出低電平,加在Q5的基極,經(jīng)過Q5反相后,從Q5的集電極輸出高電平,使MAX485的RE和DE也為高電平,此時MAX485就處于數(shù)據(jù)發(fā)送狀態(tài)。
2.3 繼電器控制電路
繼電器控制電路見圖6所示,采用SRD-05VDC-SL-C固態(tài)繼電器,三極管組成共集電極放大電路,二極管D2起保護作用,由單片機P3.6口產(chǎn)生繼電器觸發(fā)信號,當P3.6口輸出低電平時,繼電器閉合,指示燈亮,外接電器開始工作。當P3.6口輸出高電平時,繼電器斷開,指示燈滅,外接電器停止工作。
2.4 前端數(shù)據(jù)采集器
前端數(shù)據(jù)采集器為中泰研創(chuàng)公司生產(chǎn)的RM417遠端模擬量采集模塊,該模塊為16路模擬量輸入,12位A/D轉換。一條485總線最多可以接16個RM模塊,每個RM417有16位通道。該模塊讀指令格式為:@+站號+R。@是指令標示符;站號也叫模塊號或者模塊地址,從00~15;R指明操作類型為讀操作。指令返回數(shù)據(jù)總共66位,前64位為16位通道上的數(shù)據(jù),最后兩位為校驗碼。
3 系統(tǒng)軟件設計
3.1 主機軟件結構
在溫室環(huán)境遠程數(shù)據(jù)采集系統(tǒng)中,按照網(wǎng)絡協(xié)議的幀格式編寫的數(shù)據(jù)采集通信軟件,通過物理層最終完成主機與從機的數(shù)據(jù)傳送。系統(tǒng)主機為PC機,從機為前端數(shù)據(jù)采集器,主機與從機的通信采用半雙工方式,主機具有發(fā)送命令,接收和顯示數(shù)據(jù)、查詢歷史數(shù)據(jù)、曲線顯示、存儲打印、對數(shù)據(jù)采集進行標度變換、數(shù)字濾波等預處理功能。從機完成數(shù)據(jù)采集、預處理和上傳數(shù)據(jù)等任務。溫室環(huán)境遠程數(shù)據(jù)采集系統(tǒng)軟件采用VC語言編程,采用層次模型組織數(shù)據(jù)采集系統(tǒng)的軟件,數(shù)據(jù)采集系統(tǒng)軟件結構如圖7所示。
進入主界面后的主機操作流程如圖8所示。
3.2 通信控制程序設計
RS-485接口大多數(shù)是基于RS-232接口與電腦進行通信,485協(xié)議的編程多數(shù)是基于串口編程的,RS-485支持一點對多點半雙工通信。因此系統(tǒng)采用半雙工異步通信,串行控制模塊使用了串行中斷和定時中斷0實現(xiàn)了串行控制的功能,在通信協(xié)議中詳細規(guī)定了控制命令幀、參數(shù)幀、地址幀、數(shù)據(jù)信息幀、應答幀、校驗碼等格式。RS-485通信模塊流程圖如圖9所示。
4 結束語
文中提出了一種基于RS-485總線型溫室監(jiān)測系統(tǒng)的方案,實現(xiàn)了監(jiān)測節(jié)點對環(huán)境因子(溫濕度、CO2濃度測量、光照強度)的采集經(jīng)過RS-485總線傳輸?shù)缴衔粰C,并能通過控制模塊電路對外圍設備的調(diào)控將溫室內(nèi)的環(huán)境因子控制在作物生長的最佳范圍,并能對環(huán)境因子設定閾值,超出閾值范圍將啟動報警。系統(tǒng)作為一種便捷的數(shù)據(jù)采集監(jiān)測系統(tǒng),具有較好的可移植性,在后續(xù)的研究中可以采用模糊控制算法作為系統(tǒng)的控制策略,設計出溫室監(jiān)測系統(tǒng)的模糊控制器,也可以加入其他所需的傳感器,實現(xiàn)其他參數(shù)的數(shù)據(jù)采集與傳輸。