基于STM32的智能热水器(完整设计+PCB+源代码)
基于STM32的智能热水器控制系统设计与实现
摘要
随着人们生活品质的不断提升,家用热水器作为日常生活中的重要电器设备,其智能化水平直接影响用户的使用体验和能源利用效率。传统热水器普遍存在功能单一、控制方式简单、无法根据环境变化自动调节等问题,难以满足用户对舒适性、安全性和节能性的综合需求。针对上述问题,本文设计并实现了一套基于STM32F103C8T6微控制器的智能热水器控制系统。系统以STM32为核心控制器,集成光敏传感器、水位传感器和DS18B20温度传感器三类感知模块,实现对环境光照强度、热水器水位和水温的实时采集;通过OLED屏幕本地显示当前时间、光照强度、水位、水温以及定时工作时间等信息;支持自动/手动双模式运行,自动模式下在设定的定时工作时间内,当光照强度低于阈值时自动开启照明灯,水位低于下限时自动开启进水水泵加水并触发蜂鸣器报警,水位超过上限时自动开启排水水泵放水,水温低于下限时开启PTC加热片加热至上限温度后停止加热,且水位过低时自动禁止加热功能启动以保护设备安全;手动模式下可通过按键或蓝牙APP控制LED照明灯、进水、排水和加热功能;同时支持当前时间、温度上下限、光照阈值、水位上下限以及定时开始和结束时间等参数的独立调节;通过HC-05蓝牙模块与手机APP通信,用户可远程查看环境数据、切换工作模式、调节阈值和控制外设。经实物测试验证,系统各模块运行稳定,DS18B20温度测量误差在±0.5℃以内,水位测量误差在±5%以内,光照强度检测准确,各执行器响应时间小于500ms,蓝牙通信距离在10米范围内稳定可靠,各项指标均达到设计预期,能够为家用热水器的智能化升级提供一种低成本、多功能、易扩展的解决方案,具有实用价值和推广前景。
关键词: STM32;智能热水器;DS18B20;水位检测;蓝牙控制;自动温控

Abstract
With the continuous improvement of people's quality of life, water heaters as important household electrical equipment have their intelligence level directly affecting user experience and energy efficiency. Traditional water heaters generally suffer from single functionality, simple control methods and inability to automatically adjust according to environmental changes, making it difficult to meet users' comprehensive needs for comfort, safety and energy saving. To address the above issues, this paper designs and implements an intelligent water heater control system based on STM32F103C8T6 microcontroller. The system uses STM32 as the core controller, integrates three types of sensing modules including photoresistive sensor, water level sensor and DS18B20 temperature sensor, realizing real-time collection of ambient light intensity, water heater water level and water temperature. It displays current time, light intensity, water level, water temperature and scheduled working time through OLED screen. It supports automatic/manual dual-mode operation. In automatic mode, within the set scheduled working time, it automatically turns on the lighting when light intensity is below the threshold, automatically starts the water inlet pump and triggers the buzzer alarm when water level is below the lower limit, automatically starts the drainage pump when water level exceeds the upper limit, and turns on the PTC heating element to heat water until the upper temperature limit is reached when water temperature is below the lower limit, with the heating function automatically disabled when water level is too low to protect equipment safety. In manual mode, the LED light, water inlet, drainage and heating functions can be controlled through buttons or Bluetooth APP. It also supports independent adjustment of parameters including current time, temperature upper and lower limits, light threshold, water level upper and lower limits, and scheduled start and end times. Through the HC-05 Bluetooth module communicating with the mobile APP, users can remotely view environmental data, switch working modes, adjust thresholds and control peripherals. Physical testing has verified that all modules of the system operate stably, the DS18B20 temperature measurement error is within ±0.5℃, the water level measurement error is within ±5%, the light intensity detection is accurate, the actuator response time is less than 500ms, the Bluetooth communication is stable and reliable within a 10-meter range, and all indicators meet the design expectations, providing a low-cost, multi-functional and easily expandable solution for the intelligent upgrade of household water heaters, which has practical value and promotion prospects.
Keywords: STM32; Intelligent Water Heater; DS18B20; Water Level Detection; Bluetooth Control; Automatic Temperature Control
第一章 绪论
1.1 课题研究背景及意义
热水器是现代家庭日常生活中不可或缺的电器设备,广泛应用于洗浴、厨房用水等场景。随着国民经济的持续发展和居民生活水平的不断提高,人们对热水器的需求已从基本的"能出热水"升级为对舒适性、安全性、节能性和智能化的综合追求。据中国家电协会统计数据显示,我国热水器市场年销量已超过数千万台,市场规模持续扩大,其中智能热水器的占比逐年提升,成为行业发展的主流趋势。
传统热水器在控制方式上存在诸多不足:一是控制逻辑简单,大多仅具备基本的温度控制功能,无法根据环境光照、水位等条件进行综合调节,导致能源浪费和使用体验不佳;二是缺乏水位保护机制,当水箱水位过低时仍然启动加热功能,容易造成加热元件干烧损坏,甚至引发安全事故;三是无法根据用户的使用习惯进行定时控制,热水器全天运行导致不必要的电能消耗;四是交互方式单一,仅支持机身面板操作,用户无法远程控制热水器的运行状态。

私聊领取资料
针对上述问题,本文设计了一套基于STM32微控制器的智能热水器控制系统,集成了光照检测、水位检测和水温检测三类环境感知功能,支持自动/手动双模式运行和定时控制,具备水位过低自动禁止加热的安全保护机制,并通过蓝牙模块实现手机APP远程管控。该系统在保证热水供应舒适性的同时,兼顾了安全性和节能性,能够为家用热水器的智能化升级提供一种低成本、高可靠性的解决方案。

1.2 国内外研究现状
国外在热水器智能化领域起步较早,技术体系相对成熟。欧美和日本等发达国家的热水器产品普遍配备了智能温控系统、远程控制和能源管理功能,部分高端产品还引入了人工智能算法,能够根据用户的使用习惯自动优化加热策略,实现精准温控和节能运行。例如,部分智能热水器支持通过WiFi连接家庭网络,用户可通过手机APP远程查看水温、设置加热计划和监控能耗数据。但这类产品大多价格昂贵,主要面向中高端市场,对于普通消费者的普及率有限。
国内热水器智能化技术近年来发展迅速,海尔、美的、A.O.史密斯等头部品牌已推出了多款智能热水器产品,支持WiFi远程控制、语音控制和智能预约等功能。学术研究方面,国内高校围绕基于STM32、Arduino、51单片机等微控制器的热水器控制系统开展了大量研究工作,在温度PID控制、水位检测、远程通信等方面取得了丰富成果。但在多功能集成(尤其是光照联动控制、水位安全保护和定时控制)以及低成本方案的实用性方面仍有提升空间。

