王 凱,劉子杰
(1.上海出版印刷高等??茖W校信息與智能工程系,上海 200093;2.上海理工大學光電信息與計算機工程學院,上海 200093)
農業(yè)設施在世界現(xiàn)代化農業(yè)發(fā)展中扮演著重要的角色。大棚是其中一項重要的農業(yè)基礎設施。因此,采用單片機和傳感器設計1套集檢測和控制于一體的智能大棚系統(tǒng)[1-3]迫在眉睫。
近年來,在大棚環(huán)境參數(shù)的檢測與控制方面已經出現(xiàn)了不少科研成果,例如基于單片機的多點溫度檢測控制系統(tǒng)[4]、基于單片機的單點溫度遠程控制系統(tǒng)[5]、基于USB串口的多路溫度檢測系統(tǒng)[6]。其中:大多數(shù)的參數(shù)還是采用有線檢測[4-9];即使有無線檢測,也基本上是單路檢測,不適用于布線麻煩或者不能布線的場合。針對上述問題,本文設計了1個大棚溫濕度無線控制系統(tǒng)。該系統(tǒng)以nRF24L01芯片為通信核心,使用5塊nRF24L01芯片進行一對四的無線通信。
本文設計的大棚溫濕度無線控制系統(tǒng)由主機和從機2個部分組成:從機的主要作用是測量溫濕度并發(fā)送給主機;主機根據(jù)從機測量的溫濕度數(shù)據(jù)控制風扇、加濕器、抽濕器、加熱器等設備。整個系統(tǒng)呈現(xiàn)為星形結構。
系統(tǒng)結構如圖1所示。
圖1 系統(tǒng)結構圖
從機的工作原理是一樣的。從機的個數(shù)即溫濕度監(jiān)測點個數(shù),可以根據(jù)所測環(huán)境的范圍大小來確定。本系統(tǒng)中采用了4個從機。
主機和從機之間采用詢問-應答模式來傳送數(shù)據(jù)。正常工作時,主機向從機發(fā)送查詢命令,從機通過溫濕度傳感器采集大棚的溫濕度數(shù)據(jù),經過處理后采用無線方式把溫濕度數(shù)據(jù)依次發(fā)送給主機。主機收到溫濕度數(shù)據(jù)后,對其進行處理和分析,在液晶屏上顯示溫濕度測量值,并在超限時通過蜂鳴器報警;同時,對大棚的溫濕度進行調節(jié),達到大棚自動調溫、調濕的功能[10-11]。無線收發(fā)模塊具有超時重發(fā)功能,能夠有效地避免傳輸過程中的丟包現(xiàn)象以及其他信號的干擾。該系統(tǒng)可以實現(xiàn)人在管理室里對大棚進行觀察、控制的功能。
主機由主控電路[12-13]、蜂鳴器報警電路、時鐘電路、液晶顯示模塊、無線收發(fā)模塊、驅動電路等組成。
主機硬件如圖2所示。
圖2 主機硬件框圖
從機由主控電路、溫濕度采集模塊、發(fā)光二極管和無線收發(fā)模塊等組成。系統(tǒng)正常工作時,溫濕度測量電路會將采集到的數(shù)據(jù)信息發(fā)送到主控電路,主控電路對數(shù)據(jù)進行處理,再將它傳送到無線發(fā)射模塊,由無線發(fā)射模塊發(fā)送到主機。
從機硬件如圖3所示。
圖3 從機硬件框圖
主控電路主要是由STC89C52單片機、晶振電路、電源和復位電路4個部分構成。STC89C52單片機自帶8 KB FLASH、512 B ROM、32個通用I/O口和3個16位可編程定時/計數(shù)器。STC89C52單片機代碼可以向下兼容傳統(tǒng)的89C51單片機,并且具有讀寫速度快、功耗低、掉電數(shù)據(jù)不會丟失等特點。
晶振電路為單片機提供穩(wěn)定的時鐘頻率。XTAL1為外部連接晶振的輸入端口,連接單片機的第19腳;XTAL2為外部連接晶振的輸出端口,連接單片機的第18腳。該單片機晶振的大小不可超過24 MHz。經過綜合考慮,本文最終選擇了12 MHz的晶振。在晶振電路中,串聯(lián)電容可進行濾波,使工作頻率更加穩(wěn)定。電容的選擇范圍通常在15~30 pF之間,在特定范圍內電容值的大小和晶振的穩(wěn)定性成正比。因此,該電路中的電容選用30 pF。
復位電路由電容和電阻構成,與單片機的第9腳,即控制器復位引腳(RST)相連。當按下按鍵時,電容瞬間釋放很高的電壓值,轉換為高電平作用于RST引腳。當RST引腳的高電平狀態(tài)持續(xù)2個或2個以上機器周期時,系統(tǒng)將恢復到原始狀態(tài),即復位。
本系統(tǒng)的溫濕度采集模塊采用DHT11溫濕度傳感器。DHT11的測量范圍是濕度20%~90%、溫度0~50 ℃,符合大棚的環(huán)境測量要求。該傳感器共有4個接口:引腳1外接3~5 V電壓;引腳2與單片機的P1.0口相連,進行串行數(shù)據(jù)通信;引腳3懸空;引腳4接地。
DHT11在采集數(shù)據(jù)信息時,先對接收到的命令進行響應,再進行溫濕度信息的采集。DHT11將采集到的模擬量信息通過內置的A/D采集緩沖器轉換成數(shù)字量信息,可以直接向單片機發(fā)送數(shù)字量,無需額外的數(shù)模轉換。最后切換到低速模式,等待下一次采集命令。該溫濕度采集電路簡單,檢測精度強,可靠性高,抗干擾能力較好。
本系統(tǒng)采用液晶顯示模塊實時顯示溫室大棚內多點的溫度和濕度,依次循環(huán)顯示從機1~從機4傳送的溫濕度信息。LCD1602可以一次性顯示32個字符,通過電壓驅動,使用簡單、成本低,滿足系統(tǒng)設計需要。因此,本系統(tǒng)設計采用LCD1602。單片機的P1.0和P1.1連接LCD1602的控制端。溫濕度信息通過P0口,以8位并行的方式傳給顯示器。其中,P0口應接10 kΩ的上拉電阻。
本系統(tǒng)選用nRF24L01作為無線收發(fā)模塊。該模塊具有高速、低功耗、低成本的特點,內置循環(huán)冗余校驗(cyclic redundancy check,CRC)和點對多點的通信地址控制,能自動重發(fā),并可以在2.4 GHz的無線頻率上進行數(shù)據(jù)傳輸,遵循串行外設接口(serial peripheral interface,SPI)協(xié)議。從機和主機中都會用到該模塊。
雖然該系統(tǒng)可以自動調節(jié)大棚的溫濕度,但是為了提高系統(tǒng)的交互性,設計了1個蜂鳴器報警電路來提醒用戶當前大棚的環(huán)境是否超限。該蜂鳴器報警電路主要由有源蜂鳴器、電阻和PNP三極管組成。其中:三極管用于放大電路;電阻可限流,以減小蜂鳴器電流對整個系統(tǒng)電路的影響。當大棚的實際溫濕度不在設定范圍內時,單片機P1.2輸出一個低電平,通過三極管來放大輸出功率,驅動蜂鳴器發(fā)出警報。
驅動電路[14]主要由電機、繼電器、發(fā)光二極管、三極管等元器件組成。當單片機的T0口發(fā)生負跳變時,三極管導通,繼電器動合,相應電機開始控制設備工作;當單片機的T0口發(fā)生正跳變時,三極管截止,繼電器動斷,電機控制設備停止工作。
矩陣鍵盤是由4個按鍵K1~K4組成。按鍵K1、K2分別用來加減數(shù)值;按鍵K3為溫濕度設置按鍵,將按鍵K3按下1次可設置溫度上限、按下2次可設置溫度下限、按下3次可設置濕度上限、按下4次可設置濕度下限、按下5次保存退出設置頁面;K4為復位按鍵。通過這4個按鍵,可以自由調整溫濕度的限值范圍。
主機接收到溫濕度數(shù)據(jù)后,先判斷數(shù)據(jù)值是否為有效值,再根據(jù)接收到的有效數(shù)據(jù)分別求溫度和濕度的平均值。所得的平均值即為本輪檢測中大棚的溫濕度測量值。主機將溫濕度測量值顯示在液晶屏上,同時對其進行分析。如果溫濕度測量值超出了設定范圍,則通過執(zhí)行機構相應繼電器的吸合,控制風扇、加濕器、抽濕器、加熱器等對大棚的溫濕度進行調節(jié)。
從機等待主機的命令。當從機通過無線收發(fā)模塊收到要求發(fā)送數(shù)據(jù)的命令后,采集到的溫濕度數(shù)據(jù)由無線收發(fā)模塊發(fā)送給主機。
從機控制流程如圖4所示。
圖4 從機控制流程圖
nRF24L01的一對多通信,實際上同一時刻是一對一通信。2個nRF24L01要實現(xiàn)通信,需要將4個參數(shù)設置得相同,即發(fā)射、接收數(shù)據(jù)寬度相同(最大32個字節(jié)),發(fā)射、接收地址相同(5個8位地址),發(fā)射、接收頻道相同(0~125),發(fā)射、接收速率相同(2 Mbit/s、1 Mbit/s、250 Mbit/s)。實現(xiàn)一對多通信有3種方式,分別是修改為不同的頻道、修改為不同的地址,以及修改為不同的頻道+不同的地址。本系統(tǒng)中采用的是將各個從機的無線收發(fā)模塊修改為不同的頻道,通過改變主機無線收發(fā)模塊的頻道決定主機與哪一個從機進行通信。例如,主機把頻道修改為從機1的頻道以后發(fā)送數(shù)據(jù)命令,從機1收到命令后發(fā)送溫度數(shù)據(jù)給主機,主機進行響應;主機再把頻道修改為從機2的頻道后發(fā)送數(shù)據(jù)命令,從機2收到命令后發(fā)送溫度數(shù)據(jù)給主機,主機進行響應;以此類推。
為了應對從機出錯或失效的情況、減小測量誤差,系統(tǒng)將判斷主機接收到的采集值:如溫度值和濕度值與前一時刻液晶顯示值相比,變化分別在±10℃和±20%以內,則判斷為有效值;否則,本次檢測無效,將拋棄本次數(shù)據(jù),不作處理。
有效性判斷流程如圖5所示。
圖5 有效性判斷流程圖
nRF24L01芯片一共有126個頻道可用于建立通信[15]。但是為了降低一對四通信時的干擾,本文將從機無線收發(fā)模塊的頻道依次設定為10、40、70、100。通過周期性地改變主機無線收發(fā)模塊的頻道來與從機依次建立通信。經過多次調試,該系統(tǒng)運行良好,主機在與從機相距幾十米時,可以準確地接收數(shù)據(jù);從機之間的距離超過4 m時,干擾可以忽略[16]。為了測試系統(tǒng)的測試值是否與實際值相符,以及對應設備是否動作,本文進行了對比試驗。測試時間為某天的11時到13時,每20 min測試一次,溫濕度的設定范圍值分別為25~27 ℃和50%~60%,將4個數(shù)字溫濕度計檢測的平均值作為實際值。溫濕度測試值如表1所示。
表1 溫濕度測試值
加熱器、風扇、加濕器和除濕器對應的時序如圖6所示。圖6中:1代表對應設備開,0代表對應設備關。
圖6 對應外設時序圖
由圖6可以看出,測量值和實際值會有誤差,但是誤差不大,對蔬菜生長的影響可以忽略不計。試驗過程中,系統(tǒng)能夠正常工作,對應繼電器能夠正常吸合,設備能夠正常開關??傮w而言,系統(tǒng)能按照設定的目標正常運行,實現(xiàn)監(jiān)測、控制的目的。
本文以STC89C52單片機為核心、DHT11為溫濕度采集模塊、nRF24L01為無線收發(fā)模塊、LCD1602為液晶顯示模塊,通過不同模塊之間的相互配合,組成了大棚溫濕度無線控制系統(tǒng)。經測試證實,該系統(tǒng)達到了設計的預期效果:提高了檢測精度和效率,可以實時顯示溫濕度數(shù)據(jù),并自動調節(jié)大棚的溫度和濕度。但是該系統(tǒng)還存在不足:只能滿足幾十米的傳輸距離;監(jiān)控參數(shù)只有溫度和濕度。后續(xù)將圍繞這些問題進行改進,如:添加Wi-Fi和4G/5G模塊以實現(xiàn)更遠距離的傳輸;添加光敏電阻等傳感器以控制光照強弱等。