一. 系统概述
智能水壶系统以STM32单片机作为核心控制单元,实现智能温控和水位管理。其主要功能包括:
- 温度采集与显示:系统使用DS18B20温度传感器实时监测水温,并通过OLED显示屏将数据实时展示。
- 温度阈值设置与控制:用户可以通过按键设置所需的温度阈值。当水温低于设定值时,绿灯亮起且加热继电器关闭;当水温达到阈值时,红灯亮起,切断加热电源。
- 水位监测与控制:利用水位检测模块持续监控水位。当水位低于预定值时,黄灯点亮,并启动供水电机;当水位达到设定水平时,供水停止,黄灯熄灭。
二. 电路设计
电路图通过Altium Designer进行详细设计,主要包含以下几个部分:
- 系统控制核心采用STM32F103C8T6单片机的最小系统;
- 利用单总线通信接口连接DS18B20传感器,实现温度数据采集;
- 使用电阻式水位传感器,配以铜制水位感应板,其模拟信号接入单片机的模拟输入端;
- 数据通过0.96寸OLED12864显示,采用IIC总线与单片机进行交互;
- 通过独立按键进行温度阈值设置及加水、加热的控制;
- 继电器用于控制加热和供水的操作,完成水壶的智能调控。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关模块资料
************************************************/
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(115200);
KEY1_Init();
Led0_init();
Led1_init();
Adc_Init();
Relay_init();
OLED_Init(); //OLED初始化
while(DS18B20_Init()){}
OLED_CLS(); //OLED清屏
OLED_ShowCN(32,2,0); //小常硬件
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
delay_ms(100);
OLED_CLS();
// /*******显示汉字**********/
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,40);
OLED_ShowCN(0+16,2,41);
OLED_ShowCN(0,4,42);
OLED_ShowCN(0+16,4,43);
// Beep=1;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容
24-32-02