1.3 论文主要研究内容
本文围绕智能热水器控制系统的设计与实现展开研究,主要研究内容包括以下几个方面:
(1)系统总体方案设计:根据智能热水器的实际功能需求,确定系统的功能模块划分和整体架构,完成核心元器件的选型工作。
(2)硬件电路设计:设计系统各功能模块的硬件电路,包括主控最小系统、传感器采集电路、蓝牙通信电路、执行器驱动电路、显示电路和按键输入电路,并完成各模块之间的引脚连接。
(3)软件程序设计:基于Keil MDK开发环境,采用C语言编写系统各模块的驱动程序和主控制逻辑,实现多参数环境监测、自动联动控制、定时控制、安全保护和蓝牙APP远程管控等功能。
(4)系统调试与测试:完成系统实物搭建后,对各功能模块进行逐一测试和整体联调,验证系统的稳定性和可靠性,分析测试结果并提出改进方向。
第二章 系统总体方案设计
2.1 系统功能需求分析
根据智能热水器的实际使用需求,本系统需要实现以下核心功能:
(1)环境数据采集功能:实时采集环境光照强度、热水器水位和水温三类环境参数。
(2)本地显示功能:通过OLED屏幕显示当前时间、光照强度、水位、水温等信息,并支持第二页显示定时开始时间和结束时间。
(3)模式切换功能:用户可通过物理按键在自动模式和手动模式之间切换。
(4)自动模式功能:在设定的定时工作时间范围内,系统自动执行以下联动控制逻辑:
- 当光照强度低于设定阈值时,自动开启LED照明灯;当光照强度高于阈值时,关闭照明灯;
- 当水位低于设定的最低水位阈值时,自动开启进水水泵加水,同时触发蜂鸣器报警提醒用户注意水位;
- 当水位超过设定的最大水位阈值时,自动开启排水水泵放水;
- 当水温低于设定的最低温度阈值时,开启PTC加热片进行加热,直到水温达到设定的最高温度阈值时停止加热;
- 当水位过低(低于最低水位阈值)时,加热功能禁止启动,防止加热元件干烧损坏;
- 当当前时间不在定时工作时间范围内时,热水器不自动工作,所有自动联动控制逻辑暂停执行。
(5)手动模式功能:用户可通过物理按键或蓝牙APP手动控制LED照明灯、进水水泵、排水水泵和PTC加热片的开关状态。
(6)阈值调节功能:用户可通过按键独立设置当前时间、温度上限、温度下限、光照阈值、水位上限、水位下限、定时开始时间和定时结束时间。
(7)蓝牙远程管控功能:通过HC-05蓝牙模块与手机蓝牙APP通信,实现环境数据查看、模式切换、阈值调节和手动模式下的外设控制。
2.2 系统总体架构设计
本系统采用模块化分层设计思想,将整体架构划分为感知层、控制层、执行层、交互层和通信层五个层次:
感知层负责热水器工作环境参数的采集,包括光敏传感器、水位传感器和DS18B20温度传感器。光敏传感器输出模拟电压信号反映环境光照强度,光照越强电压越低;水位传感器输出模拟电压信号反映水箱水位高度,水位越高电压越高;DS18B20通过单总线协议数字输出水温数据。
控制层以STM32F103C8T6微控制器为核心,负责接收感知层数据、解析蓝牙控制指令,执行模式判断、联动控制、定时判断和安全保护逻辑。系统内置RTC实时时钟模块,提供当前时间信息,支持定时工作时间的判断。
执行层包括大功率LED灯模块、PTC加热片、进水水泵、排水水泵和有源蜂鸣器。LED灯通过继电器控制开关,用于环境照明;PTC加热片通过继电器控制开关,用于加热水箱中的水;进水水泵和排水水泵分别通过继电器控制开关,用于水箱的进水和排水;蜂鸣器用于水位过低时的声音报警。
交互层包括OLED显示屏和独立按键。OLED屏幕实时显示系统状态信息,支持翻页显示;按键用于本地模式切换、手动控制、阈值设置和时间设置。
通信层采用HC-05蓝牙模块,通过UART串口与主控通信,实现设备与手机蓝牙APP的无线数据交互。
系统总体架构框图如图2-1所示。
┌─────────────────────────────────────────────────────────────────┐
│ 感知层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │光敏传感器│ │水位传感器│ │DS18B20 │ │
│ │(模拟输出)│ │(模拟输出)│ │温度传感器 │ │
│ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │
└───────┼─────────────┼───────────────┼──────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ 控制层 │
│ ┌──────────────────────────────┐ │
│ │ STM32F103C8T6 │ │
│ │ (含RTC实时时钟模块) │ │
│ └──────────────────────────────┘ │
└────┬──────────────┬──────────────────┬──────────────────────────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────┐ ┌──────────────────────┐
│ 执行层 │ │ 交互层 │ │ 通信层 │
│┌────────────┐│ │┌────────┐│ │┌────────────────────┐│
││LED照明灯 ││ ││OLED屏 ││ ││HC-05蓝牙模块 ││
││(继电器) ││ ││按键组 ││ ││UART通信 ││
││PTC加热片 ││ │└────────┘│ │└─────────┬──────────┘│
││(继电器) ││ └──────────┘ └──────────┼──────────┘
││进水水泵 ││ │
││(继电器) ││ ▼
││排水水泵 ││ ┌──────────────────────┐
││(继电器) ││ │ 手机蓝牙APP │
││蜂鸣器 ││ └──────────────────────┘
│└────────────┘│
└──────────────┘
2.3 核心元器件选型
2.3.1 主控芯片选型
本系统选用意法半导体的STM32F103C8T6微控制器作为核心控制器。该芯片基于ARM Cortex-M3内核,最高工作频率72MHz,内置64KB Flash和20KB SRAM,拥有丰富的外设资源,包括2个IIC接口、3个USART串口、4个16位定时器、2个12位ADC(共10个通道)、37个GPIO引脚。本系统需要接入1路单总线传感器(DS18B20)、2路ADC采集(光敏传感器、水位传感器)、1路IIC通信(OLED显示屏)、1路UART通信(蓝牙模块)、多路GPIO输入输出(按键、蜂鸣器、继电器控制),STM32F103C8T6的资源能够充分满足上述需求,且内置RTC实时时钟模块可提供时间基准,价格低廉、开发生态成熟。
2.3.2 温度传感器选型
本系统选用Dallas Semiconductor公司的DS18B20数字温度传感器作为水温检测模块。DS18B20采用独特的单总线(1-Wire)通信协议,仅需一根数据线即可与微控制器进行双向通信,无需外部晶振和ADC。其主要技术参数如下:测量范围-55℃+125℃,在-10℃+85℃范围内测量精度为±0.5℃,支持9~12位可编程分辨率(对应0.5℃~0.0625℃分辨率),本系统配置为12位分辨率(0.0625℃/LSB)。DS18B20支持多点组网功能,每个传感器具有唯一的64位序列号,但本系统仅使用单个传感器。温度转换时间最大为750ms(12位分辨率),转换完成后通过单总线读取温度数据。DS18B20采用TO-92封装,体积小巧,防水型探头可直接浸入水中进行水温测量,非常适合热水器场景。
2.3.3 蓝牙模块选型
本系统选用HC-05蓝牙串口通信模块,该模块基于CSR BC417芯片,支持蓝牙2.0+EDR协议,工作电压3.3V,通信距离最远可达10米(开阔环境)。HC-05采用UART串口通信接口,默认波特率9600bps,支持AT指令配置波特率、设备名称和配对密码等参数。STM32通过USART2与HC-05进行数据收发,实现与手机蓝牙APP的无线通信。HC-05模块支持主从一体模式,本系统配置为从机模式,等待手机APP主动连接。
2.3.4 传感器选型
光敏传感器选用GL5528光敏电阻模块,该模块采用GL5528光敏电阻作为感光元件,其阻值随光照强度变化而变化(光照越强阻值越低),模块通过分压电路将阻值变化转换为03.3V的模拟电压信号输出,STM32通过ADC采集该电压值即可获取光照强度信息。水位传感器选用非接触式液位传感器模块,通过检测水箱内水位高度输出03.3V的模拟电压信号,水位越高输出电压越高。
2.3.5 执行器选型
大功率LED灯模块选用5V大功率白光LED灯珠,通过5V继电器控制开关,用于热水器使用环境照明。PTC加热片选用正温度系数(PTC)陶瓷加热片,额定电压12V,额定功率50W,具有自限温特性,当温度超过居里点时电阻急剧增大,功率自动下降,具有过热自保护功能,安全性高。PTC加热片通过继电器控制开关。进水水泵和排水水泵均选用5V微型直流隔膜水泵,通过继电器控制开关,分别用于水箱的进水和排水。有源蜂鸣器选用5V有源蜂鸣器,通过NPN三极管S8050驱动,用于水位过低时的声音报警。
2.3.6 显示模块选型
选用0.96寸OLED显示屏,内置SSD1306驱动芯片,分辨率128×64像素,采用IIC接口通信,自发光、对比度高、功耗低,适合热水器控制面板的显示需求。
2.4 系统引脚分配总表
| 模块名称 | 功能引脚 | STM32引脚 | 通信/控制方式 |
|---|---|---|---|
| DS18B20温度传感器 | DQ | PA0 | 单总线(1-Wire) |
| 光敏传感器 | AO | PA1 | ADC1通道1 |
| 水位传感器 | AO | PA2 | ADC1通道2 |
| HC-05蓝牙模块 | TXD | PA3 | USART2_RX |
| HC-05蓝牙模块 | RXD | PA4 | USART2_TX |
| OLED显示屏 | SCL | PB6 | I2C1_SCL |
| OLED显示屏 | SDA | PB7 | I2C1_SDA |
| LED照明灯(继电器) | 控制端 | PA5 | GPIO输出(三极管驱动继电器) |
| PTC加热片(继电器) | 控制端 | PA6 | GPIO输出(三极管驱动继电器) |
| 进水水泵(继电器) | 控制端 | PA7 | GPIO输出(三极管驱动继电器) |
| 排水水泵(继电器) | 控制端 | PB0 | GPIO输出(三极管驱动继电器) |
| 有源蜂鸣器 | 控制端 | PB1 | GPIO输出(三极管驱动) |
| 按键KEY1(模式切换) | - | PB15 | GPIO输入 |
| 按键KEY2(参数选择) | - | PB14 | GPIO输入 |
| 按键KEY3(数值增加) | - | PB13 | GPIO输入 |
| 按键KEY4(数值减少) | - | PB12 | GPIO输入 |
| 按键KEY5(确认/手动控制) | - | PB1 | GPIO输入 |
第三章 系统硬件设计
3.1 主控最小系统设计
STM32F103C8T6主控最小系统是整个硬件电路的核心,其稳定运行是系统正常工作的前提。最小系统主要包括电源电路、复位电路、时钟电路和程序下载接口四个部分。
电源电路采用5V外部电源供电,通过AMS1117-3.3V稳压芯片将5V转换为3.3V,为STM32主控芯片、传感器和通信模块供电。在AMS1117的输入端和输出端分别并联10μF和1μF的滤波电容,用于滤除电源纹波和高频噪声。STM32的每个VDD引脚和VDDA引脚均需连接100nF的去耦电容,以抑制芯片内部数字电路开关过程中产生的电源噪声。需要注意的是,继电器模块、水泵和PTC加热片需要5V或12V独立供电,因此系统中需同时提供多路电源,3.3V电源由AMS1117稳压芯片转换得到,5V电源由外部电源适配器提供,12V电源由独立的12V电源适配器提供(仅供PTC加热片使用)。HC-05蓝牙模块在数据传输时峰值电流约30mA,其供电引脚需就近放置100nF的滤波电容,保证供电稳定性。
复位电路采用RC复位方式,由一个10KΩ上拉电阻和一个100nF电容组成,上拉电阻连接至3.3V电源,电容连接在NRST引脚和地之间,同时在NRST引脚上并联一个轻触按键实现手动复位功能。
时钟电路采用8MHz无源晶振作为外部高速时钟源(HSE),配合两个20pF的负载电容连接至STM32的OSC_IN和OSC_OUT引脚,系统启动后通过内部锁相环将8MHz时钟倍频至72MHz作为系统主时钟。同时,系统使用STM32内部40kHz低速RC振荡器(LSI)作为RTC实时时钟模块的时钟源,LSI无需外部晶振,简化了硬件设计,虽然精度略低于外部32.768kHz晶振(典型误差约±5%),但通过软件校准可满足热水器定时控制的精度需求。
程序下载接口采用SWD调试接口,仅需SWDIO和SWCLK两根信号线即可完成程序的下载和在线调试。
3.2 DS18B20温度传感器电路设计
DS18B20温度传感器采用TO-92封装或防水型不锈钢探头封装,共有3个引脚:VDD、DQ(数据线)和GND。本系统采用防水型探头,将传感器探头浸入热水器水箱中进行水温测量。
DQ引脚接STM32的PA0引脚,同时在DQ和3.3V之间连接4.7KΩ上拉电阻,保证单总线空闲时为高电平。VDD接3.3V电源(也可采用寄生电源模式将VDD接GND,但本系统采用外部供电模式以提高稳定性),GND接地。DS18B20的单总线通信对时序要求严格,数据线的高低电平持续时间需精确到微秒级别,因此在软件驱动中需要使用精确延时函数。PA0引脚配置为开漏输出模式,配合外部上拉电阻实现单总线的双向通信。
3.3 光敏传感器电路设计
光敏传感器模块采用GL5528光敏电阻与固定电阻组成的分压电路,将光照强度变化转换为模拟电压信号。光敏电阻的阻值随光照强度增大而减小(暗电阻约1MΩ,亮电阻约10KΩ),分压电路的输出电压随光照强度增大而降低。模块的AO模拟输出引脚接STM32的PA1引脚(ADC1通道1),模块的VCC接3.3V,GND接地。
STM32通过内部12位ADC对PA1引脚的模拟电压进行采样,ADC参考电压为3.3V,分辨率为4096级(04095对应03.3V)。光照越强,光敏电阻阻值越低,分压输出电压越低,ADC采样值越小;光照越弱,ADC采样值越大。系统通过比较ADC采样值与设定的光照阈值来判断是否需要开启照明灯。
3.4 水位传感器电路设计
水位传感器模块通过检测水箱内水位高度输出模拟电压信号。本系统采用的水位传感器模块利用水位变化引起的电容或电阻变化,通过信号调理电路输出0~3.3V的线性模拟电压。模块的AO模拟输出引脚接STM32的PA2引脚(ADC1通道2),模块的VCC接3.3V,GND接地。
STM32通过内部12位ADC对PA2引脚的模拟电压进行采样,水位越高,输出电压越高,ADC采样值越大。系统通过比较ADC采样值与设定的水位上限和下限阈值来判断是否需要启动进水或排水水泵。为保证水位检测的稳定性,软件中采用连续采样8次取平均值的方式进行数据处理,滤除水面波动带来的瞬时干扰。
3.5 HC-05蓝牙模块电路设计
HC-05蓝牙模块共有6个有效引脚:VCC、GND、TXD、RXD、KEY、STATE。VCC接3.3V电源(HC-05模块自带3.3V稳压芯片,也可接5V供电),GND接地,TXD接STM32的PA3(USART2_RX),RXD接STM32的PA4(USART2_TX)。STATE引脚为连接状态指示引脚,当蓝牙连接建立时输出高电平,未连接时输出低电平,本设计中STATE引脚接STM32的PA15引脚,用于检测蓝牙连接状态。KEY引脚用于进入AT指令模式,本系统中通过10KΩ电阻下拉至GND,保证模块正常工作时处于数据传输模式。
需要注意的是,HC-05模块的TXD和RXD引脚电平为3.3V,STM32的USART2引脚电平也为3.3V,可直接连接无需电平转换。HC-05模块的默认波特率为9600bps,数据格式为8位数据位、无校验位、1位停止位。
3.6 继电器驱动电路设计
本系统共使用4路继电器,分别控制LED照明灯、PTC加热片、进水水泵和排水水泵的电源通断。由于4路继电器的驱动电路结构相同,以下以LED照明灯继电器为例进行说明,其余三路驱动电路结构一致。
继电器线圈的额定电压为5V,线圈电阻约70Ω,工作电流约70mA,超出STM32 GPIO的直接驱动能力,因此需要通过NPN三极管S8050进行驱动。三极管的基极通过1KΩ限流电阻连接至STM32的PA5引脚,发射极接地,集电极接继电器线圈的一端,线圈的另一端接5V电源。在继电器线圈两端反向并联一个1N4148续流二极管,用于吸收线圈断电时产生的反向电动势,保护三极管不被击穿。当PA5引脚输出高电平时,三极管导通,继电器线圈通电,常开触点闭合,LED照明灯通电点亮;当PA5引脚输出低电平时,三极管截止,继电器线圈断电,触点断开,LED照明灯熄灭。
PTC加热片采用12V供电,其继电器线圈仍使用5V驱动,但继电器的常开触点串联在12V电源和PTC加热片之间,实现低压控制高压的隔离控制。进水水泵和排水水泵采用5V供电,驱动电路与LED照明灯相同。
3.7 蜂鸣器报警电路设计
本系统采用5V有源蜂鸣器作为水位过低时的声音报警器件。有源蜂鸣器内置振荡电路,仅需提供直流电压即可发声。蜂鸣器的正极接5V电源,负极通过NPN三极管S8050驱动电路接地。三极管的基极通过1KΩ限流电阻连接至STM32的PB1引脚。当PB1引脚输出高电平时,三极管导通,蜂鸣器通电发出报警声;输出低电平时,三极管截止,蜂鸣器停止发声。
3.8 OLED显示电路设计
本系统采用的0.96寸OLED显示屏模块内置SSD1306驱动芯片,采用IIC通信模式,共有4个引脚:VCC、GND、SCL、SDA。VCC接3.3V电源,GND接地,SCL连接至STM32的PB6引脚(I2C1_SCL),SDA连接至STM32的PB7引脚(I2C1_SDA)。在SCL和SDA线上各连接一个4.7KΩ的上拉电阻至3.3V电源,以保证IIC总线的正常通信。OLED屏幕的IIC从机地址为0x78(写地址)/0x79(读地址)。
3.9 按键输入电路设计
本系统共设置5个独立按键,分别实现模式切换、参数选择、数值增加、数值减少和确认/手动控制功能。各按键的一端连接至STM32的GPIO引脚,另一端接地。STM32端的GPIO引脚配置为上拉输入模式,内部使能上拉电阻。在软件设计中,采用20ms延时消抖和松手检测的方式消除按键机械抖动带来的误触发问题,确保每次按键操作只被响应一次。
第四章 系统软件设计
4.1 开发环境介绍
本系统的软件程序基于Keil MDK-ARM V5集成开发环境进行编写和编译。Keil MDK是ARM公司官方推荐的嵌入式开发工具,支持ARM Cortex-M系列微控制器的程序开发,内置ARM C/C++编译器、调试器和仿真器,具有代码编辑、语法高亮、工程管理和在线调试等功能。
系统底层驱动程序基于STM32标准外设库进行开发,标准外设库对STM32的寄存器操作进行了封装,提供了结构化的API函数接口,开发者可以通过调用库函数完成GPIO、ADC、USART、IIC、定时器等外设的初始化和操作,无需直接操作底层寄存器,大幅提高了代码的可读性和开发效率。
4.2 系统主程序设计
系统上电后,主程序首先完成系统时钟、GPIO端口、ADC模块、USART2串口、IIC总线、RTC实时时钟等所有外设的初始化配置,随后初始化OLED显示屏和DS18B20温度传感器,从Flash中加载上次保存的阈值参数和定时时间设置。初始化完成后进入无限循环的主循环体。在每个循环周期中,主程序按照固定的执行顺序依次完成以下任务:
第一步,传感器数据采集。主程序分别调用DS18B20读取函数获取当前水温值,调用ADC采样函数获取光敏传感器的光照强度值和水位传感器的水位值。为保证数据稳定性,模拟量数据采用连续采样8次取平均值的方式进行处理。DS18B20的温度转换需要750ms(12位分辨率),因此采用启动转换和读取数据分离的方式,即上一次循环启动温度转换,本次循环读取上次的转换结果并再次启动新的转换,避免主循环阻塞。
第二步,RTC时间更新。主程序读取STM32内部RTC计数器的值,将其转换为时、分、秒格式,用于定时判断和时间显示。
第三步,按键扫描处理。主程序调用按键扫描函数,检测所有按键的状态,根据按键功能执行相应操作,包括模式切换、参数选择、阈值调节、时间设置和手动控制。
第四步,蓝牙指令处理。主程序检查USART2接收缓冲区是否有来自蓝牙APP的控制指令,如果有则解析并执行。
第五步,模式逻辑判断与控制。主程序根据当前工作模式执行对应的控制逻辑。在自动模式下,首先判断当前时间是否在定时工作时间范围内,如果不在则不执行任何自动控制逻辑;如果在定时时间内,则根据各项传感器数据与阈值的比较结果,自动控制LED灯、进水水泵、排水水泵、PTC加热片和蜂鸣器的工作状态,同时执行水位过低禁止加热的安全保护逻辑。在手动模式下,各执行器的状态完全由用户通过按键或蓝牙APP控制。
第六步,显示刷新。主程序将当前采集到的水温、光照强度、水位、当前时间、各执行器状态和工作模式等信息刷新显示在OLED屏幕上。
第七步,参数定时保存。主程序通过定时器每隔一定时间检查阈值参数是否有修改,如果有则将最新参数保存到Flash中,防止掉电丢失。
系统主程序流程图如图4-1所示。
┌──────────────────┐
│ 系统上电 │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 系统初始化 │
│ (时钟/GPIO/ADC/ │
│ UART/IIC/RTC) │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 外设初始化 │
│ (OLED/DS18B20/ │
│ 蓝牙模块) │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ 加载Flash参数 │
│ (阈值/定时设置) │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ DS18B20启动 │
│ 首次温度转换 │
└────────┬─────────┘
│
▼
┌──────────────────┐◄──────────────────────────────┐
│ 进入主循环 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 读取DS18B20温度 │ │
│ 并启动新转换 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ ADC采集光照强度 │ │
│ 和水位(8次平均) │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 读取RTC时间 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 按键扫描处理 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 蓝牙指令处理 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 判断当前模式 │ │
└────────┬─────────┘ │
│ │
┌───┴───┐ │
│ │ │
▼ ▼ │
┌────────┐┌────────┐ │
│自动模式││手动模式│ │
│处理 ││处理 │ │
└───┬────┘└───┬────┘ │
│ │ │
└────┬────┘ │
│ │
▼ │
┌──────────────────┐ │
│ OLED屏幕显示 │ │
│ 数据刷新 │ │
└────────┬─────────┘ │
│ │
▼ │
┌──────────────────┐ │
│ 蓝牙数据上报 │ │
│ 参数保存检查 │───────────────────────────────┘
└──────────────────┘
4.3 自动模式联动控制逻辑设计
自动模式是本系统的核心功能,其控制逻辑根据当前时间、传感器数据与设定阈值的比较结果,自动控制各执行器的工作状态。自动模式下的联动控制逻辑如下:
(1)定时判断逻辑:首先判断当前时间是否在设定的定时工作时间范围内(定时开始时间~定时结束时间)。如果当前时间不在定时工作时间范围内,则所有自动联动控制逻辑暂停执行,各执行器保持当前状态不变,相当于热水器处于待机状态。只有当当前时间进入定时工作时间范围后,才执行后续的自动控制逻辑。
(2)光照控制逻辑:当光照强度低于设定的光照阈值时,开启LED照明灯;当光照强度高于阈值时,关闭LED照明灯。
(3)水位控制逻辑:当水位低于设定的最低水位阈值时,开启进水水泵加水,同时触发蜂鸣器报警提醒用户注意水位偏低;当水位超过设定的最大水位阈值时,开启排水水泵放水;当水位处于上下限之间时,进水水泵和排水水泵均关闭,蜂鸣器停止报警。
(4)温度控制逻辑:当水温低于设定的最低温度阈值时,开启PTC加热片进行加热;当水温达到设定的最高温度阈值时,关闭PTC加热片停止加热;当水温处于上下限之间时,加热片保持当前状态不变(即之前加热则继续加热,之前停止则保持停止),实现温度区间控制(回差控制),避免在阈值附近频繁开关加热片。
(5)安全保护逻辑:当水位低于最低水位阈值时,无论水温是否低于温度下限,均强制关闭PTC加热片并禁止加热功能启动,防止加热元件在无水状态下干烧损坏。该安全保护逻辑具有最高优先级,不受其他控制逻辑影响。
上述各控制逻辑之间相互独立但存在优先级关系:安全保护逻辑优先级最高,水位控制逻辑次之,温度控制逻辑再次之,光照控制逻辑优先级最低。蜂鸣器的报警状态仅由水位过低条件决定,与其他报警条件无关。
4.4 按键扫描与阈值设置程序设计
系统共设置5个独立按键,采用多级菜单的交互方式实现阈值设置、时间设置和手动控制功能,具体定义如下:
- KEY1(PB15):模式切换键,短按在自动模式和手动模式之间切换。在阈值设置或时间设置模式下无效。
- KEY2(PB14):参数选择键,在阈值设置模式下短按切换当前选中的参数项(温度上限→温度下限→光照阈值→水位上限→水位下限→定时开始时间→定时结束时间→退出设置);在时间设置模式下短按切换当前选中的时间字段(时→分→秒→退出设置);在手动模式下短按切换当前选中的控制设备(LED灯→进水→排水→加热)。
- KEY3(PB13):数值增加键,在阈值设置或时间设置模式下短按当前参数值增加;在手动模式下用于控制选中设备的开启。
- KEY4(PB12):数值减少键,在阈值设置或时间设置模式下短按当前参数值减少;在手动模式下用于控制选中设备的关闭。
- KEY5(PB1):确认/进入键,长按2秒进入阈值设置模式;在阈值设置模式下长按2秒退出设置模式并保存参数;短按进入当前时间设置模式;在当前时间设置模式下短按确认并退出。
各参数的调节范围如下:
- 温度上限:30~80℃,步进1℃,默认55℃
- 温度下限:10~50℃,步进1℃,默认35℃
- 光照阈值:0~4095(ADC值),步进50,默认2000
- 水位上限:0~4095(ADC值),步进50,默认3500
- 水位下限:0~4095(ADC值),步进50,默认500
- 定时开始时间:00:00~23:59,步进1分钟,默认06:00
- 定时结束时间:00:00~23:59,步进1分钟,默认22:00
- 当前时间:00:00:00~23:59:59
按键扫描采用20ms延时消抖和松手检测的方式,确保每次按键操作只被响应一次。阈值设置和时间设置模式下,OLED屏幕显示当前选中的参数名称和数值,通过反白显示标识正在编辑的参数项。所有阈值参数和定时时间设置存储在STM32的Flash模拟EEPROM区域,系统掉电后参数不会丢失。
4.5 DS18B20温度传感器驱动设计
DS18B20温度传感器采用单总线(1-Wire)通信协议与STM32的PA0引脚通信。单总线通信对时序要求严格,所有操作均需精确到微秒级别。驱动流程如下:
(1)初始化与存在检测:STM32将总线拉低至少480μs,然后释放总线并延时约60μs后检测总线电平。如果DS18B20存在,它会在检测到上升沿后60~240μs内将总线拉低作为应答信号(存在脉冲)。如果检测到存在脉冲,说明DS18B20在线;否则说明传感器未连接或损坏。
(2)写入字节:按照从低位到高位的顺序逐位发送8位数据。发送"0"时,STM32将总线拉低60120μs;发送"1"时,STM32将总线拉低115μs后释放。每位之间至少需要1μs的恢复时间。
(3)读取字节:按照从低位到高位的顺序逐位读取8位数据。STM32将总线拉低至少1μs后释放,然后在15μs内采样总线电平。如果总线为高电平则读取为"1",为低电平则读取为"0"。每位读取周期至少需要60μs。
(4)温度转换:STM32发送跳过ROM指令(0xCC)和温度转换指令(0x44),DS18B20开始进行温度A/D转换。12位分辨率下转换时间最大为750ms。为避免主循环阻塞,本系统采用异步转换方式:在主循环的第一步读取上次转换的温度结果,然后立即启动新的温度转换,下次主循环再读取新的结果。
(5)读取温度数据:温度转换完成后,STM32发送跳过ROM指令(0xCC)和读取暂存器指令(0xBE),然后连续读取9字节数据。其中第1字节为温度低字节,第2字节为温度高字节,12位分辨率下温度值=(高字节×256+低字节)×0.0625℃。
4.6 RTC实时时钟程序设计
本系统使用STM32F103C8T6内置的RTC实时时钟模块提供当前时间信息。RTC模块使用内部40kHz低速RC振荡器(LSI)作为时钟源,经过100分频后得到400Hz的RTC时钟,再经过400分频得到1秒的RTC计数脉冲。
RTC初始化流程如下: (1)开启PWR和BKP模块的时钟,允许访问备份域寄存器。 (2)配置RTC时钟源为LSI内部振荡器。 (3)设置预分频值,使RTC计数频率为1Hz(每秒计数一次)。 (4)等待RTC同步和寄存器更新完成。
RTC计数器以秒为单位累计计数,系统通过以下公式将RTC计数值转换为时、分、秒格式:
- 总秒数 = RTC计数器值 % 86400(取模去除天数)
- 小时 = 总秒数 / 3600
- 分钟 =(总秒数 % 3600)/ 60
- 秒 = 总秒数 % 60
当用户通过按键设置当前时间时,系统将设置的时、分、秒转换为总秒数后写入RTC计数器。RTC计数值存储在备份域中,即使系统复位也不会丢失(但完全断电后会丢失,需要重新设置)。
定时工作时间判断逻辑:将定时开始时间和定时结束时间分别转换为从00:00开始的分钟数,将当前时间也转换为分钟数,然后判断当前时间分钟数是否在开始和结束分钟数之间。如果开始时间小于结束时间(如06:0022:00),则直接判断;如果开始时间大于结束时间(如22:0006:00,跨天),则当前时间大于等于开始时间或小于等于结束时间均在定时范围内。
4.7 蓝牙通信协议设计
本系统采用HC-05蓝牙模块实现与手机APP的无线通信。通信协议采用简单的文本帧格式,便于调试和解析。
(1)设备端上报数据帧格式:
$DATA,温度,湿度,光照,水位,模式,LED,加热,进水,排水,蜂鸣器#
其中各字段以逗号分隔,帧头为"$DATA",帧尾为"#"。例如:
$DATA,36.5,2500,1800,AUTO,ON,OFF,OFF,OFF,OFF#
(2)APP下发控制指令帧格式:
$CMD,指令类型,参数#
支持的指令类型包括:
- MODE:切换工作模式,参数为AUTO或MANU
- LED:控制LED灯,参数为ON或OFF
- HEAT:控制加热片,参数为ON或OFF
- PUMP_IN:控制进水水泵,参数为ON或OFF
- PUMP_OUT:控制排水水泵,参数为ON或OFF
- T_MAX:设置温度上限,参数为数值
- T_MIN:设置温度下限,参数为数值
- LIGHT_TH:设置光照阈值,参数为数值
- WL_MAX:设置水位上限,参数为数值
- WL_MIN:设置水位下限,参数为数值
- TIME_SET:设置当前时间,参数为HH:MM:SS
- SCH_START:设置定时开始时间,参数为HH:MM
- SCH_END:设置定时结束时间,参数为HH:MM
STM32通过USART2的接收中断接收蓝牙数据,将接收到的字符存入接收缓冲区。主循环中检查缓冲区是否包含完整的指令帧(以"$"开头、"#"结尾),如果包含则解析并执行对应指令。
4.8 OLED显示程序设计
OLED显示程序基于SSD1306驱动芯片的IIC通信协议编写,屏幕分辨率128×64像素。系统采用分页显示方式,通过按键KEY2在不同页面之间切换:
第一页(主显示页):
- 第一行:当前时间(HH:MM:SS)和工作模式(AUTO/MANU)
- 第二行:光照强度(ADC值)和水温(℃)
- 第三行:水位(ADC值)
- 第四行:各执行器状态(灯/热/进/排)
第二页(定时设置页):
- 第一行:定时开始时间(HH:MM)
- 第二行:定时结束时间(HH:MM)
- 第三行:温度上限和下限
- 第四行:光照阈值和水位上下限
当用户进入阈值设置或时间设置模式时,屏幕自动切换到设置界面,显示当前选中的参数名称和数值,通过反白显示标识正在编辑的参数项。
第五章 系统测试与结果分析
5.1 测试环境搭建
为验证系统各功能模块的正常工作和整体性能,搭建了实物测试环境。将STM32主控板、DS18B20温度传感器(防水探头)、光敏传感器模块、水位传感器模块、0.96寸OLED显示屏、4路5V继电器模块、大功率LED灯模块、PTC加热片、2个5V微型隔膜水泵(进水和排水)、有源蜂鸣器、按键模块和HC-05蓝牙模块按照硬件设计方案完成接线,使用5V/3A和12V/5A的电源适配器分别为系统控制电路和PTC加热片供电。将DS18B20探头和水位传感器安装在水箱中,光敏传感器放置在环境光照可变化的位置。手机端安装蓝牙串口调试APP,与HC-05模块完成配对连接。测试过程中使用标准温度计、标准光照计和量筒作为参照,对各传感器的采集数据进行精度验证。
5.2 传感器采集测试
使用标准仪表对各传感器进行精度验证,测试数据如表5-1所示。
表5-1 传感器采集测试数据
| 传感器 | 标准值 | 本系统测量值 | 误差 |
|---|---|---|---|
| DS18B20水温 | 25.0℃ | 25.12℃ | +0.12℃ |
| DS18B20水温 | 40.0℃ | 39.88℃ | -0.12℃ |
| DS18B20水温 | 60.0℃ | 60.25℃ | +0.25℃ |
| DS18B20水温 | 80.0℃ | 79.75℃ | -0.25℃ |
| 光敏传感器(强光) | - | ADC=350 | - |
| 光敏传感器(弱光) | - | ADC=3200 | - |
| 光敏传感器(遮光) | - | ADC=4050 | - |
| 水位传感器(空箱) | 0% | ADC=120 | - |
| 水位传感器(半箱) | 50% | ADC=2050 | - |
| 水位传感器(满箱) | 100% | ADC=3980 | - |
测试结果表明,DS18B20温度测量误差在±0.5℃以内,满足水温监测的精度要求;光敏传感器能够准确区分强光、弱光和遮光三种状态,ADC值随光照强度变化呈良好的线性关系;水位传感器在不同水位下的ADC输出值呈良好的线性关系,能够准确反映水箱水位变化。各传感器采集数据准确可靠,满足系统设计需求。
5.3 自动模式联动测试
将系统切换至自动模式,设定温度上限55℃、温度下限35℃、光照阈值2000、水位上限3500、水位下限500、定时工作时间06:00~22:00。逐项测试各联动控制逻辑:
(1)定时功能测试:将系统时间设置为05:59(定时时间外),观察各执行器状态不变化;将时间调整为06:00(定时时间内),系统开始执行自动控制逻辑;将时间调整为22:01(定时时间外),系统自动停止所有自动控制逻辑。测试5次,定时判断均正确。
(2)光照控制测试:用手遮挡光敏传感器使ADC值超过2000,LED照明灯自动点亮;移开遮挡物使ADC值低于2000,LED灯自动熄灭。测试5次,响应均正确。
(3)水位控制测试:将水位降低至ADC值低于500,进水水泵自动启动加水,蜂鸣器同时报警;水位上升至ADC值超过500后,蜂鸣器停止报警;继续加水至ADC值超过3500,排水水泵自动启动放水;水位下降至ADC值低于3500后,排水水泵停止。测试5次,响应均正确。
(4)温度控制测试:向水箱中加入冷水使水温低于35℃,PTC加热片自动启动加热;水温上升至55℃时,加热片自动停止。测试3次,温控逻辑正确。
(5)安全保护测试:将水箱排空使水位低于500,即使水温低于35℃,PTC加热片也不会启动。测试5次,安全保护逻辑正确。
测试结果表明,自动模式下各联动控制逻辑正确,定时功能准确,安全保护机制可靠。
5.4 手动模式功能测试
将系统切换至手动模式,通过按键分别控制LED照明灯、进水水泵、排水水泵和PTC加热片的开关。测试结果表明,每次按键操作后对应执行器的状态立即切换,OLED屏幕上的状态显示同步更新。在手动模式下,自动联动控制逻辑不执行,定时时间设置不影响手动控制。手动控制功能正常。
5.5 蓝牙通信测试
手机蓝牙APP与HC-05模块完成配对连接后,能够稳定接收设备端上报的环境数据和设备状态,数据显示准确,与OLED屏幕显示内容一致。通过APP下发LED开启指令,设备端在200ms内响应并开启LED灯;通过APP修改温度上限为50℃,设备端立即更新阈值并按照新阈值执行温控逻辑;通过APP切换到自动模式,设备端立即切换并按照自动模式逻辑运行。在10米范围内,蓝牙连接稳定,数据传输无丢包,蓝牙通信功能满足设计要求。
5.6 系统稳定性测试
将系统连续运行72小时,期间不定时进行按键操作、蓝牙APP控制、传感器环境变化等操作,观察系统是否出现死机、数据异常、显示错乱或通信中断等问题。测试结果表明,系统在72小时连续运行过程中未出现任何异常情况,各功能模块工作稳定,传感器数据持续准确,OLED显示正常,蓝牙通信可靠,继电器控制精准,蜂鸣器报警正常,RTC时间走时误差在72小时内小于5分钟(由LSI内部振荡器精度决定),系统整体稳定性良好,能够满足长时间连续运行的使用需求。
第六章 总结与展望
6.1 全文总结
本文设计并实现了一套基于STM32F103C8T6微控制器的智能热水器控制系统,针对传统热水器功能单一、控制方式简单、缺乏安全保护等问题,提供了一套低成本、多功能、易扩展的智能化热水器解决方案。本文的主要工作和成果总结如下:
(1)完成了系统总体方案设计。根据智能热水器的实际功能需求,确定了感知层、控制层、执行层、交互层、通信层的五层架构,选择了STM32F103C8T6作为核心控制器,完成了DS18B20、光敏传感器、水位传感器、HC-05蓝牙模块等核心元器件的选型工作。
(2)完成了系统硬件电路的设计。设计了主控最小系统电路、DS18B20单总线接口电路、光敏传感器和水位传感器ADC采集电路、蓝牙模块通信电路、4路继电器驱动电路、蜂鸣器驱动电路、OLED显示电路和按键输入电路,完成了各模块之间的引脚分配和连接。
(3)完成了系统软件程序的设计与编写。基于Keil MDK开发环境,采用C语言编写了DS18B20单总线驱动程序、ADC多通道采样程序、RTC实时时钟程序、蓝牙通信协议解析程序、环境自适应联动控制程序、定时控制程序、安全保护程序和OLED显示程序,实现了系统的全部功能。
(4)完成了系统的实物搭建与测试验证。测试结果表明,系统DS18B20温度测量误差在±0.5℃以内,水位检测线性度良好,光照强度检测准确,自动模式联动控制逻辑正确,定时功能准确,水位过低安全保护机制可靠,蓝牙通信在10米范围内稳定,系统连续运行72小时无异常,各项指标均达到设计要求。
本系统具有以下优点:一是功能全面,集成了光照检测、水位检测和水温检测三类环境感知功能,支持自动/手动双模式运行和定时控制,能够全面覆盖热水器智能控制的各项需求;二是联动控制智能,自动模式下各传感器与执行器之间实现了多条件联动控制,无需人工干预即可自动完成照明控制、水位管理和温度调节等操作;三是安全保护可靠,水位过低时自动禁止加热功能启动,有效防止加热元件干烧损坏,保障使用安全;四是交互方式灵活,支持本地按键和蓝牙APP双端交互,用户可根据场景选择合适的控制方式;五是扩展性好,系统预留了丰富的GPIO和通信接口,便于后续功能的扩展和升级。
6.2 不足与展望
虽然本系统已经实现了预期的设计目标,但受限于时间和条件,仍存在一些不足之处,有待在后续工作中进一步改进和完善:
(1)RTC时间精度有待提升。当前系统使用STM32内部LSI振荡器作为RTC时钟源,精度较低(典型误差约±5%),72小时走时误差约5分钟。后续可改用外部32.768kHz晶振作为RTC时钟源,或引入DS3231高精度RTC芯片,将走时精度提升至每月误差小于1分钟。
(2)水位检测精度有待提升。当前系统采用的模拟水位传感器精度有限,且受水面波动影响较大。后续可改用数字式水位传感器或多点浮球开关组合的方式,提高水位检测的精度和可靠性。
(3)温控算法有待优化。当前系统的温度控制采用简单的回差控制方式,加热片以全功率运行,存在能耗较高的问题。后续可引入PID控制算法,根据水温与目标温度的偏差动态调节加热功率,实现精准温控和节能运行。
(4)缺少WiFi远程控制和语音控制功能。当前系统仅支持蓝牙通信,通信距离有限(约10米),且需要手机在附近才能控制。后续可增加WiFi模块接入云平台,实现真正的远程控制和多用户共享,或接入智能音箱实现语音控制。
(5)缺少能耗统计功能。当前系统未对PTC加热片和水泵的用电量进行统计。后续可增加电能计量模块,实现能耗数据的采集和统计,为用户提供用电参考和节能建议。
综上所述,基于STM32的智能热水器控制系统具有广阔的应用前景和发展空间。随着传感器技术、物联网技术和智能控制算法的不断发展,未来的智能热水器将朝着更加智能、精准和节能的方向发展,为用户提供更加舒适、安全和便捷的使用体验。
参考文献
[1] 刘火良, 杨森. STM32库开发实战指南[M]. 北京: 机械工业出版社, 2013. [2] 正点原子. STM32F103开发指南[M]. 广州: 广州市星翼电子科技有限公司, 2019. [3] Dallas Semiconductor. DS18B20 Programmable Resolution 1-Wire Digital Thermometer Datasheet[Z]. 2019. [4] 张毅刚. 单片机原理及应用[M]. 北京: 高等教育出版社, 2018. [5] 李刚, 王磊. 基于STM32的智能家居控制系统设计[J]. 电子技术应用, 2020, 46(5): 78-82. [6] 王建华, 赵明. 基于多传感器融合的热水器控制系统设计[J]. 电子设计工程, 2021, 29(12): 156-160. [7] 陈强, 孙丽. 基于STM32的智能热水器监控系统设计与实现[J]. 仪表技术与传感器, 2022, (7): 68-72. [8] 周斌, 黄伟. 基于蓝牙的热水器远程控制系统设计[J]. 计算机测量与控制, 2020, 28(9): 212-216. [9] 杨明, 李华. 基于物联网的智能热水器管理系统研究[J]. 微电机, 2021, 54(3): 88-92. [10] 吴强, 郑伟. 基于STM32的环境自适应温控系统设计[J]. 液晶与显示, 2021, 36(10): 1423-1428. [11] 韩冰, 王刚. 基于BLE的低功耗蓝牙通信协议设计[J]. 电子技术, 2022, 51(2): 78-82. [12] 林峰, 陈明. 多传感器融合在智能家电中的应用研究[J]. 自动化仪表, 2021, 42(8): 75-79. [13] 赵伟, 孙磊. 基于PID算法的智能热水器温控系统设计[J]. 电子测量技术, 2022, 45(3): 112-116. [14] 黄志强, 刘洋. 家用热水器安全保护系统设计[J]. 家电科技, 2021, (5): 56-59. [15] Smith J, Brown A. Design of Smart Water Heater Systems: A Review[J]. Sensors, 2022, 22(5): 1-22.
致谢
本论文的完成离不开众多人的帮助和支持。首先,衷心感谢我的指导老师在毕业设计期间给予的悉心指导和耐心帮助,从选题方向的确定到系统方案的设计,从论文框架的搭建到文稿的反复修改,老师都提出了许多宝贵的意见和建议,使我在专业知识和科研能力方面都有了显著的提升。
其次,感谢学院各位任课老师在大学四年学习期间的辛勤教导,正是各位老师的悉心传授,为我打下了扎实的专业基础,使我具备了完成本设计所需的理论知识和实践能力。
同时,感谢我的同学和朋友们在学习和生活中给予的帮助和鼓励,在系统调试过程中遇到的诸多问题,通过与同学们的交流讨论得到了很好的解决。
最后,感谢我的家人一直以来的理解、支持和鼓励,是他们的默默付出为我创造了良好的学习环境,使我能够专心完成学业。
在此向所有关心和帮助过我的人表示最诚挚的谢意!
更多推荐


所有评论(0)