功能介绍:采用51单片机作为主控CPU,采用ds18b20采集当前的温度,采用YL-69传感器采集土壤湿度,采用继电器驱动风扇进行排气,采用加热电阻进行加热升温,采用水泵进行抽水加湿,采用按键设置温湿度的阈值,当湿度低于阈值,水泵打开抽水,当温度小于下限阈值,加热电阻导通进行升温,当温度大于上限阈值,风扇打开进行排气,相关数据显示到LCD1602屏幕上面,文末有资料分享:
46-基于51单片机智能苗圃温室大棚自动恒温抽水系统(程序+原理图+PCB+元器件清单全套资料)
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
sbit key1=P3^2;//设置键
sbit key2=P3^3;//功能键
sbit jiare=P3^7;//加热
sbit fengshan=P3^4;//风扇
sbit choushui=P3^5;//抽水
void delay9(unsigned int a) //延时函数
{
unsigned int i;
while (--a!=0)
for(i=600;i>0;i--);
}
void ADC_Init()//ADC初始化
{
P1ASF=0x07;
AUXR1=0x00;
ADC_RES=0;
ADC_RESL=0;
ADC_CONTR=0x80;
delay9(2);
}
uint ADC_Get(uchar Channel)//读取ADC值
{
ADC_CONTR=0x88|Channel;
_nop_(); _nop_(); _nop_(); _nop_();
while(!(ADC_CONTR&0x10));
ADC_CONTR&=0xe7;
return(ADC_RES*4+ADC_RESL);
}
float ADC_Value(uchar Channel)//读取ADC通道值
{
float AD_Value;
uint i;
ADC_Init();//ADC初始化
delay_ms(100);
for(i=0;i<10;i++)
AD_Value+=ADC_Get(Channel);
AD_Value/=10;
AD_Value=(AD_Value*5)/1024;
return AD_Value;
}
void USART_Init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd; //波特率9600
SCON=0x50;
TR1=1;
TI=1;
}
void delay_m(int ms)//延时函数
{
int i;
do{
i = 11059200L / 13000;
while(--i) ; //14T per loop
}while(--ms);
}
void main()
{
//jiare=fengshan=choushui=1;
USART_Init();
ADC_Init();//ADC初始化
init();//LCD初始化
delay_m(500);
while (1)
{
if(key1==0)//设置按键
{
while(key1!=1);
buf++;
if(buf>2) buf=0;
}
if(buf==0&&key2==0)//设置温度下限
{
wendu_l++;
if(wendu_l>wendu_h)
wendu_l=1;
}
if(buf==1&&key2==0)//设置温度上限
{
wendu_h++;
if(wendu_h>99) wendu_h=20;
}
if(buf==2&&key2==0)//设置湿度下限
{
shidu++;
if(shidu>99) shidu=1;
}
nongdu=(500-(ADC_Value(3)*100)*0.2); //湿度
write_1602(13, nongdu%100/10+0x30); //显示湿度
write_1602(14, nongdu%10+0x30);
Get_Tmp(); //读取温度
write_1602(5, wendu%1000/100+0x30);//显示温度
write_1602(6, wendu%100/10+0x30);
write_1602(8, wendu%10+0x30);
write1_1602(3, wendu_l%100/10+0x30); //显示温度下限
write1_1602(4, wendu_l%10+0x30);
write1_1602(9, wendu_h%100/10+0x30); //显示温度上限
write1_1602(10, wendu_h%10+0x30);
write1_1602(14, shidu%100/10+0x30); //显示湿度下限
write1_1602(15, shidu%10+0x30);
下面是原理图展示:
下面是PCB文件展示: