加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的溫室大棚環(huán)境檢測系統(tǒng)

08/15 09:18
1308
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
    • 部分實(shí)物圖,PCB展示
  • 相關(guān)文件
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的溫室大棚環(huán)境監(jiān)測系統(tǒng)——空氣溫濕度監(jiān)測,土壤溫濕度監(jiān)測,光照監(jiān)測,無線傳輸數(shù)據(jù)

文末尾附帶源碼

1.1 研究背景

隨著人們生活水平的不斷提高,人們對(duì)自身的健康越來越關(guān)注,對(duì)各類食物的要求也越來越高,溫室大棚作為培育瓜果蔬菜的生長基地,因此對(duì)溫室大棚中植物的生長環(huán)境進(jìn)行實(shí)時(shí)監(jiān)測是尤為重要的,所以對(duì)溫室大棚環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)的研究是很有必要的。

1.2 設(shè)計(jì)要求

(1)選擇合適的傳感器,并設(shè)計(jì)傳感器信號(hào)調(diào)理電路
(2)用液晶顯示器12864實(shí)時(shí)顯示大棚環(huán)境參數(shù);
(3)設(shè)計(jì)按鍵電路能夠設(shè)置環(huán)境參數(shù)的上下限;
(4)設(shè)聲光報(bào)警電路,通過按鍵設(shè)置閾值,在超限后報(bào)警;
(5)通過NRF24L01模塊實(shí)現(xiàn)無線傳輸;
(6)屏幕顯示實(shí)時(shí)時(shí)間,并可進(jìn)行調(diào)整;

2.1 系統(tǒng)方案框圖

在這里插入圖片描述

2.2 方案分析

以GY-30光照模塊,DS18B20土壤溫度模塊,YL-69土壤濕度模塊和DHT11溫濕度模塊和STC89C52單片機(jī)為控制核心組成環(huán)境監(jiān)測系統(tǒng)的發(fā)射板,實(shí)現(xiàn)對(duì)現(xiàn)場光照,土壤溫濕度以及空氣溫濕度數(shù)據(jù)的采集。

DS1302實(shí)時(shí)時(shí)鐘模塊,LCD12864顯示模塊以及蜂鳴器報(bào)警模塊和STC89C52單片機(jī)為控制核心組成環(huán)境監(jiān)測系統(tǒng)的接收板,實(shí)現(xiàn)對(duì)實(shí)時(shí)始終數(shù)據(jù)的采集和對(duì)發(fā)射板接收數(shù)據(jù)的顯示,以及實(shí)現(xiàn)在超限后聲光報(bào)警。

通過NRF24L01無線模塊進(jìn)而實(shí)現(xiàn)發(fā)射板和接收板之間的數(shù)據(jù)通信

1. 單片機(jī)選擇

單片機(jī)采用宏晶科技的單片機(jī)STC89C52。STC89C52是一種低功耗、高性能CMOS8位微控制器。STC89C52使用經(jīng)典的MCS-51內(nèi)核,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash。

2. 光照模塊電路

采用GY-30構(gòu)成光照模塊電路。GY-30是一款內(nèi)置ROHM-BH1750FLV芯片的數(shù)字光照強(qiáng)度模塊。芯片內(nèi)置16bitAD轉(zhuǎn)換器,可直接數(shù)字輸出,測量光照強(qiáng)度范圍為0-65535lx(精度可選)。除此之外,模塊內(nèi)置電平轉(zhuǎn)換,支持3-5V供電,可與5V單片機(jī)IO直接連接;對(duì)外提供IIC接口,方便使用。

3. 土壤溫度模塊電路

采用DS18B20構(gòu)成土壤溫度模塊電路。DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號(hào),具有體積小,硬件開銷低,抗干擾能力強(qiáng),精度高的特點(diǎn)。它的接線方便,封裝成后可應(yīng)用于多種場合。

4. 土壤濕度模塊電路

土壤濕度模塊電路采用YL-69。YL-69 是一個(gè)簡單的土壤濕度傳感器,是一種電容式傳感器,主要使用的是濕敏電容。當(dāng)環(huán)境的濕度發(fā)生改變時(shí),會(huì)使得濕敏電容存在的環(huán)境中的介質(zhì)發(fā)生改變,導(dǎo)致濕敏電容中的電容數(shù)值產(chǎn)生變化,電容的數(shù)值正比于濕度值 。

由于濕敏電容的靈敏度高、響應(yīng)速度快、滯后量小,此外微小的體積、極低的功耗,使得濕敏電容很容易小型化和集成化。

YL-69 采用 CMOS 工藝,可以確保其低功耗,同時(shí)還具有很高的可靠性和穩(wěn)定性。傳感器內(nèi)部含有一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料做成的溫度傳感器,在同一芯片上,與 A/D 轉(zhuǎn)換器及串行接口電路實(shí)現(xiàn)連接。

5. 空氣溫濕度模塊電路

空氣溫濕度模塊電路采用DHT11模塊,DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性和卓越的長期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。

6.無線模塊電路

無線模塊電路采用NRF24L01模塊,NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器調(diào)制器等功能模塊,并融合了增強(qiáng)型ShockBurst技術(shù),其中輸出功率和通信頻道可通過程序進(jìn)行配置。

7.LCD12864顯示模塊電路

帶中文字庫的128X64 是一種具有4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體 中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192 個(gè)1616 點(diǎn)漢字,和128 個(gè)168 點(diǎn)ASCII 字符 集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。

8.報(bào)警模塊電路

本設(shè)計(jì)的報(bào)警電路采用了一個(gè)電磁式有源蜂鳴器來實(shí)現(xiàn)。報(bào)警電路連接在單片機(jī)的某一特定管腳,隨時(shí)會(huì)根據(jù)輸出信號(hào)控制報(bào)警電路的工作與否。設(shè)定一個(gè)溫度界限,當(dāng)采集到的溫度超過界限的時(shí)候,蜂鳴器則會(huì)一直響;當(dāng)溫度在溫度界限內(nèi)時(shí),蜂鳴器停止鳴叫。

9.實(shí)時(shí)時(shí)鐘模塊電路

DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.0V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。

在這里插入圖片描述

4.1 主程序設(shè)計(jì)

整個(gè)軟件部分分為發(fā)射板空氣溫濕度,土壤溫濕度和光照數(shù)據(jù)的采集和數(shù)據(jù)的無線傳輸以及接收板數(shù)據(jù)的顯示。

首先DHT11進(jìn)行初始化,通過調(diào)用采集數(shù)據(jù)函數(shù),分別采集空氣的濕度信息,溫度信息,返回?cái)?shù)據(jù),再通過內(nèi)部AD轉(zhuǎn)換將采集到的數(shù)據(jù)串行的存入發(fā)送緩沖器;

通過YL-69初始化函數(shù)初始化模塊,再調(diào)用采集數(shù)據(jù)函數(shù),讀取當(dāng)前傳感器的探頭濕度信息,為當(dāng)前的探頭電容值,對(duì)采集土壤濕度信息,因?yàn)槟K沒有AD轉(zhuǎn)換電路,所以外接ADC0832芯片,通過對(duì)ADC0832芯片初始化,進(jìn)行AD轉(zhuǎn)換,返回?cái)?shù)據(jù),再將數(shù)據(jù)存入發(fā)送緩沖器中;

通過DS18B20初始化函數(shù)初始化模塊的工作方式,調(diào)用采集土壤溫度信息函數(shù),內(nèi)部采用減法計(jì)數(shù)器的原理,最終得到的當(dāng)前溫度數(shù)據(jù),返回?cái)?shù)據(jù),將數(shù)據(jù)串行存入發(fā)送緩沖器中;

通過GY-30初始化初始化函數(shù)初始化工作方式,調(diào)用并采集光照信息的函數(shù),采集到的信息分為8位,將數(shù)據(jù)按位取出來,分別×對(duì)應(yīng)位置的倍數(shù)得到最終的數(shù)據(jù),返回?cái)?shù)據(jù),將得到的數(shù)據(jù)存入發(fā)送緩沖器中;

通過最后通過設(shè)置NRF24L01初始化,將發(fā)送緩沖器的數(shù)組給到NRF24L01的數(shù)據(jù)發(fā)送函數(shù),NRF24L01根據(jù)對(duì)應(yīng)緩沖器中的數(shù)據(jù)長度,將發(fā)送緩沖器中的數(shù)據(jù)串行按位發(fā)送給接收板,發(fā)送給接收單片機(jī)。

