基于51单片机温度控制系统报警器恒温箱蓝牙app控制设计
基于51单片机温度控制系统报警器恒温箱蓝牙APP控制设计
1. 功能介绍
本设计是一种基于51单片机的智能温控系统,集温度采集、液晶显示、继电器控制、蜂鸣器报警及蓝牙通信于一体。系统能够实现温度的自动调节、上下限报警提示,同时可通过手机APP进行远程监控和参数设置。适用于恒温箱、实验设备或家庭温控场景。
系统主要功能包括:
- 温度实时显示:LCD1602液晶显示当前温度值,以及用户设置的温度上下限报警值。
- 温度调节:通过按键或APP设置温度阈值。当温度超过上限时,继电器自动开启制冷装置;当温度低于下限时,继电器自动开启加热装置。
- 报警功能:若温度在1分钟内未调节至正常范围,蜂鸣器进行声光报警提醒。
- 远程控制:通过蓝牙模块将温度信息上传至手机APP,并可通过APP发送指令修改温度上下限,实现远程控制与监测。
- 模式切换与安全防护:系统能够根据设定温度自动切换制冷或制热模式,并通过继电器隔离控制高功率负载,保障使用安全。
通过以上功能,本设计能够实现恒温环境的智能控制,提升操作便利性与安全性。
2. 系统电路设计
系统主要由STC89C52单片机最小系统、温度采集模块、液晶显示模块、继电器控制模块、蜂鸣器报警模块、按键输入模块、蓝牙通信模块和电源模块组成。
2.1 单片机控制电路
核心控制芯片为STC89C52单片机,负责系统的温度采集、继电器控制、蜂鸣器报警及LCD显示控制。单片机采用标准最小系统设计,包含晶振电路、复位电路和电源滤波电路,保证系统稳定运行。
主要功能包括:
- 接收DS18B20温度传感器采集的温度数据;
- 根据温度值与上下限比较结果控制继电器状态;
- 控制LCD1602实时显示温度信息及报警阈值;
- 处理按键输入,实现上下限阈值设置;
- 通过蓝牙模块与手机APP通信,实现数据上传与远程控制。
2.2 温度采集模块
系统采用DS18B20数字温度传感器进行温度采集,具有精度高、抗干扰能力强和数字输出接口的特点。DS18B20通过单总线接口与单片机通信,单片机读取温度值后进行判断与处理。此模块能够实现温度的实时采集,为继电器控制和报警提供数据依据。
2.3 LCD1602液晶显示模块
LCD1602模块用于实时显示当前温度值及设置的上下限阈值。显示内容包含:
- 当前温度值(摄氏度);
- 上限温度和下限温度;
- 系统状态提示(加热、制冷或报警状态)。
显示模块通过单片机的I/O口进行数据传输,支持字符和数字显示。用户通过液晶可以直观掌握温控状态。
2.4 继电器控制模块
继电器模块用于控制外接加热器和制冷装置的工作。单片机根据温度采集结果输出控制信号驱动继电器:
- 当温度高于上限值时,继电器吸合,开启制冷设备;
- 当温度低于下限值时,继电器吸合,开启加热设备;
- 继电器采用光耦隔离电路,确保单片机与高功率负载安全隔离。
通过继电器的开关控制,实现温度的自动调节。
2.5 蜂鸣器报警模块
蜂鸣器模块用于温控报警提示,当温度在1分钟内未回到设定范围内时,系统触发蜂鸣器报警,同时在LCD显示报警提示信息。蜂鸣器采用单片机I/O口直接驱动,提供声光提示,确保用户及时发现异常。
2.6 按键输入模块
按键模块用于设置温度上下限,系统配备三个按键:
- 设置键:进入温度上下限设置界面;
- 增加键:提高当前设置的温度值;
- 减少键:降低当前设置的温度值。
单片机通过轮询或中断方式检测按键状态,更新LCD显示并修改温控阈值。
2.7 蓝牙通信模块
系统通过HC-05或类似蓝牙模块与手机APP通信,实现温度数据上传与远程控制。主要功能包括:
- 将当前温度值和上下限阈值发送至手机APP;
- 接收来自APP的指令,修改温控阈值或切换控制模式;
- 提供蓝牙状态指示,显示是否成功连接。
2.8 电源模块
系统采用直流稳压电源,为单片机、传感器、继电器和蓝牙模块提供稳定的供电。电源模块设计时考虑电流需求和滤波能力,确保系统在加热或制冷高负载状态下仍能稳定工作。
3. 程序设计
3.1 主程序设计
主程序包括初始化和主循环,负责系统整体逻辑控制。功能主要包括:
- 系统初始化,包括单片机端口、LCD显示初始化、DS18B20温度传感器初始化和蓝牙通信初始化;
- 主循环中实时读取温度传感器数据;
- 根据温度值与上下限阈值比较结果,控制继电器和蜂鸣器状态;
- 处理按键输入,实现温度阈值的修改;
- 将温度数据及阈值通过蓝牙模块发送至APP。
#include <reg52.h>
#include "ds18b20.h"
#include "lcd1602.h"
#include "bluetooth.h"sbit Relay_Heat = P1^0;
sbit Relay_Cool = P1^1;
sbit Buzzer = P1^2;float temp, temp_upper=30.0, temp_lower=20.0;
unsigned int alert_timer = 0;void main() {System_Init();while(1) {temp = DS18B20_Read();LCD_Display(temp, temp_upper, temp_lower);Control_Temperature(temp);Bluetooth_Send(temp, temp_upper, temp_lower);Key_Scan();}
}
3.2 温度控制程序
根据温度值与阈值比较,控制加热或制冷继电器及报警蜂鸣器。
void Control_Temperature(float t) {if(t > temp_upper) {Relay_Cool = 1;Relay_Heat = 0;alert_timer++;if(alert_timer > 60000) Buzzer = 1; // 1分钟超时报警} else if(t < temp_lower) {Relay_Heat = 1;Relay_Cool = 0;alert_timer++;if(alert_timer > 60000) Buzzer = 1;} else {Relay_Heat = 0;Relay_Cool = 0;Buzzer = 0;alert_timer = 0;}
}
3.3 按键扫描程序
按键扫描用于温度阈值设置。
void Key_Scan() {if(SET_KEY == 0) { Enter_Set_Mode(); }if(UP_KEY == 0) { temp_upper++; temp_lower++; }if(DOWN_KEY == 0) { temp_upper--; temp_lower--; }
}
3.4 蓝牙通信程序
蓝牙模块通过串口通信将数据发送至手机APP,同时接收来自APP的指令更新阈值。
void Bluetooth_Send(float t, float upper, float lower) {UART_Send("Temp:");UART_SendFloat(t);UART_Send(" Upper:");UART_SendFloat(upper);UART_Send(" Lower:");UART_SendFloat(lower);
}
4. 总结
本设计通过STC89C52单片机、DS18B20温度传感器、继电器、蜂鸣器、LCD1602液晶显示和蓝牙模块的有机结合,实现了恒温箱的智能温控系统。系统不仅能够实时采集温度、自动控制加热或制冷装置,还能在温度异常时提供声光报警,并通过蓝牙模块实现远程监控和控制。
该设计体现了单片机在环境控制、自动调节与远程通信方面的应用价值,为智能家居、实验恒温箱以及温控自动化提供了可靠的解决方案,同时也为学习者提供了单片机综合应用、传感器数据处理、继电器控制和无线通信的实践案例。