功能介绍:采用51单片机+DHT11温湿度+继电器+LCD1602显示屏+按键+蓝牙HC05模块组成主要通过DHT11温湿度采集当前的温湿度相关参数,并且显示到LCD1602上面,通过按键可以调节湿度的阈值,自动模式下:当湿度低于当前的阈值,继电器打开进行抽水浇花,也可以通过按键设置手动模式,然后通过按键手动打开和关闭继电器浇花,并且数据可以通过蓝牙传输到手机APP,文末有资料分享:
15-基于51单片机温湿度测量自动浇花系统(程序+原理图+元器件清单全套资料)
程序部分展示,有中文注释,新手容易看懂
while(1)
{
DHT11_Read_Date(&temperature,&humidity); //读取温湿度
delay_ms(50);
L1602_int(1,4,temperature);
L1602_int(1,11,humidity);
if(key1==0)//切换自动手动
{
buf++;
if(buf>1) buf=0;
}
if(buf==0)//手动模式
{
L1602_string(1,15,"SD");
if(key2==0) led=q1=0;
if(key3==0) led=q1=1;
}
if(buf==1)//自动模式
{
L1602_string(1,15,"ZD");
if(key2==0)
{
yuzhi++;
if(yuzhi>99) yuzhi=99;
}
if(key3==0)
{
yuzhi--;
if(yuzhi<1) yuzhi=1;
}
if(humidity<yuzhi)
{
led=q1=0;
}
if(humidity>yuzhi) led=q1=1;
}
L1602_int(2,11,yuzhi);
F16T=temperature;F16RH=humidity;
Send_Str("TEMP=");
Tx_Buf[0]=F16T/10%10+0x30; //将温湿度数据送往发送数组,送给模块让手机APP显示
Tx_Buf[1]=F16T%10+0x30;
Tx_Buf[2]='C';
Send_DATA(Tx_Buf) ;//发送数据
Send_Str("HUMI=");
Tx_Buf[0]=F16RH/10%10+0x30;
Tx_Buf[1]=F16RH%10+0x30;
Tx_Buf[2]='%';
Send_DATA(Tx_Buf) ;//发送数据
delayms(200);
下面是原理图展示: