佟 強(qiáng)
(沈陽市遼中區(qū)農(nóng)業(yè)技術(shù)推廣與行政執(zhí)法中心,遼寧 沈陽 110200)
目前,國(guó)內(nèi)外對(duì)于灌溉監(jiān)控系統(tǒng),已經(jīng)研究出基于太陽能的監(jiān)控系統(tǒng)、無線遙控監(jiān)控系統(tǒng)、總線控制監(jiān)控系統(tǒng)等幾種[1]。錢彬等[2]將光電子信息處理技術(shù)與灌溉監(jiān)控系統(tǒng)相結(jié)合,以光伏電池為能源,采用Huffman算法傳輸數(shù)據(jù),設(shè)計(jì)系統(tǒng)執(zhí)行、能源、數(shù)據(jù)采集、操作界面、控制中心等模塊,監(jiān)控灌區(qū)灌溉。駱東松等[3]在監(jiān)控系統(tǒng)中,設(shè)計(jì)了氣象、溫濕度、土壤等因素采集板塊,以及遠(yuǎn)程控制操作界面,遠(yuǎn)程監(jiān)控灌區(qū)灌溉。李雪純等[4]設(shè)計(jì)了豐富的監(jiān)控管理界面,加強(qiáng)了用戶身份審核功能,監(jiān)控灌區(qū)灌溉,避免作物補(bǔ)水產(chǎn)生的水浪費(fèi)。賴俊桂等[5]采用多傳感器網(wǎng)絡(luò),調(diào)整了系統(tǒng)的控制單元,監(jiān)控灌區(qū)灌溉。張?chǎng)蔚萚6]選擇STM32監(jiān)控土壤情況,控制上位機(jī)灌溉。徐聰?shù)萚7]將PLC和總線網(wǎng)絡(luò)相結(jié)合,設(shè)計(jì)系統(tǒng)通信單元,增強(qiáng)數(shù)據(jù)采集和信息傳輸?shù)穆?lián)系性。在上述研究的基礎(chǔ)上,此次研究引入多線程,增強(qiáng)系統(tǒng)通信能力,設(shè)計(jì)基于多線程的灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng)。
此次設(shè)計(jì)系統(tǒng)硬件結(jié)構(gòu),將在前人研究確定的硬件設(shè)備基礎(chǔ)上,考慮可拓展、安全經(jīng)濟(jì)、可靠實(shí)用、先進(jìn)等原則[8]。結(jié)合系統(tǒng)主要應(yīng)用功能,將系統(tǒng)分為監(jiān)控、通信、終端等部分,設(shè)計(jì)系統(tǒng)硬件結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)
從圖1中可以看出,雨量—水位檢測(cè)儀、移動(dòng)站點(diǎn)、水質(zhì)檢測(cè)儀、攝像機(jī)等設(shè)備為監(jiān)控系統(tǒng)的監(jiān)控設(shè)備,觀察灌區(qū)水位情況,判斷是否需要灌溉,避免出現(xiàn)過量灌溉現(xiàn)象,當(dāng)雨量-水位檢測(cè)儀、水質(zhì)檢測(cè)儀、攝像機(jī)等設(shè)備檢測(cè)到的數(shù)據(jù)不清晰時(shí),移動(dòng)站點(diǎn)會(huì)重新檢測(cè)灌區(qū)水位情況,以保證數(shù)據(jù)的精確度。
視頻服務(wù)器與攝像機(jī)相結(jié)合,實(shí)現(xiàn)視頻數(shù)字化,從而在監(jiān)控中心,實(shí)時(shí)監(jiān)控灌區(qū)情況,也可以通過視頻服務(wù)器,判斷攝像機(jī)參數(shù)是否需要調(diào)整,保證監(jiān)控視頻數(shù)據(jù)的清晰度。
監(jiān)控中心為系統(tǒng)的核心,采用網(wǎng)絡(luò)連接控制中心的安全設(shè)備、交換機(jī)、存儲(chǔ)設(shè)備、太陽能電源、網(wǎng)絡(luò)路由、終端管控設(shè)備、服務(wù)器、監(jiān)控播放器等,控制系統(tǒng)的運(yùn)行。
系統(tǒng)采用無線傳輸?shù)姆绞?,采用網(wǎng)橋、天線、中繼器等設(shè)備連接系統(tǒng)的各個(gè)組成部分,并設(shè)置了避雷設(shè)備,保障系統(tǒng)在雷雨天氣正常運(yùn)行。
此外,考慮系統(tǒng)監(jiān)控灌區(qū)所處地理位置,選擇太陽能光伏組件,作為系統(tǒng)太陽能能源,驅(qū)動(dòng)系統(tǒng)長(zhǎng)時(shí)間地運(yùn)行。
此次設(shè)計(jì)灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng),將在此次設(shè)計(jì)的系統(tǒng)硬件結(jié)構(gòu)基礎(chǔ)上,確定系統(tǒng)主要監(jiān)控功能,規(guī)范系統(tǒng)運(yùn)行流程,設(shè)計(jì)系統(tǒng)通信方式和系統(tǒng)功能模塊交互方式,使系統(tǒng)具有自動(dòng)化監(jiān)控灌區(qū)灌溉功能。
此次設(shè)計(jì)灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng),將在系統(tǒng)中設(shè)計(jì)系統(tǒng)控制、視頻壓縮編碼、視頻圖像顯示、存儲(chǔ)、網(wǎng)絡(luò)通信、警報(bào)控制、視頻采集、系統(tǒng)管理等七個(gè)模塊,作為系統(tǒng)運(yùn)行主要功能模型。
系統(tǒng)的主要控制程序?yàn)橄到y(tǒng)控制模塊,管理系統(tǒng)所有功能模塊,可以調(diào)整系統(tǒng)所有參數(shù),具有絕對(duì)的控制權(quán)。
視頻采集模塊采集到的灌區(qū)數(shù)據(jù),要想上傳至控制中心,需要使用視頻壓縮編碼模塊壓縮數(shù)據(jù),增加數(shù)據(jù)傳輸速度。傳輸數(shù)據(jù)時(shí),需要先解碼,解碼后才能查看監(jiān)控視頻,其編解碼過程如下:
(1)編碼:讀取視頻采集模塊源文件;在文件中輸入編碼屬性;針對(duì)文件進(jìn)行編碼;整理文件碼流;釋放系統(tǒng)內(nèi)存,完成文件編碼[9]。
(2)解碼:讀取編碼后的源文件;顯示每一碼每一幀的圖像;顯示解碼系列;對(duì)文件進(jìn)行解碼,并顯示解碼結(jié)果[10]。
處理后的視頻,將在圖像顯示模塊展現(xiàn),在新建的媒體播放對(duì)象中,形成數(shù)據(jù)流緩沖區(qū),讀取視頻數(shù)據(jù)。此時(shí),初始化顯示模塊,重新分配系統(tǒng)空間內(nèi)存,顯示視頻數(shù)據(jù)。
在數(shù)據(jù)存儲(chǔ)模塊中,設(shè)計(jì)存儲(chǔ)內(nèi)容覆蓋功能,讓系統(tǒng)根據(jù)磁盤空間內(nèi)存情況,覆蓋最早時(shí)間的數(shù)據(jù),完成新數(shù)據(jù)的存儲(chǔ)。
網(wǎng)絡(luò)通信模塊控制系統(tǒng)所有模塊的連接,包括報(bào)警通信、視頻傳輸、用戶登錄通信等。
警報(bào)控制模塊會(huì)根據(jù)時(shí)間具體情況,發(fā)出不同聲響的警報(bào)聲,迅速啟動(dòng)程序,并將警報(bào)信號(hào)傳遞至控制中心。
系統(tǒng)管理模塊主要負(fù)責(zé)用戶登錄、權(quán)限控制、事件記錄、突發(fā)情況報(bào)警等系統(tǒng)基礎(chǔ)事件處理。
從此次設(shè)計(jì)的系統(tǒng)硬件結(jié)構(gòu)和系統(tǒng)功能可以看出,系統(tǒng)的控制中心為系統(tǒng)的主機(jī),系統(tǒng)的各種遠(yuǎn)程終端,為系統(tǒng)的從機(jī),然而,從遠(yuǎn)程終端看,系統(tǒng)需要根據(jù)終端采集到的灌區(qū)信息,做出相應(yīng)的執(zhí)行命令。此時(shí),遠(yuǎn)程終端為系統(tǒng)的主機(jī),控制中心為系統(tǒng)的從機(jī)。此次設(shè)計(jì)的灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng)運(yùn)行流程,如圖2所示。
圖2 系統(tǒng)運(yùn)行流程
從圖2中可以看出,系統(tǒng)的運(yùn)行流程可以歸屬于一個(gè)圓形結(jié)構(gòu),由控制中心操控遠(yuǎn)程終端,采集灌區(qū)信息,傳遞給控制中心,控制中心根據(jù)信息具體情況,對(duì)灌區(qū)灌溉裝備進(jìn)行操控。
基于此次設(shè)計(jì)的網(wǎng)絡(luò)傳輸方式,設(shè)計(jì)的通信協(xié)議,分為控制中心接收數(shù)據(jù)、遠(yuǎn)程終端采集灌區(qū)數(shù)據(jù)開關(guān)量、遠(yuǎn)程終端采集灌區(qū)數(shù)據(jù)三種通信協(xié)議,如圖3所示。
圖3中,S表示長(zhǎng)度為6bit的同步字符;A表示在0~28之間的遠(yuǎn)程終端地址碼;G表示10字符的遠(yuǎn)程終端模擬量;C表示控制中心接收數(shù)據(jù)校驗(yàn)冗余碼字節(jié);數(shù)據(jù)開關(guān)量為8位,1字節(jié);0~4位遠(yuǎn)程終端開關(guān);5~7位暫未使用,歸零;A2和M2暫未使用,歸零;M1表示命令控制開關(guān)[11-12]。
控制中心接收數(shù)據(jù)SAGC遠(yuǎn)程終端采集灌區(qū)數(shù)據(jù)開關(guān)量01234567遠(yuǎn)程終端采集灌區(qū)數(shù)據(jù)SA1A2M1M2C
基于圖3所示的通信協(xié)議,在C++環(huán)境下,編寫DT、GT和輔助三種通信協(xié)議線程,DT線程用于發(fā)送接收數(shù)據(jù);GT線程用于傳遞監(jiān)控中心命令;輔助線程用于監(jiān)視系統(tǒng)串口通信狀態(tài)。
此次研究確定的系統(tǒng)主要模塊,集中在Web服務(wù)器中,其在服務(wù)器中的交互過程如圖4所示。
圖4 系統(tǒng)主要功能交互關(guān)系
從圖4中可以看出,灌區(qū)灌溉管理人員,通過監(jiān)控中心的操作界面,根據(jù)系統(tǒng)監(jiān)控設(shè)備,遠(yuǎn)程操作灌區(qū)灌溉設(shè)備。此外,在操作的過程中,系統(tǒng)還具有歷史查詢功能,訪問系統(tǒng)歷史操作數(shù)據(jù)庫(kù),查詢?cè)摴鄥^(qū)以往情況。查詢當(dāng)前信息功能,可以立即反饋該時(shí)間段,系統(tǒng)監(jiān)控設(shè)備采集到的灌區(qū)數(shù)據(jù)。監(jiān)控中心按照此次研究設(shè)計(jì)的通信協(xié)議,控制著系統(tǒng)數(shù)據(jù)采集設(shè)備。
綜合上述所有章節(jié)內(nèi)容,將系統(tǒng)的通信協(xié)議、運(yùn)行流程和交互方式等按照?qǐng)D1所示的系統(tǒng)硬件結(jié)構(gòu)布置,系統(tǒng)即具有自動(dòng)化監(jiān)控灌區(qū)灌溉功能。至此,完成灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng)設(shè)計(jì)。
選擇兩組傳統(tǒng)灌區(qū)灌溉監(jiān)控系統(tǒng),采用對(duì)比測(cè)試的方式,以某區(qū)域的灌區(qū)灌溉田為實(shí)驗(yàn)對(duì)象,驗(yàn)證此次設(shè)計(jì)的灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng)。比較三組監(jiān)控系統(tǒng)通信穩(wěn)定性。
為避免此次試驗(yàn)選擇的三組系統(tǒng)軟硬件存在故障,影響系統(tǒng)測(cè)試結(jié)果,針對(duì)三組系統(tǒng)中的各種硬件電路,在PCB板上進(jìn)行測(cè)試;針對(duì)系統(tǒng)軟件,搭建如圖5所示的系統(tǒng)軟件運(yùn)行環(huán)境,檢測(cè)系統(tǒng)軟件。系統(tǒng)軟硬件測(cè)試過程如下:
圖5 系統(tǒng)軟件運(yùn)行環(huán)境
(1)采用PCB電路板,查看系統(tǒng)電路是否存在線路故障、短路、焊接不嚴(yán)、斷路、負(fù)載、接觸不良等問題。(2)檢測(cè)三組系統(tǒng)硬件設(shè)備是否齊全,檢測(cè)設(shè)備是否處于正常工作狀態(tài)。(3)當(dāng)系統(tǒng)硬件不存在問題時(shí),在圖5所示的系統(tǒng)軟件運(yùn)行環(huán)境中,嵌入操作系統(tǒng)和系統(tǒng)通信協(xié)議。(4)單獨(dú)測(cè)試系統(tǒng)中所有驅(qū)動(dòng)程序,重點(diǎn)檢測(cè)灌區(qū)灌溉數(shù)據(jù)采集設(shè)備和通信模塊的驅(qū)動(dòng)程序。(5)使用控制設(shè)備,分別控制系統(tǒng)程序,查看控制程序運(yùn)行是否正常。(6)當(dāng)確定系統(tǒng)的驅(qū)動(dòng)程序和控制程序處于正常運(yùn)行狀態(tài)時(shí),將系統(tǒng)全部程序下載至系統(tǒng)相應(yīng)的芯片中。(7)檢測(cè)系統(tǒng)中的各個(gè)灌區(qū)灌溉信息采集設(shè)備與系統(tǒng)控制中心是否處于正常通信狀態(tài),查看系統(tǒng)控制中心是否可以顯示灌區(qū)灌溉數(shù)據(jù)。
基于此次試驗(yàn),設(shè)計(jì)的三組系統(tǒng)軟硬件檢測(cè)過程,確定此次測(cè)試的三組系統(tǒng),不存在軟硬件故障問題,均處于正常運(yùn)行狀態(tài),可以進(jìn)行系統(tǒng)測(cè)試。
此次系統(tǒng)采集灌區(qū)灌溉信息過程如下:依據(jù)此次試驗(yàn)選擇的三組測(cè)試系統(tǒng),在系統(tǒng)灌區(qū)灌溉數(shù)據(jù)采集程序中,設(shè)定為每隔一小時(shí)三十分鐘采集一次灌區(qū)灌溉數(shù)據(jù)。系統(tǒng)采集灌區(qū)灌溉數(shù)據(jù)時(shí)間持續(xù)十五分鐘。此次試驗(yàn)設(shè)置的數(shù)據(jù)采集時(shí)間包括系統(tǒng)本身啟動(dòng)的時(shí)間。每次采集完灌區(qū)灌溉數(shù)據(jù)后,系統(tǒng)會(huì)自動(dòng)進(jìn)入休眠期,降低系統(tǒng)能源損耗。此次試驗(yàn),采集數(shù)據(jù)時(shí)間為期1 d。
根據(jù)上述設(shè)置的灌區(qū)灌溉信息采集過程所采集到的信息,將水位、pH值、溫度等信息傳輸至系統(tǒng)控制中心,檢測(cè)系統(tǒng)在傳輸數(shù)據(jù)過程中,是否存在掉線問題,上傳至監(jiān)控中心的數(shù)據(jù)是否存在丟失和重復(fù)問題。
3.2.1 第一組試驗(yàn)結(jié)果
基于此次試驗(yàn)設(shè)計(jì)的數(shù)據(jù)采集過程,將三組系統(tǒng)采集到的水位數(shù)據(jù)上傳,監(jiān)控中心所收到的水位數(shù)據(jù),如表1所示。
表1 灌區(qū)灌溉水位數(shù)據(jù)傳輸結(jié)果 cm
從表1中可以看出,傳統(tǒng)系統(tǒng)1傳輸灌區(qū)灌溉水位數(shù)據(jù),控制中心接收到的數(shù)據(jù)存在重復(fù)問題;傳統(tǒng)系統(tǒng)2傳輸灌區(qū)灌溉水位數(shù)據(jù),控制中心接收到的數(shù)據(jù)存在數(shù)據(jù)丟失問題;而設(shè)計(jì)系統(tǒng)傳輸灌區(qū)灌溉水位數(shù)據(jù),控制中心接收到的數(shù)據(jù)在合理范圍內(nèi),數(shù)據(jù)完整,不存在重復(fù)丟失問題??梢?,設(shè)計(jì)系統(tǒng)具有較優(yōu)的通信穩(wěn)定性。
3.2.2 第二組試驗(yàn)結(jié)果
依據(jù)第一組試驗(yàn)結(jié)果,監(jiān)控中心所收到的灌區(qū)灌溉pH值數(shù)據(jù),如表2所示。
表2 灌區(qū)灌溉pH值數(shù)據(jù)傳輸結(jié)果
從表2中可以看出,兩組傳統(tǒng)系統(tǒng)在通信的過程中出現(xiàn)掉線現(xiàn)象,導(dǎo)致控制中心接收到的數(shù)據(jù)丟失;而設(shè)計(jì)系統(tǒng)傳輸灌區(qū)灌溉水位數(shù)據(jù),控制中心接收到的數(shù)據(jù)在合理范圍內(nèi),數(shù)據(jù)完整。可見,設(shè)計(jì)系統(tǒng)具有較優(yōu)的通信穩(wěn)定性。
3.2.3 第三組試驗(yàn)結(jié)果
在前兩組試驗(yàn)的基礎(chǔ)上,監(jiān)控中心所收到的灌區(qū)灌溉溫度數(shù)據(jù),如表3所示。
從表3中可以看出,兩組傳統(tǒng)系統(tǒng)在通信的過程中掉線,導(dǎo)致控制中心接收到的數(shù)據(jù)丟失,數(shù)據(jù)不符合變化規(guī)律,通信穩(wěn)定性較差;而設(shè)計(jì)系統(tǒng)傳輸灌區(qū)灌溉水位數(shù)據(jù),控制中心接收到的數(shù)據(jù)在合理范圍內(nèi),不存在重復(fù)丟失問題??梢姡O(shè)計(jì)系統(tǒng)具有較優(yōu)的通信穩(wěn)定性。
表3 灌區(qū)灌溉溫度數(shù)據(jù)傳輸結(jié)果 ℃
在此次設(shè)計(jì)中,提出了基于多線程的灌區(qū)灌溉自動(dòng)化監(jiān)控系統(tǒng),主要用于監(jiān)控灌區(qū)灌溉情況,如灌區(qū)水位、降雨量、水質(zhì)等灌區(qū)灌溉必須環(huán)境要素,從而讓系統(tǒng)用戶可以根據(jù)灌區(qū)情況,控制灌區(qū)灌溉設(shè)備,灌溉灌區(qū)農(nóng)作物。因此,監(jiān)控系統(tǒng)需要較優(yōu)的通信功能,為此引入多線程技術(shù),設(shè)計(jì)三種線程,保障系統(tǒng)通信穩(wěn)定性。經(jīng)試驗(yàn)驗(yàn)證,此次設(shè)計(jì)的監(jiān)控系統(tǒng),在通信的過程中,不會(huì)出現(xiàn)通信掉線,數(shù)據(jù)丟失、重復(fù)、不符合規(guī)律等問題,具有較優(yōu)的通信穩(wěn)定性。