張少鳳
(寶雞職業技術學院,寶雞 721000)
在科技發展迅猛的今天,我國農村地區的傳統農業面臨轉型升級。傳統大棚在面臨棚內溫度過高時,高溫引起蒸發量大增,會造成果蔬等農產品局部溫度過高而影響農產品出售。并且一般的農產品適應溫度最高為34℃,如果高于這個溫度,會促成葉螨的適合大量繁殖的條件,蔬菜出現葉螨時,葉片會發生卷曲的現象,影響蔬菜正常的生長,甚至會造成其停止發育,從而導致蔬菜的大量減產。所以解決棚內溫度過高要從農業大棚的環境實時監測做起,做到監測并報警,提醒工作人員做出處理,及時采取通風透氣等措施來避免災害的發生[1]。
“農業大棚環境監測系統的設計與實現”體現了智慧農業理念在生產環境監測方面的應用。基于移動端的開發,無線通信技術的應用,以及大棚環境監測平臺的搭建,通過大量的傳感器節點采集大棚內的信息,幫助管理人員及時發現問題,通知并處理,指導農民高效、方便的生產。由此,將只依靠人工經驗的農業生產逐步轉變為結合物聯網的現代化生產模式,從而,通過大量的使用智能的機械化、自動化設備,提高農業生產率,降低勞動成本[2]。
本設計采用單片機、溫濕度傳感器和APP相結合的設計方式,傳感器實時采集溫濕度,把溫濕度數據進行數模轉換,然后將轉換好的數據發送給單片機,在硬件模塊的屏幕上進行顯示,并通過藍牙模塊與APP交互,當溫度超過預先設定值時,APP發出警示,工作人員通過APP發送指令,打開風扇,當溫度低于預先設定值后可以選擇關閉風扇[3]。
Keil是兼容C語言的開發工具,提供包括C編譯器、庫管理、仿真調試器等為一體的開發方案,通過集成開發環境將其組合在一起。因為該系統將采用STM32,所以選擇了支持ARM芯片的Keil μ Vision5的開發工具。Keil5的開發界面,如圖1所示。
系統采用Eclipse作為移動端軟件開發的工具,Eclipse是一種可擴展的開放源代碼的IDE,具備免費、純Java語言編寫、免安裝、擴展性強等特點。

圖1 Keil 5開發界面
農業大棚環境監測系統是可以采集大棚內的溫度和濕度信息,通預設值比和藍牙模塊對管理人員進行預警,再處理的裝置。本設計由基本電路和移動端組成。基本電路分為:溫濕度檢測采集電路、單片機控制處理電路、LCD1602顯示電路等。
溫濕度傳感器可以將所處環境中的溫度、濕度信息進行采集并發送給單片機,在LCD上顯示的同時,單片機會分析處理得到的數據,判斷數據是否大于預設值,如果大于預設值,通過藍牙模塊向移動端的APP發送提示信息,管理員通過APP打開或關閉風扇。設計分為6個模塊,包括溫濕度采集模塊、STM32單片機模塊、LCD顯示模塊、藍牙模塊、APP模塊和風扇控制模塊。STM32單片機為核心數據處理層,其他部分配合單片機完成功能,如圖2所示。

