張文梅
(廣東農(nóng)工商職業(yè)技術(shù)學(xué)院 智能工程學(xué)院,廣東 廣州 510507)
溫室環(huán)境數(shù)據(jù)采集及控制是一項(xiàng)綜合應(yīng)用,集合了農(nóng)業(yè)學(xué)、環(huán)境工程、自動(dòng)控制、網(wǎng)絡(luò)通信等技術(shù)。通過(guò)環(huán)境數(shù)據(jù)采集及控制調(diào)節(jié)可以為農(nóng)作物創(chuàng)造最佳的生長(zhǎng)條件,避免人工經(jīng)驗(yàn)操作和管理,提高溫室管理的效果和效率。因此研發(fā)并推廣一套行之有效的溫室環(huán)境監(jiān)控系統(tǒng)是實(shí)現(xiàn)農(nóng)業(yè)現(xiàn)代化,提高農(nóng)業(yè)生產(chǎn)效率的必由之路。
傳統(tǒng)的有線(xiàn)溫室環(huán)境監(jiān)測(cè)已不適用于當(dāng)前溫室對(duì)環(huán)境監(jiān)測(cè)的自動(dòng)化與智能化管理要求,研發(fā)適宜我國(guó)大范圍推廣的無(wú)線(xiàn)溫室環(huán)境監(jiān)控系統(tǒng)已迫在眉睫。
基于ZigBee 的溫室環(huán)境數(shù)據(jù)采集及控制系統(tǒng)中把傳感器節(jié)點(diǎn)布置于監(jiān)控區(qū)域,然后通過(guò)無(wú)線(xiàn)自組網(wǎng)方式將傳感器采集到的數(shù)據(jù)上傳到監(jiān)控中心,系統(tǒng)還可以根據(jù)環(huán)境參數(shù)自動(dòng)控制溫濕度和光照等條件,以達(dá)到最適宜植物生長(zhǎng)的環(huán)境。溫室環(huán)境數(shù)據(jù)采集及控制系統(tǒng)將現(xiàn)代信息技術(shù)和自動(dòng)化工程技術(shù)結(jié)合,自動(dòng)創(chuàng)造適宜于作物生長(zhǎng)的環(huán)境,從而實(shí)現(xiàn)高效的農(nóng)業(yè)規(guī)模生產(chǎn)。
Zigbee[1]以IEEE802.15.4 為標(biāo)準(zhǔn),具有傳輸速率低、功耗低、成本低、網(wǎng)絡(luò)容量大、時(shí)延短、工作頻段靈活等特點(diǎn),是一種通信效率非常高的無(wú)線(xiàn)網(wǎng)絡(luò)技術(shù),在農(nóng)業(yè)自動(dòng)化領(lǐng)域應(yīng)用前景非常廣闊。
大量無(wú)線(xiàn)傳感器模塊構(gòu)成Zigbee的網(wǎng)絡(luò)平臺(tái)[2],其物理設(shè)備包括精簡(jiǎn)功能設(shè)備(RFD)和全功能設(shè)備(FFD)。節(jié)點(diǎn)包括協(xié)調(diào)器節(jié)點(diǎn)和終端節(jié)點(diǎn),在Zigbee 網(wǎng)絡(luò)中有且只有一個(gè)協(xié)調(diào)器節(jié)點(diǎn)(FFD),負(fù)責(zé)建立網(wǎng)絡(luò)和管理其他節(jié)點(diǎn);終端節(jié)點(diǎn)負(fù)責(zé)采集和發(fā)送數(shù)據(jù)。
CC2530 是德州儀器(TI)推出的第二代片上系統(tǒng)解決方案,主要用于能源應(yīng)用領(lǐng)域和2.4GHz IEEE 802.15.4/Zigbee 應(yīng)用領(lǐng)域,它擁有多達(dá)256 個(gè)字節(jié)的快閃記憶體,能有效地在Zigbee 領(lǐng)域?qū)I(yè)應(yīng)用。CC2530 包含了一個(gè)8051 微控制器和2.4GHz DSSS(直接序列擴(kuò)頻)射頻收發(fā)器,具有高性能低功耗的特性,因此非常適用于搭建功能健全且價(jià)格低廉的網(wǎng)絡(luò)節(jié)點(diǎn)。CC2530結(jié)合上TI的Z_Stack協(xié)議棧軟件,可組建無(wú)線(xiàn)網(wǎng)絡(luò),同時(shí)可以加快開(kāi)發(fā)周期,減小開(kāi)發(fā)成本。
圖1 為溫室環(huán)境無(wú)線(xiàn)數(shù)據(jù)采集與控制系統(tǒng)的硬件結(jié)構(gòu)示意圖,由終端傳感器、Zigbee 網(wǎng)關(guān)、網(wǎng)關(guān)節(jié)點(diǎn)、局域網(wǎng)、Internet 網(wǎng)等幾部分組成[3]。Zigbee網(wǎng)絡(luò)通過(guò)自組網(wǎng)方式組建無(wú)線(xiàn)傳感器網(wǎng)絡(luò),采用星型拓?fù)浣Y(jié)構(gòu),Zigbee 終端節(jié)點(diǎn)通過(guò)連接傳感器來(lái)獲得相應(yīng)的環(huán)境參數(shù),然后將數(shù)據(jù)傳遞給Zigbee 協(xié)調(diào)器,協(xié)調(diào)器通過(guò)RS232 串口將數(shù)據(jù)發(fā)送至網(wǎng)關(guān)節(jié)點(diǎn)。網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)將傳感節(jié)點(diǎn)傳回的數(shù)據(jù)上傳至局域網(wǎng)中。PC 機(jī)通過(guò)網(wǎng)絡(luò)可以實(shí)時(shí)地將數(shù)據(jù)顯示,也能對(duì)溫室遠(yuǎn)程控制。
各部分功能如下:
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)主要由Zigbee 協(xié)調(diào)器、Zigbee終端節(jié)點(diǎn)組成的。終端節(jié)點(diǎn)中的各類(lèi)傳感器負(fù)責(zé)所在區(qū)域的各種實(shí)時(shí)數(shù)據(jù)的采集,包括溫濕度傳感器、CO2傳感器等。這些傳感器終端節(jié)點(diǎn)將采集到的數(shù)據(jù)通過(guò)無(wú)線(xiàn)傳輸方式回傳給Zigbee 協(xié)調(diào)器,協(xié)調(diào)器再經(jīng)過(guò)串口傳輸給網(wǎng)關(guān)節(jié)點(diǎn)(具有串口和Wifi 功能),網(wǎng)關(guān)節(jié)點(diǎn)再把數(shù)據(jù)傳輸?shù)椒?wù)器。同時(shí)接收來(lái)自PC 的控制消息,控制信息最后傳送到繼電器控制溫室中的各類(lèi)設(shè)備。
網(wǎng)關(guān)節(jié)點(diǎn)用帶串口的平板電腦,用來(lái)分析并存儲(chǔ)采集到的數(shù)據(jù),實(shí)時(shí)顯示監(jiān)控區(qū)域內(nèi)的溫濕度、CO2濃度等參數(shù)環(huán)境。當(dāng)溫室中有參數(shù)數(shù)據(jù)出現(xiàn)異常時(shí)會(huì)自動(dòng)處理,同時(shí)將相關(guān)的警報(bào)信息發(fā)送給服務(wù)器,服務(wù)器自動(dòng)將警報(bào)信息通知到相關(guān)人員。
服務(wù)器負(fù)責(zé)處理來(lái)自溫室的數(shù)據(jù),也負(fù)責(zé)將控制信息發(fā)送對(duì)應(yīng)的控制器,同時(shí)以網(wǎng)頁(yè)方式顯示溫室大棚中各種數(shù)據(jù)參數(shù)。
節(jié)點(diǎn)硬件由CC2530 模塊和底板組成(圖2),CC2530 模塊用于無(wú)線(xiàn)通信,底板外接有電源模塊、各類(lèi)傳感器、LED 模塊、繼電器和按鍵等設(shè)備。節(jié)點(diǎn)放在溫室,需采用耐熱材料以保護(hù)電路及芯片。
LED 模塊是由發(fā)光二極管組成,表示組網(wǎng)狀態(tài)。
采集模塊由各類(lèi)傳感器組成,是系統(tǒng)穩(wěn)定運(yùn)行的基礎(chǔ),選擇時(shí)要綜合考慮精度、功耗、成本等因素。
控制模塊由繼電器控制,用于控制設(shè)備的開(kāi)和關(guān)。
電源模塊:底板的主供電是5V 電源,芯片電壓為3.3V,因此必須通過(guò)電源模塊進(jìn)行降壓為芯片供電。
串口電路的設(shè)計(jì)在于能使協(xié)調(diào)器模塊與網(wǎng)關(guān)可以進(jìn)行通信。該系統(tǒng)的串口可以通過(guò)RS232 連接網(wǎng)關(guān),網(wǎng)關(guān)通過(guò)串口向協(xié)調(diào)器模塊發(fā)送控制信息,而協(xié)調(diào)器模塊則向網(wǎng)關(guān)通過(guò)串口反饋?zhàn)约旱臓顟B(tài)。
MAX232 是由TI 公司推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。[4]平板串口RS232 電平在-10V~+10V之間,而協(xié)調(diào)器的TTL 電平在0V~+5V 之間,MAX232用于平板和協(xié)調(diào)器之間電平轉(zhuǎn)換,其電路如圖3 所示,包含一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平及驅(qū)動(dòng)器、接收器。
本系統(tǒng)通過(guò)CC2530 輸出命令控制繼電器的觸點(diǎn)閉合來(lái)控制設(shè)備的運(yùn)行,繼電器節(jié)點(diǎn)只需要在CC2530 模塊外添加繼電器,繼電器一般由鐵芯、線(xiàn)圈、銜鐵、觸點(diǎn)簧片等組成的。接通電源后,會(huì)產(chǎn)生電磁效應(yīng),電磁力就會(huì)吸引銜鐵,讓它接觸到鐵芯,帶動(dòng)銜鐵的常閉觸電與常開(kāi)觸點(diǎn)吸合,在電流切斷后,電磁的吸力也就沒(méi)有了,銜鐵就又返回到原來(lái)的位置,將電路切斷。
協(xié)調(diào)器節(jié)點(diǎn)是整個(gè)Zigbee 無(wú)線(xiàn)網(wǎng)絡(luò)的核心,主要負(fù)責(zé)啟動(dòng)并建立網(wǎng)絡(luò)及接收并處理各個(gè)采集節(jié)點(diǎn)的數(shù)據(jù),并通過(guò)串口RS232 數(shù)據(jù)線(xiàn)完成與上位機(jī)進(jìn)行數(shù)據(jù)交換。[5]
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
圖2 節(jié)點(diǎn)結(jié)構(gòu)框圖
圖3 串口模塊電路圖
協(xié)調(diào)器先建立網(wǎng)絡(luò),當(dāng)有節(jié)點(diǎn)加入到網(wǎng)絡(luò)時(shí),協(xié)調(diào)器為這些節(jié)點(diǎn)動(dòng)態(tài)分配16 位網(wǎng)絡(luò)地址,并允許加入網(wǎng)絡(luò),協(xié)調(diào)器通過(guò)不同的網(wǎng)絡(luò)地址來(lái)傳輸各個(gè)子節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)。
傳感器節(jié)點(diǎn)在進(jìn)行數(shù)據(jù)通信時(shí)功耗很大,為了降低能耗,在軟件設(shè)計(jì)中,設(shè)置一定的休眠時(shí)間。休眠結(jié)束后進(jìn)行數(shù)據(jù)采集,然后執(zhí)行數(shù)據(jù)發(fā)送任務(wù)。程序流程見(jiàn)圖4。
圖4 傳感器節(jié)點(diǎn)流程圖
繼電器節(jié)點(diǎn)接收來(lái)自協(xié)調(diào)器的命令,先對(duì)接收到的命令進(jìn)行解析,然后根據(jù)命令進(jìn)行相應(yīng)的開(kāi)或閉處理。本條命令處理完后,會(huì)自動(dòng)回應(yīng)一條信息到上位機(jī),表示命令是否成功收到,然后繼電器繼續(xù)等待接收新的命令。
命令采用統(tǒng)一的字符串格式,格式為:
FA FB 06 01 00 00 00 00 00 (byte1 -byte9)
其中:
byte1 byte2:協(xié)調(diào)器端數(shù)據(jù)發(fā)送控制繼電器命令的固定頭FA FB
byte3:協(xié)調(diào)器端數(shù)據(jù)發(fā)送對(duì)象
byte4:發(fā)送給繼電器的命令內(nèi)容
byte5~ byte9: 保留
本系統(tǒng)上位機(jī)采用帶有串口和Wifi 功能的Android 平板,平板與協(xié)調(diào)器采用串口通信,平板具有顯示、簡(jiǎn)單存儲(chǔ)、人機(jī)交互、網(wǎng)絡(luò)通信等功能。
工作過(guò)程:平板與協(xié)調(diào)器通過(guò)串口連接和數(shù)據(jù)傳輸,另外平板通過(guò)Wifi 連接到局域網(wǎng),局域網(wǎng)連接PC、服務(wù)器及遠(yuǎn)程終端,實(shí)現(xiàn)對(duì)溫室環(huán)境信息的顯示、存儲(chǔ)和控制等,從而完成無(wú)線(xiàn)網(wǎng)絡(luò)和互聯(lián)網(wǎng)的雙向數(shù)據(jù)傳輸和控制。
上位機(jī)數(shù)據(jù)處理包括采集數(shù)據(jù)和服務(wù)器端數(shù)據(jù)處理。
數(shù)據(jù)采集處理流程(如圖5):打開(kāi)串口,啟動(dòng)串口讀取線(xiàn)程,線(xiàn)程循環(huán)讀取串口數(shù)據(jù)。采樣周期結(jié)束,解析讀到的數(shù)據(jù)并轉(zhuǎn)換為用戶(hù)能理解的數(shù)值。
圖5 數(shù)據(jù)采集處理流程
處理服務(wù)器端請(qǐng)求流程(如圖6):當(dāng)接收到服務(wù)器端的請(qǐng)求,創(chuàng)建線(xiàn)程解析請(qǐng)求,并根據(jù)請(qǐng)求的參數(shù)進(jìn)行后續(xù)的業(yè)務(wù)邏輯處理。
本系統(tǒng)模塊主要包括用戶(hù)管理、查看溫室各參數(shù)值、設(shè)置溫室參數(shù)閾值、遠(yuǎn)程控制等功能。其中系統(tǒng)管理員可以通過(guò)系統(tǒng)管理用戶(hù)、組織結(jié)構(gòu)、角色。
圖6 服務(wù)器端數(shù)據(jù)處理流程
提供溫室中各參數(shù)監(jiān)測(cè)數(shù)值曲線(xiàn)顯示,一個(gè)頁(yè)面顯示一個(gè)參數(shù)的變化曲線(xiàn),在界面能夠動(dòng)態(tài)顯示各個(gè)參數(shù)的狀態(tài)曲線(xiàn)和變化狀況。每個(gè)繪圖點(diǎn)的高度要能夠反映出所對(duì)應(yīng)時(shí)間點(diǎn)的數(shù)值高度(如圖7),反映溫室的溫度變化。
圖7 溫室溫度參數(shù)曲線(xiàn)圖
在網(wǎng)關(guān)本文選擇AChartEngine 繪制曲線(xiàn),它是為Android 應(yīng)用而設(shè)計(jì)的繪圖工具庫(kù)。網(wǎng)關(guān)啟動(dòng)定時(shí)線(xiàn)程(定時(shí)間隔可調(diào)),每間隔采集周期,將參數(shù)指令構(gòu)造為命令字符串,通過(guò)串口發(fā)送請(qǐng)求,傳感器根據(jù)指令,讀取當(dāng)時(shí)數(shù)據(jù),網(wǎng)關(guān)解析該數(shù)據(jù),并根據(jù)當(dāng)前的值在界面上畫(huà)出對(duì)應(yīng)的曲線(xiàn),然后將當(dāng)時(shí)數(shù)據(jù)構(gòu)造HTTP 請(qǐng)求和JASON BODY,通過(guò)HTTP 方式返回服務(wù)器端,服務(wù)端接收到數(shù)據(jù)后保存到數(shù)據(jù)庫(kù)中。其流程如下:
1.打開(kāi)串口。
2.獲得串口的輸入輸出流。
3.啟動(dòng)定時(shí)線(xiàn)程。
4.不定時(shí)發(fā)送請(qǐng)求數(shù)據(jù)到串口。
5.解析返回的采集數(shù)據(jù)。
用戶(hù)輸入溫室空氣溫濕度、土壤溫濕度、光照強(qiáng)度、二氧化碳濃度上限及下限,系統(tǒng)記錄該閾值后,當(dāng)輪詢(xún)到的溫室空氣溫濕度、土壤溫濕度、光照強(qiáng)度、二氧化碳濃度數(shù)值超出了這個(gè)范圍,能主動(dòng)打開(kāi)設(shè)備調(diào)節(jié)并發(fā)出信息到服務(wù)器端,服務(wù)器端修改報(bào)警狀態(tài),并通過(guò)短信方式通知工作人員。
當(dāng)溫室中有參數(shù)值超出設(shè)定范圍內(nèi)時(shí),工作人員可以遠(yuǎn)程打開(kāi)或關(guān)閉繼電器,從而控制溫室中的燈光、風(fēng)扇和水泵等設(shè)備,調(diào)節(jié)溫室中的各個(gè)參數(shù),以達(dá)到農(nóng)作物生長(zhǎng)的適宜環(huán)境(見(jiàn)圖8)。
圖8 遠(yuǎn)程控制狀態(tài)圖
針對(duì)溫室系統(tǒng)和Zigbee 的特點(diǎn),把Zigbee 的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)應(yīng)用于農(nóng)業(yè)溫室數(shù)據(jù)采集與控制系統(tǒng),并提出了相關(guān)系統(tǒng)的設(shè)計(jì)方案。在設(shè)計(jì)中利用Zigbee 技術(shù)來(lái)搭建溫室網(wǎng)絡(luò)信息傳輸部分,將繼電器和數(shù)據(jù)傳感器連接到Zigbee 網(wǎng)絡(luò)中的終端節(jié)點(diǎn)上,繼電器和傳感器都無(wú)線(xiàn)擺放,無(wú)需重新布線(xiàn),就能輕松實(shí)現(xiàn)對(duì)溫室中各類(lèi)農(nóng)業(yè)指標(biāo)的采集,如空氣溫濕度、土壤溫濕度、二氧化碳濃度、光照強(qiáng)度等,同時(shí)可以自動(dòng)或遠(yuǎn)程打開(kāi)相應(yīng)的控制設(shè)備,如報(bào)警、噴水、打開(kāi)LED 等,從而實(shí)現(xiàn)對(duì)溫室大棚的高效管理。
廣東農(nóng)工商職業(yè)技術(shù)學(xué)院學(xué)報(bào)2020年3期