该项目应用于家庭或办公场景中的智能饮水设备领域。用户可通过设备上的物理按键或手机微信小程序设定茶饮温度,系统自动加热并维持恒温,支持白开水、咖啡、花茶等多种茶饮模式,满足不同饮品对水温的精细化需求,同时具备防干烧、童锁等安全保障功能,实现安全、便捷、智能化的饮水体验。
点击空白处退出提示
该项目应用于家庭或办公场景中的智能饮水设备领域。用户可通过设备上的物理按键或手机微信小程序设定茶饮温度,系统自动加热并维持恒温,支持白开水、咖啡、花茶等多种茶饮模式,满足不同饮品对水温的精细化需求,同时具备防干烧、童锁等安全保障功能,实现安全、便捷、智能化的饮水体验。
显示与交互:搭载 128×64 OLED 中文显示屏,实时显示当前水温、目标温度、茶饮模式、加热状态、预约倒计时、童锁状态等信息;配备 5 个物理按键(温度+/-、模式切换、确认、童锁),支持 EXTI 中断驱动按键消抖与长按解锁机制。
温控系统:采用 DS18B20 高精度数字温度传感器(12 位精度,0.0625°C 分辨率)实时采集水温,结合滑动窗口滤波算法(5 样本中值平均)滤除跳变,PID-like 策略控制继电器通断实现恒温加热,温差控制在合理范围。
多模式茶饮:预设白开水(≈100°C)、咖啡(≈90°C)、花茶(≈80°C)三种茶饮模式,另支持自定义模式(30°C~100°C 任意设定)。
安全保护:ADC 水位检测 + 滞回比较(阈值 500/700)实现防干烧保护,连续无水 2 秒自动报警并切断加热;童锁功能防止儿童误触,长按 300ms 方可解锁;有源蜂鸣器提供按键反馈和异常报警。
云端连接:ESP-01S WiFi 模块通过 MQTT 协议接入百度云天工 IoT 平台,支持微信小程序远程下发指令(设定温度、切换模式、童锁控制、预约加热)和实时状态上报(水温、水位、模式、童锁状态等),数据变化时才上报以节省流量。
掉电记忆:设定温度和茶饮模式写入 MCU 内部 Flash 最后一页,带 CRC16 校验,掉电后自动恢复;设置变更后延时 2 秒写入,减少 Flash 擦写次数。
定时预约:支持预约倒计时功能,到达预约时间后自动加热至设定温度。
技术栈:STM32F103C8T6(Cortex-M3)+ STM32 标准外设库 V3.6.0 + Keil MDK V5 开发环境,外设覆盖 GPIO、EXTI、ADC、Timer、USART、I2C(软件模拟)、1-Wire(DS18B20)、内部 Flash 读写。
技术亮点:
1. 非阻塞温度采集:DS18B20 采用状态机架构,在后台启动 750ms 温度转换周期,主循环不受阻塞,保证了 UI 刷新和 WiFi 通信的实时性。
2. 滑动窗口滤波:5 样本中值平均算法有效消除温度传感器的随机跳变,提升控温精度。
3. 防干烧滞回比较:ADC 水位检测使用双阈值(500/700)滞回比较 + 2 秒确认延时,有效防止因水面晃动导致的误触发。
4. Flash 智能存储策略:CRC16 校验 + 2 秒延时写入机制,兼顾数据可靠性和 Flash 使用寿命(Flash 仅 1 万次擦写寿命)。
5. MQTT 变化上报:仅在目标温度、模式、水位等关键数据发生实际变化时才推送 MQTT 消息,避免无效通信。
6. 模块化驱动架构:HARDWARE/Modules/SYSTEM 三层驱动分离,每个外设模块独立封装 .c/.h,代码复用性强,便于移植到 STM32 其他型号或 MM32 替代芯片(appcode/ 目录含 MM32 移植参考)。
7. 双串口通信:USART1 用于调试日志输出(printf),USART2 专用于 ESP8266 AT 指令通信,物理隔离避免干扰。



评论