需要全部資料請私信我!
基于STM32的溫室大棚環(huán)境檢測及自動澆灌系統(tǒng)設(shè)計
一、緒論
1.1 研究背景及意義
在傳統(tǒng)農(nóng)業(yè)灌溉模式下,監(jiān)測系統(tǒng)通常分為兩種,一是通過人工檢測獲得,二則是通過有線檢測系統(tǒng)獲得,前者的人工成本高、勞動強度大,而效率卻相對較低,后者則會面臨有線傳輸時信號衰減、架設(shè)線路困難等問題。同時,傳統(tǒng)的人工灌溉不僅浪費人力資源,而且無法精準把握土壤溫濕度,一定程度上造成了灌溉不均勻與水資源的浪費。而智能灌溉系統(tǒng)的出現(xiàn)有效的解決了這一系列問題。
智能灌溉系統(tǒng)是將物聯(lián)網(wǎng)技術(shù)與農(nóng)業(yè)技術(shù)這兩者相結(jié)合,其具有現(xiàn)代化的田間數(shù)據(jù)采集系統(tǒng),對農(nóng)田中的空氣溫度、土壤濕度、光照強度等環(huán)境參數(shù)做到工業(yè)級的精準捕獲,更高效地管理農(nóng)業(yè)流程,同時該系統(tǒng)具備一個自動的灌溉系統(tǒng),該系統(tǒng)根據(jù)所收集的數(shù)據(jù)做出響應,大大提高了水資源的利用和農(nóng)作物的產(chǎn)量和品質(zhì),實現(xiàn)了農(nóng)業(yè)生產(chǎn)的智能化、網(wǎng)絡(luò)化和精準化。為此,本文給出一種基于物聯(lián)網(wǎng)的自動澆灌系統(tǒng)。
1.2 研究內(nèi)容
隨著物聯(lián)網(wǎng)技術(shù)蓬勃發(fā)展,對傳統(tǒng)的農(nóng)業(yè)帶來巨大的挑戰(zhàn)和機遇,基于物聯(lián)網(wǎng)的智能農(nóng)業(yè)越受到關(guān)注。本課題針對智能農(nóng)業(yè)自動澆灌問題,基于嵌入式處理器平臺,利用傳感器技術(shù)和物聯(lián)網(wǎng)通信技術(shù),設(shè)計一種基于物聯(lián)網(wǎng)的自動澆灌系統(tǒng)。在設(shè)計中:
(1)運用電路、傳感器、物聯(lián)網(wǎng)通信等相關(guān)工程原理,對植物生長環(huán)境參數(shù)采集、處理和分析,結(jié)合經(jīng)濟、安全等非技術(shù)因素,給出系統(tǒng)設(shè)計解決方案;
(2)根據(jù)解決方案,實現(xiàn)環(huán)境參數(shù)的信號檢測、水閥及光強控制、無線通信電路、嵌入式處理器最小系統(tǒng)以及人機交互接口電路等系統(tǒng)硬件設(shè)計;
(3)對數(shù)據(jù)處理、數(shù)據(jù)傳輸及信息顯示等功能進行嵌入式代碼化編程,實現(xiàn)系統(tǒng)軟件設(shè)計和整體調(diào)試;
1.3 功能設(shè)計
本課題采用傳感器技術(shù)和物聯(lián)網(wǎng)技術(shù),并結(jié)合嵌入式開發(fā)平臺設(shè)計了一種自動澆灌系統(tǒng)??梢詫崿F(xiàn)對農(nóng)作物生長環(huán)境的實時監(jiān)控,并通過收集光照、環(huán)境溫度、土壤濕度等數(shù)據(jù),結(jié)合設(shè)置好的適宜農(nóng)作物生長的環(huán)境閾值,實現(xiàn)自動灌溉、補光、通風等功能,達到省工省水的目的,切實實現(xiàn)農(nóng)業(yè)灌溉智能化,本課題具有很強的實用性及巨大的市場空間。
① 監(jiān)測植物生長的土壤溫濕度、光照強度、環(huán)境溫度;
② 控制水閥、風扇、補光燈等設(shè)備工作;
③ 可用手機APP顯示數(shù)據(jù)并控制設(shè)備。
二、系統(tǒng)方案設(shè)計
2.1 總體方案設(shè)計
本課題針對智能農(nóng)業(yè)自動澆灌問題,基于嵌入式處理器平臺,利用傳感器技術(shù)和物聯(lián)網(wǎng)通信技術(shù),設(shè)計一種基于物聯(lián)網(wǎng)的自動澆灌系統(tǒng),系統(tǒng)總體方案框圖如圖:
澆灌系統(tǒng)由三個傳感器模塊、單片機最小系統(tǒng)、三個外部設(shè)備和藍牙模塊組成,其中單片機最小系統(tǒng)以STM32F103C8T6單片機為核心控制器,STM32單片機實現(xiàn)對各個外設(shè)模塊總體控制,負責處理從傳感器采集到的數(shù)據(jù)信息,從而對各類不同信息進行相關(guān)操作,控制各個外設(shè)實現(xiàn)相關(guān)的功能。
外設(shè)模塊其中包含溫度檢測模塊,用于檢測當前環(huán)境的溫度;土壤濕度檢測模塊,用于獲取當前土壤濕度;供電電路,給整個主機部分供電;水泵繼電器,若土壤濕度小于濕度閾值,水泵繼電器閉合,若土壤濕度小于土壤溫度閾值,水泵繼電器打開;風扇模塊,繼電器控制步進電機控制風扇閉合;顯示模塊,顯示檢測到的環(huán)境溫度、土壤濕度、光照強度和設(shè)置的閾值;藍牙模塊,將檢測到的數(shù)據(jù)通過該模塊發(fā)送給移動端,也可通過該模塊在移動端設(shè)置閾值。
三、系統(tǒng)硬件設(shè)計
3.1 STM32單片機最小系統(tǒng)
本次澆灌系統(tǒng)設(shè)計中,STM32單片機最小系統(tǒng)由單片機芯片STM32F103C8T6、晶振電路、復位電路、電源電路等部分組成。其原理圖設(shè)計如圖3.1所示。
單片機芯片選用STM32F103C8T6,該芯片是一款基于ARM Cortex-M內(nèi)核STM32系列的32位的微控制器,其程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度為-40°C ~ 85°C。計算性能方面卓越,出錯率小、具有靈活的中斷管理功能,價格適中。STM32F103C8T6廣泛應用于電子設(shè)備中,具有復雜控制和算法的處理器。它的主要功能包括模擬數(shù)字轉(zhuǎn)換(ADC)、定時器和中斷控制器(TIM)、串行通信接口(USART)等功能。此外,它還擁有許多具有創(chuàng)新性和高性能的特性,如高速I/O端口、嵌入式硬件分支預測等,是一款成本低、功能強大的單片機芯片。
3.2 環(huán)境溫度檢測電路設(shè)計
環(huán)境溫度傳感器DS18B20模塊測量農(nóng)田周圍環(huán)境的溫度,模塊具有3個引腳,其中兩個分別接VCC和GND,最后一個引腳與單片機I/O口相連,傳輸數(shù)據(jù)。其原理圖設(shè)計如圖:
DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。DS18B20數(shù)字溫度傳感器接線方便,封裝成后可應用于多種場合,如不銹鋼套管封裝、TO-92封裝和小軸DIP封裝等,本次系統(tǒng)設(shè)計采用小軸DIP封裝,此封裝可適用于露天環(huán)境中溫度較高的情況,契合農(nóng)田環(huán)境的溫度測量應用。本設(shè)計中封裝后的DS18B20可用于檢測農(nóng)田環(huán)境的溫度,工作精度較高,耐磨耐碰,體積小,使用方便,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。
3.3 土壤濕度檢測電路設(shè)計
土壤濕度傳感器YL-69模塊檢測盆栽的土壤濕度。YL-69是一個簡單的土壤濕度傳感器,是一種電容式傳感器,主要使用的是濕敏電容。當環(huán)境的濕度發(fā)生改變時,會使得濕敏電容存在的環(huán)境中的介質(zhì)發(fā)生改變,導致濕敏電容中的電容數(shù)值產(chǎn)生變化,電容的數(shù)值正比于濕度值。由于濕敏電容的靈敏度高、響應速度快、滯后量小,此外微小的體積、極低的功耗,使得濕敏電容很容易小型化和集成化。YL-69 采用CMOS工藝,可以確保其低功耗,同時還具有很高的可靠性和穩(wěn)定性。傳感器內(nèi)部含有一個電容性聚合體濕度敏感元件和一個用能隙材料做成的溫度傳感器,在同一芯片上,與A/D轉(zhuǎn)換器及串行接口電路實現(xiàn)連接。其原理圖設(shè)計如圖
3.4 光照強度檢測電路設(shè)計
光照強度傳感器模塊檢測農(nóng)田中農(nóng)作物所受到的光照強度。該模塊選用光敏電阻5528,其原理圖設(shè)計如圖:
5528光敏電阻是一種基于半導體材料的光敏元件,其工作原理是通過外界光照強度對器件內(nèi)部半導體材料的電荷載流子密度進行影響,從而改變器件的電阻值。當光照強度增加時,載流子密度增加,電阻值降低;反之,當光照強度減小時,載流子密度減小,電阻值升高。即通過不同阻值的電流來檢測光照強度,測量光照強度范圍為0-65535lx。
3.5 水泵控制電路設(shè)計
本系統(tǒng)的澆灌部分由一個JDQ-5繼電器、小型抽水泵與驅(qū)動電路組成。在這個電路中,繼電器JDQ-5用于控制外部高功率電器或電磁設(shè)備。將JDQ-5的控制電壓與單片機的工作電壓保持一致,即將JDQ-5的控制電壓引腳與單片機的5V電源相連。當單片機輸出的IO口電流較小時,無法直接驅(qū)動繼電器,需要使用三極管等驅(qū)動器件進行緩沖放大,此時三極管型號選用S8050三極管,其是一款小功率NPN型硅管,集電極-基極電壓最大可為40V,集電極電流為0.5A。當GPIO輸出高電平時,NPN三極管導通,繼電器線圈得到5V的供電,繼電器吸合,觸點閉合;當GPIO輸出低電平時,NPN三極管截止,繼電器線圈斷電,繼電器釋放,觸點斷開。其原理圖設(shè)計如圖3.5所示。
3.6 風扇控制電路設(shè)計
本系統(tǒng)風扇模塊部分由JDQ-5繼電器、風扇和驅(qū)動電路組成,步進電機帶動風扇旋轉(zhuǎn),其工作原理與上述水泵控制電路相似,原理圖設(shè)計如圖
3.7 燈光控制電路設(shè)計
本系統(tǒng)燈光模塊部分由JDQ-5繼電器、補光燈和驅(qū)動電路組成,繼電器控制農(nóng)田環(huán)境是否需要補光,其工作原理與上述水泵控制電路相似,原理圖設(shè)計如圖
四、系統(tǒng)軟件設(shè)計
自動澆灌系統(tǒng)軟件設(shè)計通過單片機核心控制,將采集到的環(huán)境溫度、土壤濕度、光照強度實時顯示在LCD1602液晶屏上,并將農(nóng)田環(huán)境中的各項參數(shù)設(shè)定正常范圍值,單片機核心控制器對數(shù)據(jù)進行分析處理后,若環(huán)境參數(shù)超出設(shè)定范圍,則控制各模塊運行;同時將檢測到的數(shù)據(jù)通過無線通信模塊傳送到手機APP上,使手機也可以實時顯示農(nóng)田環(huán)境的數(shù)據(jù),同時也可通過手機APP進行遠程控制。
4.1 主程序設(shè)計
本次設(shè)計的自動澆灌系統(tǒng)將實現(xiàn)以下功能:采集農(nóng)田生長環(huán)境中的溫度、土壤濕度、光照強度,將采集到的數(shù)據(jù)顯示在屏幕上,并通過無線通信模塊將數(shù)據(jù)傳輸?shù)绞謾CAPP上。若環(huán)境溫度高于所設(shè)置的閾值,則打開風扇制冷,降低環(huán)境溫度;若土壤濕度低于閾值,則打開水泵模塊,抽水增加土壤濕度,使農(nóng)作物處于適宜的土壤環(huán)境中;若光照強度低于閾值,則打開補光燈對環(huán)境進行補光。系統(tǒng)主程序設(shè)計流程圖如圖
五、系統(tǒng)調(diào)試
5.1 系統(tǒng)硬件調(diào)試
通過對澆灌系統(tǒng)的硬件進行調(diào)試,來檢驗系統(tǒng)的硬件電路能否正確地工作,具體包括以下五個部分:
(1)檢查電路:組裝好的電路要在通電之前仔細檢查電路連線是否有錯誤,對照原理圖按一定的順序逐級檢查。特別要注意電源與地是否有短路問題,集成電路和晶體管的引腳是否接錯,輕輕撥動元器件觀察其是否焊接牢固,以及能否實現(xiàn)期望的性能。確認后可以進行下一步驟。
(2)通電觀察:上電前一定要調(diào)試好所需要的電源電壓值,并確定電路板電源端沒有短路現(xiàn)象后給電路通電,上電后先觀察是否有異?,F(xiàn)象,如冒煙、放電的聲光、元器件發(fā)燙、異常氣味等,如果有以上情況要立即切斷電源,待排除故障后重新接通電源,隨后測量每個集成塊的電源引腳電壓是否正常,以保證集成電路是否已通電工作。
(3)靜態(tài)調(diào)試:不加入輸入信號的情況下測量各級直流工作電壓和電流是否正常。一般對晶體管和集成電路進行靜態(tài)工作點調(diào)試。
(4)動態(tài)調(diào)試:加入輸入信號觀察電路輸出信號是否符合要求,即各個傳感器模塊是否能正常工作。
(5)整體指標測試:對本次課題設(shè)計要求的計數(shù)指標進行測試并對測試數(shù)據(jù)進行分析,最后得出測試結(jié)論,以確定電路的技術(shù)指標是否符合設(shè)計要求。
5.2 系統(tǒng)運行測試
系統(tǒng)運行測試的目的在于處理整個系統(tǒng)在實際操作中發(fā)生的一些問題,如邏輯上的差錯,以及對最后的結(jié)果與所期望的結(jié)果的一致性進行判定。在完成了硬件和軟件的測試之后,就可以將該程序放入 MCU 進行調(diào)試。程序通電后,每個傳感器模塊開始正常工作,無線傳輸模塊、LCD1602顯示模塊、風扇模塊以及補光燈模塊的工作現(xiàn)象如圖5.7,5.8,5.9,5.10所示。
無線傳輸模塊:單片機將數(shù)據(jù)通過藍牙模塊傳輸?shù)绞謾CAPP上,此時手機APP可以實時監(jiān)測農(nóng)田的環(huán)境參數(shù)(光照強度5%,環(huán)境溫度25℃,土壤濕度57%),且手機APP所顯示的數(shù)據(jù)與LCD1602液晶顯示屏中的數(shù)據(jù)一致。由下圖APP界面可見,可通過手機APP設(shè)置農(nóng)田環(huán)境參數(shù)的初始閾值,并可以控制或切換外部設(shè)備的工作狀態(tài),實現(xiàn)遠程操控。
顯示模塊:單片機將傳感器采集到的農(nóng)田環(huán)境數(shù)據(jù)進行分析和處理后顯示在LCD1602液晶屏上,實現(xiàn)農(nóng)田環(huán)境參數(shù)的實時顯示。
風扇模塊:單片機將溫度傳感器DS18B20采集到的數(shù)據(jù)經(jīng)過分析和處理后與提前設(shè)定的閾值相比,下圖顯示的是傳感器捕獲到的環(huán)境溫度高于設(shè)定的閾值,此時風扇打開進入工作狀態(tài),當環(huán)境溫度下降到適宜農(nóng)作物生長的閾值時,風扇自動關(guān)閉。
補光燈模塊:單片機將光敏電阻5528采集到的數(shù)據(jù)經(jīng)過分析和處理后與提前設(shè)定的閾值相比,下圖顯示的是通過光敏電阻捕獲到的光照強度低于設(shè)定的閾值,此時補光燈打開進入工作狀態(tài),當光照強度達到閾值時,補光燈會自動關(guān)閉。
六、總結(jié)
本次自動澆灌系統(tǒng)通過傳感器對農(nóng)作物生長環(huán)境中的環(huán)境溫度、土壤濕度、光照強度等信息進行收集,通過單片機核心控制器對采集到的數(shù)據(jù)進行分析和處理,實現(xiàn)對農(nóng)作物生長環(huán)境的實時監(jiān)測,并判斷是否需要開啟控制模塊來將農(nóng)田環(huán)境調(diào)整到農(nóng)作物生長最適宜的環(huán)境條件。最后,藍牙HC-06模塊將傳感器采集到的環(huán)境參數(shù)發(fā)送到手機APP上,在手機APP上實時顯示數(shù)據(jù),也可以通過手機APP實現(xiàn)對各控制模塊的遠程操控。
本次設(shè)計的自動澆灌系統(tǒng)雖然已普遍實現(xiàn)了所需的功能,但仍在較多方面存在不足,例如極寒露天環(huán)境時無法使農(nóng)田環(huán)境升溫來保證農(nóng)作物處在適宜的生長條件下,且系統(tǒng)捕獲的農(nóng)田環(huán)境參數(shù)會存在誤差,進而影響澆灌效果。另外澆灌系統(tǒng)與移動端的連接不是非常穩(wěn)定,可能會導致系統(tǒng)故障或停機。針對以上問題,我會在之后的時間里挑選合適的加熱設(shè)備投入應用,對比其他傳感器選取更為精準的來替換,保證數(shù)據(jù)的準確性。并精進自己的無線傳輸技術(shù),實現(xiàn)澆灌系統(tǒng)與移動端的穩(wěn)定連接。
七、附錄
視頻展示:
基于stm32的溫室大棚環(huán)境監(jiān)測及自動澆灌系統(tǒng)設(shè)計
PCB設(shè)計:
部分代碼:
#include "sys.h"
#include "adc.h"
#include "delay.h"
#include "lcd1602.h"
#include "ds18b20.h"
#include "timer.h"
#include "gpio.h"
#include "usart1.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#define STM32_RX1_BUF Usart1RecBuf
#define STM32_Rx1Counter RxCounter
#define STM32_RX1BUFF_SIZE USART1_RXBUFF_SIZE
unsigned int light=0;
unsigned char temperature=0;
unsigned char setTempValue=35; //溫度設(shè)置值
unsigned int setSoilMoisture=10;
unsigned char setLightValue=20; //光照設(shè)置值
unsigned int soilMoisture; //土壤濕度
bool usart_send_flag = 0;
bool mode = 0; //0是自動模式,1是手動模式
bool shuaxin = 0;
bool shanshuo = 0;
bool sendFlag = 1;
unsigned char setn=0;//記錄設(shè)置鍵按下的次數(shù)
void displayLight(void)//顯示光照
{
u16 test_adc=0;
/獲取光線值
test_adc = Get_Adc_Average(ADC_Channel_8,10);//讀取通道9的5次AD平均值
light = test_adc*99/4096; //轉(zhuǎn)換成0-99百分比
light = light >= 99? 99: light; //最大只能到百分之99
if(light<=setLightValue && shanshuo)
{
LCD_Write_Char(3,1,' ');
LCD_Write_Char(4,1,' ');
}
else
{
LCD_Write_Char(3,1,light/10+'0');
LCD_Write_Char(4,1,light%10+'0');
}
}
void displaySoilMoisture(void)//顯示土壤濕度
{
soilMoisture =100- (Get_Adc_Average(ADC_Channel_9,10)*100/4096);
if(soilMoisture > 99)soilMoisture = 99; //最大取百分之99
if(soilMoisture<=setSoilMoisture && shanshuo)
{
LCD_Write_Char(9,0,' ');
LCD_Write_Char(10,0,' ');
}
else
{
LCD_Write_Char(9,0,soilMoisture/10+'0');
LCD_Write_Char(10,0,soilMoisture%10+'0');
}
}
void displayTemperature(void)//顯示溫度
{
temperature=ReadTemperature();
if(temperature>=setTempValue && shanshuo)
{
LCD_Write_Char(12,1,' ');
LCD_Write_Char(13,1,' ');
}
else
{
LCD_Write_Char(12,1,temperature/10+'0');
LCD_Write_Char(13,1,temperature%10+'0');
}
}
void displaySetValue(void)
{
if(setn == 1)
{
LCD_Write_Char(7,1,setSoilMoisture/10+'0');
LCD_Write_Char(8,1,setSoilMoisture%10+'0');
}
if(setn == 2)
{
LCD_Write_Char(7,1,setTempValue/10+'0');
LCD_Write_Char(8,1,setTempValue%10+'0');
}
if(setn == 3)
{
LCD_Write_Char(7,1,setLightValue/10+'0');
LCD_Write_Char(8,1,setLightValue%10+'0');
}
}
void keyscan(void)
{
if(KEY1 == 0) //模式切換按鍵
{
delay_ms(10); //消抖
if(KEY1 == 0)
{
while(KEY1 == 0); //等待按鍵松開
BEEP=0;
setn ++;
if(setn == 1)
{
LCD_Write_String(0,0,"set the Moisture");//顯示字符串
LCD_Write_String(0,1," 00% ");
}
if(setn == 2)
{
LCD_Write_String(0,0," set the Temp ");//顯示字符串
LCD_Write_String(0,1," 00 C ");
LCD_Write_Char(9,1,0xdf);
}
if(setn == 3)
{
LCD_Write_String(0,0," set the Light ");//顯示字符串
LCD_Write_String(0,1," 00% ");
}
if(setn == 4)
{
LCD_Write_String(0,0," set the mode ");//顯示字符串
LCD_Write_String(0,1," ZD ");
if(mode==0)LCD_Write_String(7,1,"ZD");else LCD_Write_String(7,1,"SD");
}
displaySetValue();
if(setn >= 5)
{
setn = 0;
LCD_Write_String(0,0,"Moisture: % ");//顯示字符串
LCD_Write_String(0,1,"Gx: % Temp: C");
LCD_Write_Char(14,1,0xdf);
if(mode==0)LCD_Write_String(13,0,"ZD");else
博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實物的友友請關(guān)注、點贊,私信吧!