何曉鳳,毛智遠
(淮陰工學院 電子信息工程學院,江蘇淮安,223001)
目前我國的養殖業呈現出規模化的趨勢,主要采取全封閉或者半封閉的養殖方式,現代的這些封閉性高、養殖密度大的養殖場,內部的溫度、濕度、光照強度和通風等因素對于家禽的生長影響很大[1]。而我國養殖企業目前較多采用主觀判斷和人工采樣的方法來監測和控制環境參數,準確率低、浪費人力,也難以全面監測環境[2],因此調節、控制養殖環境對雞只養殖具有重要意義。本課題利用微控制器技術和傳感器技術可以對養殖場內部環境進行實時監測,為所養殖的雞只提供最優的生長環境提供幫助。
本系統選用STC89C52RC單片機作為系統的主控芯片,通過傳感器采集養殖場內的環境數據。將數據進行處理后,單片機向各模塊發送控制信號,實現自動光照控制和對養殖場內溫度、濕度、水箱水位等環境因素的監測,環境參數可以通過語言模塊進行播報,并由WIFI 發送到上位機,從而為家禽創造一個良好的生存環境提供幫助[3]。智能養殖監測系統整體架構圖如圖1 所示,主要包括主控芯片模塊、溫濕度檢測模塊、水位檢測模塊、顯示模塊、光照檢測模塊、補光系統和語音模塊。

圖1 系統整體架構圖
2.1.1 溫濕度檢測電路設計
DHT11 的測溫功能由其內部的NTC(Negative Temperature Coefficient)測溫元件實現,而濕度則由一個內部的電阻式感濕元件來實現[4]。它們分別獲得溫度和相對濕度的模擬量,再經過內部的AD 轉換器轉換成數字量由單線串行接口發送到單片機。由于DHT11 使用的是單線串行接口,所以本設計是將DHT11 的DATA 數據口接到了P3.7 口,并接了一個4.7K 的上拉電阻,VCC 接+5V 電壓,GND 接地,為DHT11 和發光二極管LED1 供電,NC 懸空,其中LED1 是電源指示燈,為了監測DHT11 是否正在工作。具體電路如圖2 所示。

圖2 溫濕度檢測電路
2.1.2 光照強度檢測電路設計
本設計選用GY-30 光強度檢測模塊,由單片機控制以獲取養殖場內部的光照數據,模塊的傳感器選用BHF1750FVI。BH1750FVI 的檢測原理是養殖廠內部的光照射到二極管后,電流經過AMP 運放電路轉換成電壓,再由其內部的AD 轉換器轉換為16 位數據,數據經過處理后在由I2C 總線發送到單片機。其中ADD 為I2C 總線的地址線,這里直接接地。SDA 為雙向數據線接單片機P3.6 口,SCL為時鐘線接P3.5 口,光強度檢測模塊通過SCL、SDA 與單片機實現互相通信。光強度檢測電路如圖3 所示。

圖3 光強度檢測電路設計
2.1.3 水位檢測電路設計
水位檢測模塊采用水位傳感器和AD 轉換器來實現。水位傳感器選用模擬水位傳感器,ADC 芯片選用PCF8591。水位傳感器的S 口接PCF8591 的模擬輸入端AIN0,PCF8591 的三根地址線接地,SCL、SDA 分別接單片機的P0.1 和P0.0 口,由于接在P0 口還需要接兩個10k 的上拉電阻。將傳感器放置在水箱高度10%的位置,能實現監測功能。具體電路如圖4 所示。

圖4 水位檢測電路設計
ESP8266 是由深圳樂鑫科技開發的一款超低功耗UART-WIFI 芯片,其支持標準的IEEE802.11b/g/n 協議,內置完整的TCP/IP 協議棧。而且其價格低、穩定性高、串口速率可達4Mbps,是一款性價比極高的產品。通信模塊與單片機之間通過串口來相互通信,通信模塊的RX、TX 口分別接單片機的P3.1(TxD)口和P3.0(RxD)口。因為ESP模塊的標準工作電壓是3.3V,但本系統的電壓是5V,所以需要一個降壓模塊,將通信模塊與一個3.3k 的電阻并聯在與一個1.7k 的電阻串聯,因為串聯分壓并聯電壓相等的原理,通信模塊可獲得3.3V的工作電壓,由于這樣電流過小,因此需要利用三極管放大電流的原理,讓模塊獲得合適的工作電流。WIFI 模塊電路設計如圖5 所示。

圖5 WIFI 模塊電路設計
語音播報模塊可根據用戶選擇是否播報當前養殖場內部的環境數據,由揚聲器和語音播報芯片構成。語音播報芯片選擇JQ8400。本設計選擇單線串口控制模式,將JQ8400 的ONE-LINE 口接到單片機的P0.2 口,因為接的是P0 口還需要接一個10k 的上拉電阻。SPK+與SPK-分別接在揚聲器的正負極上。將獨立按鍵的兩端分別接地和單片機的P1.0 口,用戶如按獨立按鍵,語音播報模塊則播報環境數據。語音播報模塊電路設計如圖6 所示。

