一.硬件方案
大棚温度控制采用DS18B20温度传感器采集大棚温度,微控制器选51单片机,通过温度传感器测量的温度和设定温度进行比较并得出误差。通过单片机输出PWM波。控制继电器动作,进而控制电阻丝加热以保持大棚温度的稳定。用单片机C51语言编程。 以51单片机为核心、使其可以实现相应功能;

仿真图如下:

PCB图:
二.设计功能
- 通过加热丝将大棚内的温度稳定在设定的范围之内;
- 当温度低于设定温度时,启动电阻丝加热高于设定温度后,电阻丝停止加热; 当温度高于设定温度,启动电风扇降温低于上限值后停止降温;
- 大棚内温度可以实时的显示在LED数码管上控制误差,精度要求在1℃左右。
- 具有报警功能,超出测量范围,蜂鸣器和报警灯声光报警,并在数码管显示器上显示"-"或者"+",其中"-"表示超出下限,"+"表示超出上限;
- 增加3个轻触按键(温度设置键、温度加1键,温度减1键)和上拉电阻。
- 集成蓝牙模块,实现温度数据远程上传至手机APP,支持超限报警和远程阈值参数设置。
三.软件设计
主程序源码
void main() //主函数
{
UartInit(); //初始化串口
init(); //初始化定时器
Delay(1); //延时100US
RELAY=1;
FAN=1;
BEEP=1;
while(1) //进入循环
{
APP_Handle(); //APP处理函数
if(T_50ms >= 200) ///每0.5s钟刷新一次
{
T_50ms = 0;
if(state!=NONE)
{
BEEP^=1;
}
else
{
BEEP=1;
}
//
currentTemp = ((uint)GetTemp())/10%1000;
if(displayRrfresh==1)
APP_refresh();
if(currentTemp>settempH)
{
state=H_FLAG;
RELAY=1;
FAN=0;
}
else if(currentTemp<settempL)
{
state=L_FLAG;
RELAY=0;
FAN=1;
}
else
{
state=NONE;
RELAY=1;
FAN=1;
}
}
Key(); //调用按键函数
}
}
链接: https://pan.baidu.com/s/1CqHwKfI1btnji2cQNSrZ_Q 提取码: 968a