徐玲


摘要:雞已經成為現代人不可或缺的重要肉類,而人們在食用雞肉的同時,也在關注著雞類的養殖環境。環境對雞的生長有著至關重要的影響,合適的養殖環境能夠有效降低發病率死亡率及提高雞的品質和產蛋能力,經翻閱資料得出,濕溫度及有害氣體對雞舍環境的影響最大。該設計以單片機為核心,配合傳感器模塊,顯示屏模塊及報警器模塊等,設計了一款可以實時監測雞舍環境中的溫濕度及有害氣體的控制系統。該系統能夠實時檢測所處環境中的相關因素并在顯示屏上顯示相關參數,通過設置相關參數的報警值,當參數超過報警值時系統觸發警報模塊。當參數符合報警值時,系統會終止警報。設計反應靈敏、誤差小、不易出錯、使用范圍廣,具有很強的實用價值及良好的市場前景。
關鍵詞:STM89C52;環境控制;氣體傳感器;AD轉換芯片
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)06-0069-04
開放科學(資源服務)標識碼(OSID)
1 緒論
伴隨著中國畜牧業的快速發展,養殖行業進行了大幅度變革。傳統的養殖行業面臨著許多問題,由于天氣的原因可能會導致雞舍內部的溫度差變大,從而影響雞的健康。由于養殖規模的擴大,所需的人力也會增加,飼養人為的浪費也會大大增加。并且人為的飼養會導致飼養的糧食數量不一,雞也會存在吃得太多,或者不夠吃的情況,從而產生一些疾病。并且雞的喂養,糞便等都需要人為進行操作處理,而智能養雞舍的出現緩解了以上問題。智能養雞舍解決了傳統養雞舍的體力勞動造成的人力上過于勞累的問題。智能養雞舍環境可控,可以使雞生活在最舒適的環境里,做到集約化、標準化。同時,可以減少生產所需的人力。由于飼養設備的先進性,飼養人為的浪費也就大大減少,從而提高生產效率的同時降低了飼養成本。而且智能養雞舍還具有環境比較隔絕,外界影響小、疾病好控制等優點。
1.1 課題研究背景及意義
當今時代電子技術不斷進步,環境控制方法發展到了一定的高度,以計算機系統為基礎的環境控制手段更加快捷、方便,使用更加廣泛。社會在現代化的道路上不斷拓展,隨著生活品質的提高,人民在禽肉的需求上不斷膨脹,過去的生產方式已經很難滿足社會的需要,而隨之誕生問世的現代化農業養殖技術越發受到人民的青睞。據了解,雞類動物在生產過程中受到濕溫度及有害氣體等多種因子的共同作用,環境的好壞決定著雞只的品質。通過現代化的環境控制技術,可以為雞類動物提供一個最佳的生長環境,從而改善雞類動物的生長養殖環境,進而提高雞類動物的質量[1]。因此,如何避免雞舍養殖環境免受不利因素的影響是人民一直在思考的問題,同時成本低、收益高、使用方便也是需要考慮的。而傳感器技術為我們很好地解決了問題,我們可以使用單片機技術配合顯示器、警報器和傳感器等組成一個基于單片機的雞舍環境控制系統,該系統可以采集環境數據和顯示環境數據,并能夠智能報警。通過設置該系統,可實現優化雞舍的養殖環境,為雞只提供一個良好的生長環境,從而提高雞只的整體質量,使得所養殖的雞只在市場上更加具有競爭力。另外通過智能化控制,雞舍環境控制的智能化程度大大提升,管理也更加簡單,從而為雞舍的飼養人員減輕了勞動強度。本系統具有成本低,誤差小、收益高,使用方便等優點,具有良好的社會效益及經濟效益。
1.2 研究內容
本課題設計的是一款能夠應用在各種復雜環境的小規模雞舍,能夠監測雞舍環境中的包括濕溫度、有害氣體等較為重要的環境因素,并且具備報警功能的,基于單片機的雞舍環境監控的軟件系統及硬件系統[2]。其中濕度的控制尤為重要,把這兩個因素控制在合適的范圍內,能夠有效提高雞只的生產質量。雞舍環境控制具有很強的系統性、完整性和整體性。
本次設計是擬實現一個具有實時監測雞舍環境中的濕溫度、HCHO、CO和CO2參數,配合智能報警模塊等為一體的多功能基于單片機的雞舍環境控制系統,要求其精度合適,能應用于雞舍內環境的監測。其中主要的模塊包括報警模塊、按鍵模塊、顯示模塊及氣體傳感器模塊等。
1.3 研究思路
本系統以STC89C52單片機為控制核心,以濕溫度、HCHO、CO及CO2檢測傳感器為測量元件,以LCD顯示屏為顯示,以電機為執行機構,配上按鍵模塊及警報模塊(蜂鳴器及LED燈),構成了基于單片機的雞舍環境控制系統。系統通過各路傳感器電路檢測所處環境的溫度、一氧化碳、濕度、甲醛和二氧化碳的數據并將其轉換成數值的形式,在顯示器上實時呈現,同時將采集到的數值與預設值進行比較,當數值超出預設值時,系統會發出警告聲和燈光亮起。當數值低于預設值時,系統僅顯示數值,報警聲停止,燈光熄滅。通過單片機與其他電子元件相互配合,完成設計環境控制系統的需求。
2 硬件設計
2.1 系統硬件方案設計
本設計涉及的主要硬件為:STC89C52單片機、按鍵系統、濕溫度檢測電路、由指示燈和蜂鳴器組成的報警模塊、CO檢測電路、HCHO檢測電路、CO2檢測電路、ADC0832模數轉換器及LCD1602液晶顯示模塊。系統是基于STC89C52單片機作為中央處理器來進行一系列的控制系統,各路傳感器可檢測并采集所處環境中的數據并通過A/D轉換模塊轉換后傳給單片機處理,或直接傳給單片機處理,并在顯示屏上呈現,同時根據需要觸發報警模塊并做出相應的反應[3]。通過按鍵系統可以設置各數值的報警值。
2.2 最小系統電路
2.2.1 單片機最小系統的構成
單片機最小系統是指用最少的元件組成的單片機可以工作的系統,就是“單片機+晶振電路+復位電路”。
在實際的設計中因為功能的需要,會將按鍵輸入、A/D轉換、顯示輸出等接入上述的電路中,使單片機系統能夠完成較復雜的功能并使單片機系統始終處于正常的運行狀態。
2.2.2 STC89C52單片機
STC89C52是一種高性能、低功耗CMOS8位微控制器,具有8K在系統可編程Flash存儲器。CJMCU—1100型傳感器可用于檢測空氣中0.1 PPM以上的揮發性氣體(本設計用于檢測空氣中的甲醛及二氧化碳),然后經A/D轉換電路轉換成數字信號后傳給單片機處理。其中傳感器的4引腳接單片機的VCC接口,3引腳為DOUT,可連接單片機的任意可用引腳,2引腳與ADC0832芯片的CH0或CH1接口連接,1引腳接地。
在實際的設計中因為功能的需要,會將按鍵輸入、A/D轉換、顯示輸出等接入上述的電路中,使單片機系統能夠完成較復雜的功能并使單片機系統始終處于正常的運行狀態。
以STC89C52單片機為控制核心,連接晶振電路、復位電路、按鍵電路、傳感器電路、報警電路、A/D轉換電路和液晶顯示屏等,組成了一個具有檢測環境中特定因子、顯示相關數值、能夠設置報警值、智能判斷數值是否超過報警值及智能報警功能,基于單片機的雞舍環境控制系統。
2.2.3 晶振電路
晶振是一種高穩定度及高精度的振蕩器。通過特定的外接電路可以生成峰值及頻率穩定的正弦波。單片機在運行的時候,需要一個脈沖信號,作為自己執行指令的觸發信號。晶振電路就是在一個反相放大器的兩端接入晶振,再由兩個電容分別接入到晶振的兩端,另一個電容則接地,這兩個電容串聯的電容量就等于負載電容。在STC89C52單片機內部有一振蕩電路,只要在單片機的XTAL2(18引腳)和XTAL1(19引腳)引腳外接石英晶體(簡稱晶振),就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號。
2.2.4 復位電路
復位電路由電容串聯電阻構成。復位電路的第一功能是上電復位,由于微機電路是時序數字電路,它需要穩定的時鐘信號,因此在電源上電時,只有當VCC超過4.75V低于5.25V以及晶體振蕩器穩定工作時,復位信號才被撤除,微機電路開始正常工作。連接方式是在RST(9引腳)復位輸入引腳下接一個電阻到地,上接一電容至VCC端(40引腳)。
2.2.5 上電復位電路
上電復位是利用電容充電來實現的,即上電瞬間RST端(9引腳)的電位與VCC(40引腳)相同,隨著充電電流的減少,RST的電位逐漸下降。DHT11數字溫濕度傳感器是一款含有已校準數字信號輸出的溫濕度傳感器,本系統的溫濕度檢測電路的傳感器使用的是DHT11型溫濕度傳感器。傳感器包括一個NTC測溫元件和一個電阻式感濕元件,可以將采集到的溫濕度直接輸出為數字量。其中,DHT11傳感器可以直接檢測所處環境中的溫濕度并輸出為數字信號后直接傳給單片機做處理。其中傳感器的第1引腳與單片機的VDD端(40引腳)連接,第4引腳與單片機的GND端(20引腳)連接,第2引腳與電源之間連接一個4.7K的電阻,然后傳感器的第3腳懸浮放置。
3 軟件的設計
3.1 系統整體架構
系統通電后,對硬件進行初始化設置,通過按鍵進行限制設定,依次設置濕溫度、CO、HCHO、CO2的限制值,然后系統會讀取各路傳感器采集到的數據并與限制值進行判定,當超出限制時會發出觸發警報程序[4],當滿足限制值時在顯示器上顯示數據。
3.2 溫濕度檢測程序設計
當單片機系統通電后,單片機向DHT11傳感器發出啟動的指令,DTH11傳感器采集并讀取所處環境的溫濕度后發送給單片機后,一邊將數值結果直接輸出到液晶顯示屏上,一邊由單片機繼續處理。溫濕度監控子程序的流程如圖1所示。
3.3 各路傳感器檢測電路程序設計
當單片機系統通電后,單片機向各傳感器電路發出啟動的指令,各路傳感器采集并讀取所處環境的數據后,經過A/D數模轉換模塊處理后轉換成數字量,并發送給單片機,一邊將數值結果直接輸出到液晶顯示屏上,一邊由單片機繼續處理。
3.4 報警系統程序設計
當單片機系統運行后,通過按鍵系統設置溫濕度及各氣體數值的預設值,然后判斷是否超出預設值,當超出預設值時會觸發報警[5]。當數值處于預設值以內時,會返回上一步并繼續運行。報警系統流程圖如圖2所示。
3.5 LCD1602液晶顯示程序設計
LCD1602液晶顯示屏通電后,首先開始初始化,接著屏幕清零,單片機控制寫入要顯示內容的命令,然后LCD1602液晶顯示屏接收命令,最后執行命令并顯示內容。
LCD1602液晶顯示流程部分程序為:
寫數據:
void write(uchar del) { P0 = del;
RS = 1;
E = 1; delay(); E = 0; delay();
}
#include
#define uchar unsigned char #define uint unsigned int
* 名稱 : Main()
* 功能 : 主函數void main() {
uint i, j, testnum;
static unsigned char Cnt = 0,Cnt1 = 0; unsigned char alarm_Tem;
unsigned char alarm_Hum; unsigned char alarm_Lig; unsigned char alarm_Smok; unsigned long sum = 0;
EA = 0;
Timer0_Init(); //定時器0初始化UART0_Init();
Data_Init(); EA = 1;
L1602_init();
L1602_string(1,1," Welcome to T&H "); L1602_string(2,1," Control System!");
//延時
for (i=0; i<1000; i++) for (j=0; j<1000; j++)
{;}
//清屏L1602_string(1,1," ");
L1602_string(2,1," ");
sprintf(dat1,"T:%02dC H:%02d%% %04d",(short)temperature,(short)humidity,PM25_Value); L1602_string(1,1,dat1);
L1602_string(2,1,"HCHO: % CO: "); SmokH=55;
TH=rdeeprom(0); Delay1(20); TL=rdeeprom(1); Delay1(20); HH=rdeeprom(2); Delay1(20); HL=rdeeprom(3); Delay1(20); SmokH=rdeeprom(6); Delay1(20);
VOC_H = rdeeprom(7); Delay1(20);
PM25_H = rdeeprom(8)*10; PM25_Value = Get_AD_Result2(0); while(1)
{
sum += Get_AD_Result2(0); if(++Cnt1 >= 50)
{
Cnt1 = 0;
PM25_Value = (sum /50)*(sum /25) ; sum = 0;
}
if (FlagStartRH == 1)
{
TR0 = 0;
testnum = RH(); FlagStartRH = 0; TR0 = 1;
Light_Value = Get_AD_Result(0); Smoke_Value= Get_AD_Result(1); humidity = U8RH_data_H; temperature = U8T_data_H;
{
Cnt = 0;
}
4 系統調試
4.1 顯示測試
本系統采用的LCD1602液晶顯示屏,接通電源并按下開關后系統開始運行,經測試,液晶顯示屏能夠正常運行,亮度適中,反應速度快,無閃爍無卡頓,顯示清晰易于判斷。各檢測數據參數顯示第1行從左往右分別是溫度值(T)、濕度值(H)、二氧化碳值(由于顯示屏位置有限,僅顯示數值)。第2行從左往右分別是甲醛值(HCHO)、一氧化碳值(CO)。
4.2 報警值的測試
設置溫度的報警值:“TH”表示溫度的上限值,“TL”表示溫度的下限值。兩者的數值都可以使用按鍵去調節。系統通電之后,首先通過按鍵S1進入設置界面,然后通過按鍵S2(增加一個單位)、S3(減少一個單位)進行數值的設置,再按一次按鍵S1即可進入下一項的設置。待數值設置完畢之后,通過S4按鍵確定數值并退出設置界面,然后系統就會讀取設置好的報警值并進入運行。“HH”表示濕度的上限值,“HL”表示濕度的下限值。兩者的數值都可以使用按鍵去調節。系統通電之后,首先通過按鍵S1進入設置界面,再按一次按鍵S1即可進入下一項的設置,然后通過按鍵S2(增加一個單位)、S3(減少一個單位)進行數值的設置。待數值設置完畢之后,通過S4按鍵確定數值并退出設置界面,然后系統就會讀取設置好的報警值并進入運行。“CO”表示一氧化碳的報警值,可根據實際需要進行設置。系統通電之后,首先通過連續使用按鈕S1,即可進入CO報警值的預設界面。接著可以通過按鍵S2(增加一個單位)、S3(減少一個單位)進行數值的調整。待數值設置完畢之后,通過S4按鍵確定數值并退出設置界面,然后系統就會讀取設置好的報警值并進入運行。“HCHO”表示甲醛的報警值,可根據實際需要進行設置。系統通電之后,首先通過連續使用按鈕S1,即可進入HCHO報警值的預設界面,然后通過按鈕S3(減少一個單位)和按鈕S2(增加一個單位)進行數值的調整。待數值設置完畢之后,通過S4按鍵確定數值并退出設置界面,然后系統就會讀取設置好的報警值并進入運行。“C02”表示二氧化碳的報警值,可根據實際需要進行設置。系統通電之后,首先通過連續使用按鈕S1,即可進入CO2報警值的預設界面,然后通過按鈕S3(減少一個單位)和S2(增加一個單位)進行數值的調整。待數值設置完畢之后,通過S4按鍵確定數值并退出設置界面,然后系統就會讀取設置好的報警值并進入運行。
4.3 報警值的具體參數
當前系統預設的報警值分別是:溫度值為5℃~30℃,濕度值為27 %~69 %,甲醛值為10 %,一氧化碳值為30,二氧化碳值為160,也就是說當檢測到的這些數據的數值超過這些預設的報警值時,系統會觸發報警[6]。本次測試是通過向系統中的DHT11溫濕度傳感器進行人工加濕使濕度升高。經測試,DHT11溫濕度傳感器能夠以緩慢的速度檢測、反應并將具體的數值顯示在系統中的液晶顯示屏上。當前濕度值為72 %,已經超出了預設報警值的27 %~69 %,這時系統中的蜂鳴器會進行報警。當環境中的濕度恢復到報警值以內時,蜂鳴器關閉。同理,通過使用打火機對DHT11溫濕度傳感器進行加熱處理,溫度能夠以緩慢的速度上升并顯示在液晶顯示屏。本次測試是通過使用打火機向系統中的CJMCU—1100傳感器進行人工升高甲醛值。經測試,CJMCU—1100傳感器能夠以較快的速度檢測、反應并將具體的數值顯示在系統中的液晶顯示屏上。
4.4 一氧化碳值和二氧化碳值超限時的報警測試
本次測試是通過使用打火機向系統中的CJMCU—1100傳感器進行人工升高二氧化碳值。經測試,CJMCU—1100傳感器能夠以較快的速度檢測、反應并將具體的數值顯示在系統中的液晶顯示屏上。實驗中二氧化碳值為3200,已經超出了預設報警值的160,這時系統中的蜂鳴器會進行報警并且紅色的LED燈也會亮起來。當環境中的二氧化碳值恢復到報警值以內時,蜂鳴器關閉,紅色LED燈也會停止亮起。同理,通過使用打火機對MQ-7型氣體傳感器進行人工升高一氧化碳值。
4.5 溫濕度超限時的報警測試
本次測試是通過向系統中的DHT11溫濕度傳感器進行人工加濕使濕度升高。經測試,DHT11溫濕度傳感器能夠以緩慢的速度檢測、反應并將具體的數值顯示在系統中的液晶顯示屏上。當前環境中二氧化碳值為83,已經超出了預設報警值的30,這時系統中的蜂鳴器會進行報警并且黃色的LED燈也會亮起來。當環境中的二氧化碳值恢復到報警值以內時,蜂鳴器關閉,黃色LED燈也會停止亮起。
5 結論
本文設計了一種基于STC89C52單片機的雞舍環境控制系統,本系統具有溫濕度檢測、智能報警功能、氣體檢測和數據顯示。其中采用STC89C52單片機作為控制核心,配合ADC0832型芯片、MQ-7型氣體傳感器、CJMCU—1100型氣體傳感器和DHT11溫濕度傳感器等,組成了本雞舍環境控制系統。該系統具有反應靈敏、顯示清晰易懂、誤差小、方便操作使用等特 點,經過測試,整個系統都能在通電狀態下正常運行,各項功能也能夠正常運行及使用,符合設計的要求。本系統也有很多地方需要改進:功能上,雞只在實際養殖中還受到光照、粉塵等因素的影響,這些因素在設計中沒有考慮進去,因此可以增加多個因素的檢測功能,使得能夠檢測所有不利于雞只生產的不利因素[7]。報警上,本設計可以檢測5個因素,但只使用了2個指示燈,在實際使用中難以滿足通過指示燈判斷哪個因素超標,因此可以使用不同顏色的指示燈對應不同的可檢測因素。本系統還可以發展為全自動的環境控制系統,可以自動檢測相關因素,當某因素超標時自動觸發報警的同時,還會觸發相應的措施解決問題。
總而言之,基于單片機的雞舍環境控制系統擁有強大的功能,也有很大的改進空間,其應用能夠有效解決雞舍環境問題及減少人力物力等,而且該系統成本低收益高,具有遠大的發展前景及推廣價值。
參考文獻:
[1] 曾學,賀成柱.基于物聯網的溫室大棚控制系統設計[J].機械研究與應用,2021,34(6):83-86.
[2] 鄭偉南.建筑節能運行智能控制系統設計研究[J].電子世界,2021(23):53-54.
[3] 沈華剛,趙旭,蔣世權,等.基于AT89C51單片機的雞舍環境檢測與控制系統[J].河南科技,2021,40(2):24-26.
[4] 劉超峰,王憲磊.基于單片機的南疆溫室大棚環境自動控制系統的設計[J].新疆農機化,2020(4):36-38.
[5] 于斯淇,汪俊菊,李慧穎,等.基于單片機的環境控制系統[J].科學技術創新,2019(10):89-90.
[6] 毛偉成.基于單片機的列車車廂環境實時監測控制系統[J].物聯網技術,2018,8(4):23-24.
[7] 李張麗,鐘玲玲,李峰,等.基于單片機STM32的環境檢測教室系統的設計[J].電子制作,2021(17):80-82.
【通聯編輯:代影】