圖2 農業大棚環境監測系統結構
系統設計中使用到了溫濕度傳感器、單片機、液晶顯示屏、藍牙、風扇等硬件。
(1)DH11溫濕度傳感器
溫濕度傳感器是一種將溫濕度信號轉換為電信號的傳感器。它將采集到的溫濕度轉化為電信號,再由數模電路將溫濕度的電信號轉化為單片機可識別的數字信號。選擇溫濕度傳感器主要是為了其是否能夠適應監測環境的溫度要求、溫濕度范圍的大小和精度的要求,本系統采用DH11溫濕度傳感器[4]。該部分的主要代碼如下。
uart_init(9600);//藍牙初始化 包含開啟中斷
TIM3_Int_Init(499,7199);//50 ms
LED_Init();// 風扇初始化
Lcd_GPIO_init();
Lcd_Init();
delay_ms(20);
sprintf(dis1,"My designer ! ");
Lcd_Puts(0,0,(u8 *)dis1);
fengshan = 1;
while(1)
{
if(DHT11_ReadData()) //是否讀取到溫濕度[8]
{
sprintf(dis0,"Temp:%02dCDH:%02d%%",
(u16)DHT11.Tem_H,(u16)DHT11.Hum_H);//打印溫濕度
Lcd_Puts(0,1,(unsigned char *)dis0);//LCD顯示
Lcd_1Put(7,1,0xdf);
printf(dis0);
printf(" ");
if(DHT11.Tem_H>34)//溫度>34°
{
printf("Temp High ");//發送溫度過高
}
else
{
printf("Temp Normal ");//發送溫度正常
}
delay_ms(800);//延時
}
}
(2)STM32F103C8T6核心板
單片機作為本設計的核心部分主要有四個功能,接收傳感器傳送的溫濕度數據;將溫濕度在LCD上顯示;通過藍牙模塊發送數據;通過藍牙模塊接收到的數據控制風扇。根據本次系統設計的要求,采用STM32F103C8T6單片機[5]。
(3)LCD1602
LCD1602是一種工業字符液晶,最多可以一次顯示16*02(即32)個字符,是專門用來顯示數字、字母、標點符號等多種字符的點陣型液晶顯示模塊本系統的液晶顯示模塊,將溫濕度傳感器采集到的數據,通過由STM32單片機對接收到的數據處理后,通過LCD1602顯示[5]。
(4)藍牙模塊
根據系統需求,選用HC-06作為藍牙模塊,引腳接口主要包括RXD、TXD、GND、VCC。可以連接各種型號的單片機(51、ARM、STM32),并且可以與帶有藍牙功能的手機、電腦等設備通信[6]。
(5)風扇
風扇作為本設計的控制模塊。在接收到相關指令時,單片機通過三極管驅動,控制風扇打開或關閉。部分代碼如下。
void USART1_IRQHandler(void)
{
u8 Res;
#ifdef OS_TICKS_PER_SEC
OSIntEnter();
#endif
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中斷
{
Res=USART_ReceiveData(USART1);//獲取APP發來的數據
if(Res=='O')
{fengshan = 0;}//打開風扇
else if(Res=='C')
{fengshan = 1;}//關閉風扇
}
#ifdef OS_TICKS_PER_SEC
OSIntExit();
#endif
}
系統軟件設計主要包括部分代碼控制硬件,和APP設計代碼。根據代碼量現將APP主要功能加以介紹。
(1)進入APP的主界面,如圖3所示。
(2)點擊連接按鈕后,如圖4所示。
(3)當手機接收到“Temp High”溫度過高的提醒后,點擊open按鈕打開風扇,點擊close按鈕關閉風扇[7-8],如圖5、圖6所示。
農業大棚環境監測系統的設計與實現主要完成了接收數據、顯示數據、發送數據、藍牙連接等功能。該系統的測試用例,從測試的結果來看與期望的結果完全相同,如表1所示。

圖3 主界面

圖4 點擊連接按鈕

圖5 藍牙連接成功


功能特性系統測試測試目的驗證否能夠連接藍牙設備,數據接收、發送、顯示。測試內容操作描述期望結果實際結果測試狀態1打開設備電源開關設備上電成功,液晶屏顯示數據設備上電成功,液晶屏顯示數據與期望結果相同2APP點擊連接按鈕彈出可連接設備列表彈出可連接設備列表與期望結果相同3APP連接藍牙設備彈出Toast,提示用戶連接成功彈出Toast,提示用戶連接成功與期望結果相同4APP等待數據接收數據成功顯示數據成功顯示。與期望結果相同5APP點擊open按鈕風扇打開風扇打開與期望結果相同6APP點擊close按鈕風扇關閉風扇關閉與期望結果相同
在代碼編寫的過程中只能發現語法部分的錯誤,而測試是在程序成功運行后,通過不同的操作方式,發現漏洞。只用通過測試發現代碼細節部分存在的問題,并加以修改,才能使程序更具有健壯性,滿足系統功能需求的同時。
本次設計主要由單片機、溫濕度傳感器、LCD液晶屏、藍牙、風扇、APP構成。系統的優勢包括:傳感器具有長期穩定工作、對其他因素有耐受性等優良特性;STM32F103C8T6具備高性能、低成本、低功耗等特點;開發板的代碼采用C語言編寫,代碼執行效率高,代碼占用空間小;移動APP利用自身優勢,對數據隨時查看并控制風扇的開閉。
本次系統設計也存在一些有待改進的問題,比如環境監測的范圍有限。空間過大的大棚就會出現監測不及時等問題。后期需要完善的地方,比如加入多個傳感器分布在倉庫的各個角落,把他們進行組網操作。這樣就能實現對各個角落的數據精準采集。