將上述模塊化的程序放入while大循環(huán)里,從而實(shí)現(xiàn)了對(duì)數(shù)據(jù)的實(shí)時(shí)采集,實(shí)時(shí)發(fā)送。實(shí)現(xiàn)了本次課設(shè)的基本要求,下圖為發(fā)送板的主程序框圖:

在這里插入圖片描述

數(shù)據(jù)接受板,通過無線模塊對(duì)數(shù)據(jù)進(jìn)行接收,將發(fā)送緩沖器的數(shù)據(jù)存入接收緩沖器,再通過對(duì)接收緩沖器中的對(duì)應(yīng)位置數(shù)據(jù)進(jìn)行顯示,分別讀取對(duì)應(yīng)索引的數(shù)值。

調(diào)用12864顯示函數(shù)對(duì)數(shù)值數(shù)字化顯示,在通過接收DS1302實(shí)時(shí)時(shí)鐘芯片對(duì)應(yīng)時(shí)、分、秒的引腳的數(shù)據(jù),通過程序控制進(jìn)位,調(diào)用對(duì)應(yīng)日期和相應(yīng)實(shí)時(shí)傳輸?shù)臄?shù)據(jù)的顯示函數(shù)進(jìn)行顯示;

在程序中定義對(duì)應(yīng)位置的按鍵,sbit定義按鍵對(duì)應(yīng)單片機(jī)的引腳,設(shè)置按鍵的功能從S1-S5對(duì)應(yīng)功能分別為:時(shí)間設(shè)置,閾值設(shè)置,加計(jì)數(shù),減計(jì)數(shù),確認(rèn)。

按下時(shí)間設(shè)置可以對(duì)時(shí)間的秒進(jìn)行設(shè)置,再次按下時(shí)可以對(duì)應(yīng)光標(biāo)為分位置,再按下可以進(jìn)入時(shí)的位置,以此類推;

按下閾值設(shè)置按鍵可以分別進(jìn)入空氣溫度,濕度設(shè)置,光照設(shè)置,土壤溫度,土壤濕度閾值設(shè)置,從而實(shí)現(xiàn)對(duì)相應(yīng)數(shù)據(jù)進(jìn)行設(shè)置。

按下S5即最后一個(gè)按鍵,可以對(duì)設(shè)置的當(dāng)前時(shí)間、閾值進(jìn)行確認(rèn);之后程序進(jìn)入對(duì)通過標(biāo)志位flag判斷為1超過閾值,對(duì)于溫度,空氣濕度,土壤溫度,土壤濕度超過閾值的當(dāng)前實(shí)時(shí)數(shù)據(jù)進(jìn)行監(jiān)測,超過閾值則蜂鳴器報(bào)警,否則flag判斷為0,繼續(xù)執(zhí)行。

將上述程序放入大的循環(huán)中,從而實(shí)現(xiàn)了對(duì)發(fā)送板發(fā)送的數(shù)據(jù)進(jìn)行實(shí)時(shí)采集的功能,下圖分別為接收板程序設(shè)計(jì)圖:

在這里插入圖片描述

部分實(shí)物圖,PCB展示

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
需要實(shí)物pcb板的朋友請(qǐng)私信

部分程序源碼

部分源碼 采用keil4編寫.

// 發(fā)射板源代碼:
#include <stc89c52.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define FOSC 11059200L      //System frequency
#define BAUD 2400           //UART baudrate
unsigned char flagcom=0;
//2401IO端口定義sbit 	MISO	=P0^2;
sbit 	MOSI	=P0^4;
sbit	SCK	    =P0^1;
sbit	CE	    =P0^0;
sbit	CSN		=P0^5;
sbit	IRQ		=P0^3;
unsigned char xdata TxBuf[32]=0;		//2401 發(fā)送寄存器
sbit     DQ=P2^7;        //DHT11
//bh1750
sbit	  SCL=P2^1;      //IIC時(shí)鐘引腳定義
sbit  	  SDA=P2^2;      //IIC數(shù)據(jù)引腳定義
#define	  SlaveAddress   0x46 //定義器件在IIC總線中的從地址,根據(jù)ALT  ADDRESS地址引腳不同修改
                              //ALT  ADDRESS引腳接地時(shí)地址為0x46,接電源時(shí)地址為0x3A