圖6 語音播報模塊電路設計
補光系統主要由實時時鐘、繼電器、LED 燈組成,當室內光照不足時能夠自動開燈。實時時鐘芯片選用DS1302。DS1302 的X1、X2 接一個32.768kHz 的晶振為它提供時鐘,SCLK、IO、CE 分別接單片機的P1.5、P1.6、P1.7 口實線相互通信。繼電器線圈的一端分別接三個PNP 型三極管的發射極,三極管集電極接地,基極接單片機的P0.4、P0.5、P0.6 口,因為是P0 口所以還需要10k 的上拉電阻,另一端接VCC,開關端接LED 燈以實現補光功能,LED 燈需接1.2k 的限流電阻防止電流過大導致的擊穿。通過四個獨立按鍵可以給實時時鐘調時。蜂鳴器接在單片機的P0.7 口,其內部已包含上拉電阻。補光和報警電路設計如圖7 所示。

圖7 補光和報警電路設計
LCD1602 的A 口和K 口分別為背光的正負極,VDD 為電源正極,VSS 時電源負極,V0 通過電阻接地來調節顯示屏的對比度,經過測試本設計選擇接一個3.3k的電阻,RS口是寄存器選擇信號,接單片機P3.4 口。RW 口是讀寫信號,接單片機P3.3 口。E 口是使能端,接單片機P3.2 口。D0 至D7 口是雙向數據口,接單片機P2 口。LCD1602 顯示電路設計如圖8 所示。

圖8 LCD1602液晶顯示電路設計
系統上電后,主程序運行,先進行初始化設置,然后發送指令啟動溫濕度、水位傳感器和光照傳感器,將采集到的雞舍內部的溫濕度、光照和水箱水位的結果顯示在液晶屏幕上,并通過WIFI 模塊發送到PC 端。檢測獨立按鍵判斷是否播報現實的數據,然后將數據與預設值進行對比,如果值在正常范圍以內,則進入下一個循環;若超出正常范圍,則通過單片機控制LED 燈或語言模塊,開啟補光、報警。系統的主程序流程如圖9 所示。

圖9 主程序流程圖設計
單片機判斷按鍵狀態來選擇是否播報數據,如果播報,通過單線串口發送控制命令,組合播放flash 中的語音文件。高位在前,高低電平的比值為3:1 時為1,1:3 時為0。控制命令由三部分組成,清空數字:清空上一次發送的命令。曲目號:選擇要播放的文件,選曲播放:播放命令。子程序流程圖如圖10 所示。

圖10 語音播報子程序設計
系統上電前,首先用串口助手配置好ESP8266 的參數如波特率、WIFI 等。系統上電,等待ESP8266 連接好WIFI,單片機通過串口發送AT 指令設置上位機的IP 和端口。發送AT 指令設置發送數據的長度,然后將存有環境參數的數組發送出去,每一分鐘發送一次。上位機部分,用node.js 實現上位機后端程序。通過監聽上位機的端口來獲得養殖廠內部的環境數據,并通過txt的形式保存在本地,方便查找。子程序流程圖如圖11 所示。

圖11 通信子程序設計
(1)當系統上電后,LCD1602 顯示出當前的溫度為24℃,相對濕度為58%,光照強度為1208lx,符合當前的實際數據,表示DHT11 和BH1750 的功能正常,能夠正確的獲取當前的環境數據。系統實現了溫度、濕度、光照強度的實時監測功能。
(2)當模擬水位傳感器浸沒在水中時,LCD1602 顯示OK 表示水箱水量充足。當水位下降到模擬水位傳感器下方時,LCD1602 顯示NO、蜂鳴器報警表示水箱水量不足。根據上述測試,水位監測模塊功能正常。系統實現了實時水位監測功能。
(3)打開上位機,開始監聽端口,上位機接收到來自ESP8266 的數據并保存在本地的TXT 中。將接收到的環境數據與LCD1602 顯示的環境數據作對比可知,系統的通信功能測試正常。系統實現了Wi-Fi 通信功能。
(4)當時間在早5 點至晚21 點之間,光照強度<200lx以下時,開啟三組照明燈給養殖場內部補光;光照強度在200~300lx 時,開啟二組照明燈給養殖場內部補光;光照強度在300~400lx 時,開啟二組照明燈給養殖場內部補光;光照強度>400lx 時,光照足夠,養殖場內部不需要補光,關閉所有照明燈。當時間在晚21 點至早5 點之間時,養殖場內部不需要補光,關閉所有照明燈。
智能養殖監測系統可以實時檢測環境中的各項參數指標,以防環境變化對養殖場造成不利影響,并且大大減輕了養殖人員的工作量[5]。上述設計具有性能穩定、價格低廉、操作方便、經濟效益良好等優點。本系統的應用具有較高的使用價值,在養殖領域具有良好的發展前景。