基于单片机的热水器节能控制系统

基于单片机的热水器节能控制系统设计

热水器能耗在家庭用电中占据可观比例,传统机型以固定恒温器运行,存在加热效率低、待机时间长等问题。本文设计一种以 STM32F103C8T6 单片机为核心的热水器节能控制系统,整合 DS18B20 数字温度采集、SR-01 电阻式水位检测、OLED12864 本地显示、SRD-05VDC-SL-C 继电器控制输出,并支持自动 / 手动两种工作模式,用以根据实时水位与水温自动启停加水、加热动作。

一、系统功能总览

功能编号 功能名称 说明
F1 温度采集 DS18B20 单总线数字温度
F2 水位采集 SR-01 + ADC 采集液位信号
F3 本地显示 OLED12864 显示温度、水位、模式
F4 自动模式 阈值判断自动加水 / 加热
F5 手动模式 按键切换加水 / 加热单独控制
F6 继电器控制 SRD-05VDC-SL-C 控制加水阀与加热器
F7 报警提示 异常状态蜂鸣器报警

二、核心模块选型对比

2.1 主控模块选型

方案 型号 主频 备注
方案 1 STM32F103C8T6 72 MHz 资源适中、生态成熟
方案 2 NXP LPC1768 120 MHz 资源多但价格高

选择方案 1:综合考虑性能与开发资源,STM32 系列是首选。

2.2 温度模块选型

方案 型号 量程 输出
方案 1 LM35 -55~150 ℃ 模拟
方案 2 DS18B20 -55~125 ℃ 单总线数字

选择方案 2:DS18B20 单总线数字输出分辨率可达 12 位,简化布线。

2.3 水位模块选型

方案 模块 原理 量程
方案 1 SR-01 电阻式 接触液体电阻变化 0~10 cm
方案 2 HSC-1000G 压力式 液柱压力 0~50 m

选择方案 1:热水器水箱量程需求较小,SR-01 满足低成本要求。

2.4 显示模块选型

方案 模块 接口
方案 1 OLED12864(I2C) 显示清晰、占用资源少
方案 2 ST7735 TFT 彩色但占较多 IO

选择方案 1:文本与图标显示清晰,且只占用两根 IO。

三、系统接线总表

模块 引脚 单片机端 备注
DS18B20 VCC/GND/DQ 3.3 V / GND / PA1 4.7 kΩ 上拉
SR-01 VCC/GND/S 5 V / GND / PA0(ADC) 分压
OLED12864 VCC/GND/SCL/SDA 3.3 V / GND / PB6/PB7 I2C
继电器 ×2 IN/VCC/GND PB0、PB1 / 5 V / GND 加水阀 / 加热器
按键 ×3 一端/另一端 PA3/PA4/PA5 / GND 加水 / 加热 / 模式切换
蜂鸣器 +/- PB5 / GND 三极管驱动

四、系统软件设计

4.1 主程序流程

复制代码
int main(void)
{
    SystemInit();
    DS18B20_Init();
    SR01_Init();
    OLED_Init();
    Relay_Init();
    Key_Init();
    Beep_Init();

    while (1)
    {
        float temp = DS18B20_Read();
        u16   level = SR01_Read();

        if (Mode == AUTO)
        {
            if (level < LEVEL_LO) Relay_OnWater();
            if (temp  < TEMP_LO)  Relay_OnHeat();
            if (level >= LEVEL_HI) Relay_OffWater();
            if (temp  >= TEMP_HI)  Relay_OffHeat();
        }
        else if (Mode == MANUAL)
        {
            if (Key1_Pressed()) Relay_ToggleWater();
            if (Key2_Pressed()) Relay_ToggleHeat();
        }
        OLED_ShowAll(temp, level, Mode);
        delay_ms(500);
    }
}

4.2 DS18B20 单总线协议

主机拉低 480 μs → 等待 60~240 μs 响应 → 发送 0x44 启动温度转换 → 延时 750 ms → 发送 0xBE 读 12 位温度数据 → 按公式转换为摄氏度。

4.3 SR-01 水位读取

ADC 通道读取 10 次取平均,转换为百分比显示;对应水位的百分比与真实水位值成线性关系。

4.4 继电器驱动

继电器线包经 1 kΩ 限流电阻接单片机 IO,公共端 COM 接负载电源,常开端 NO 接电器设备。

五、系统实现与测试

5.1 硬件焊接与测试

完成水温、水位、OLED、继电器与蜂鸣器的接线,使用万用表验证无短路后上电。手动模式下按 K1、K2 验证继电器动作。

5.2 软件调试

Keil 5 + ST-Link,烧录后通过 OLED 与串口日志查看 DS18B20 与 SR-01 的返回值。

5.3 功能测试结果

测试项目 操作 结果
温度采集 室温与电子温度计比对 偏差 ≤ ±1 ℃
水位采集 注入 3 档水位 显示与实际一致
自动模式 水温与水位低于阈值 自动启动加水 / 加热
手动模式 按键 K1/K2 继电器按指令开 / 关
显示刷新 缓慢注水观察 实时变化无残影

六、总结

本文基于 STM32F103C8T6 设计了一种节能热水器控制系统,整合 DS18B20、SR-01、OLED 与继电器,实现了水温与水位的自动监测、控制与显示。系统具备自动 / 手动两种模式,硬件成本低、控制策略简洁,可为家庭与小型商业热水场景提供节能管理原型,同时也适合作为嵌入式物联网课程的综合实践案例。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式

相关推荐
数字新视界7 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
HQB20268 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程
不悔哥9 小时前
开源LineageOS:旧手机刷上开源系统
嵌入式硬件·智能手机·开源
服务器硬件项目经理9 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
一次调频AGCAVC10 小时前
一次调频系统控制柜的组成及一次调频装置主机功能详述
人工智能·嵌入式硬件
金色光环10 小时前
【DSP学习】C2000_PWM中断程序_笔记
笔记·单片机·学习
智购科技智能售货柜10 小时前
顾客已经关门,视觉售货柜还在处理旧画面:延迟积压怎么查?~YH
python·单片机·嵌入式硬件·物联网·eclipse
糖糖单片机设计10 小时前
基于 STM32 的智能电蚊香控制系统
stm32·单片机·嵌入式硬件
zhangrelay12 小时前
Arduino-MEGA-ESP单片机理论课笔记-01入门-02硬件-03开发环境-2026
笔记·单片机·嵌入式硬件·学习·机器人