typedef   unsigned char BYTE;
typedef   unsigned short WORD;
uchar   BUF[8];                         //接收數(shù)據(jù)緩存區(qū)  
unsigned char  xdata    ge,shi,bai,qian,wan;            //顯示變量
uchar tem;  //溫度
uchar  hum;  //濕度
uint guangzhao=0;		//光照
uint pm25=0;			//pm2.5
uint tw=0;  //土壤溫度 
uint ts=0;  //土壤濕度 
uint flag1=0;
sbit 	LED1=P1^1;
sbit 	LED2=P1^4;
//*************************************ADC0832定義*****************/
//ADC0832 
sbit CS = P1^5;
sbit CLK = P1^6;
sbit DIO = P1^7; 
//*********************************************NRF24L01*************************************
#define TX_ADR_WIDTH    5   	// 5 uints TX address width
#define RX_ADR_WIDTH    5   	// 5 uints RX address width
#define TX_PLOAD_WIDTH  32  	// 20 uints TX payload
#define RX_PLOAD_WIDTH  32  	// 20 uints TX payload
uchar const TX_ADDRESS[TX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};	//本地地址
uchar const RX_ADDRESS[RX_ADR_WIDTH]= {0x34,0x43,0x10,0x10,0x01};	//接收地址
//***************************************NRF24L01寄存器指令*******************************************************
#define READ_REG        0x00  	// 讀寄存器指令
#define WRITE_REG       0x20 	// 寫寄存器指令
#define RD_RX_PLOAD     0x61  	// 讀取接收數(shù)據(jù)指令
#define WR_TX_PLOAD     0xA0  	// 寫待發(fā)數(shù)據(jù)指令
#延時(shí)函數(shù)
void inerDelay_us(unsigned char n)
{
	for(;n>0;n--)
		_nop_();
}
void Delay5ms()
{
    WORD n = 560;
    while (n--);
}
void delay_nms(unsigned int k)	
{						
unsigned int i,j;				
for(i=0;i<k;i++)
{			
for(j=0;j<121;j++)			
{;}}						
}
void Delay5us()
{
    _nop_();_nop_();_nop_();_nop_();
    _nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
}
//******************************復(fù)位ds18b20************/ 
void Init_ds18b20(void) {
	DQ = 1; 
	delay(1); 
	DQ = 0; 
	delay(250); 
	DQ = 1; 
	delay(100);
}

#NRF24L01初始化
void init_NRF24L01(void)
{
    inerDelay_us(100);
 	CE=0;    // chip enable
 	CSN=1;   // Spi disable 
 	SCK=0;   // Spi clock line init high
	SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);    // 寫本地地址	
	SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); // 寫接收端地址
	SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);      //  頻道0自動(dòng)	ACK應(yīng)答允許	
	SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);  //  允許接收地址只有頻道0,如果需要多頻道可以參考Page21  
	SPI_RW_Reg(WRITE_REG + RF_CH, 0);        //   設(shè)置信道工作為2.4GHZ,收發(fā)必須一致
	SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //設(shè)置接收數(shù)據(jù)長度,本次設(shè)置為32字節(jié)
	SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);   		//設(shè)置發(fā)射速率為1MHZ,發(fā)射功率為最大值0dB	
	SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);   		 // IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送

}

博客主頁:https://blog.csdn.net/weixin_51141489,需要源碼或相關(guān)資料實(shí)物的友友請(qǐng)關(guān)注、點(diǎn)贊,私信吧!

  • 聯(lián)系方式.txt

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
MM74HC541WMX 1 onsemi Octal 3-STATE Buffers, 1000-REEL

ECAD模型

下載ECAD模型
$1.03 查看
LFXTAL003000REEL 1 IQD Frequency Products QUARTZ CRYSTAL RESONATOR, 0.032768 MHz, ROHS COMPLIANT, SMD, 4 PIN
$0.53 查看
FOD420SV 1 Fairchild Semiconductor Corporation Triac Output Optocoupler, 1-Element, 5000V Isolation, LEAD FREE, SURFACE MOUNT PACKAGE-6
$2.89 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