基于单片机的智能水杯设计(原理图、仿真、源代码、高质量、15000字)
摘 要
当前日常饮水场景中存在水温调控不精准、水量状态无直观提示、饮水提醒缺失等问题,智能水杯的实用化设计需求日益凸显。STM32F103C8T6单片机凭借高性价比、低功耗及丰富的外设接口优势,成为实现水杯智能化控制的核心载体,为满足精准温控、实时状态显示及定时饮水提醒需求,开展本设计研究。
本研究以STM32F103C8T6最小系统为核心,搭建集成DS18B20水温传感器、水位传感器、OLED显示屏、继电器、LED指示灯及独立按键的智能水杯控制系统。硬件层面完成各模块电路搭建,配置GPIO口实现传感器数据采集、继电器与LED驱动、按键中断响应,利用定时器实现定时功能;软件层面编写传感器数据采集与处理算法,开发OLED显示驱动实现水温/水位实时显示,设计按键控制逻辑,区分自动模式、阈值设置模式、定时模式,并实现定时提醒触发与解除机制。
该设计实现了水温自动调控、水位状态可视化及定时饮水提醒功能,多模式切换适配不同使用场景,以低成本完成核心功能集成,精准满足日常饮水的智能化需求,同时为嵌入式智能便携设备的研发提供了可行的设计思路,具备较好的实用与推广价值。
关键词:STM32F103C8T6;智能水杯;数据采集;模式控制;定时提醒
Abstract
Currently, in daily drinking water scenarios, there are problems such as inaccurate water temperature regulation, lack of intuitive prompts for water volume status, and absence of drinking reminders, making the practical design demand for smart water cups increasingly prominent. The STM32F103C8T6 microcontroller, with its advantages of high cost performance, low power consumption and abundant peripheral interfaces, has become the core carrier for realizing intelligent control of water cups. To meet the needs of precise temperature control, real-time status display and timed drinking reminders, this design research is carried out.
This study takes the STM32F103C8T6 minimum system as the core and builds an intelligent water cup control system integrating DS18B20 water temperature sensor, water level sensor, OLED display, relay, LED indicator lights and independent keys. At the hardware level, the circuit construction of each module is completed, GPIO ports are configured to realize sensor data collection, relay and LED driving, key interrupt response, and timers are used to realize timing functions. At the software level, algorithms for sensor data collection and processing are written, an OLED display driver is developed to realize real-time display of water temperature/water level, and key control logic is designed to distinguish automatic mode, threshold setting mode, timing mode, and realize the trigger and release mechanism of timing reminders.
This design realizes the functions of automatic water temperature regulation, visual water level status and timed drinking reminders. Multi-mode switching adapts to different usage scenarios, completes core function integration at low cost, accurately meets the intelligent needs of daily drinking water, and provides a feasible design idea for the research and development of embedded intelligent portable devices, featuring good practical and promotion value.
Key words: STM32F103C8T6; Smart Water Cup; Data Acquisition; Mode Control; Timed Reminder
目 录
摘 要.................................................................. 3
Abstract................................................................ 4
1 绪论................................................................ 8
1.1 选题背景和意义.................................. 8
1.1.1 选题背景.................................... 8
1.1.2 选题意义.................................... 8
1.2 国内外研究现状.................................. 9
1.2.1 国内研究现状............................ 9
1.2.2 国外研究现状............................ 9
1.3 研究方法............................................ 10
1.4 研究方主要内容................................ 10
2 系统设计方案.............................................. 12
2.1 主要模块方案选择............................ 12
2.1.1 主控芯片方案选择.................. 12
2.1.2 按键模块方案选择.................. 13
2.1.3 显示模块方案选择.................. 13
2.1.4 按键模块方案选择.................. 14
2.2 整体系统框图设计............................ 16
2.3 本章小结............................................ 16
3 系统硬件设计.............................................. 17
3.1 单片机最小系统................................ 17
3.1.1 主控模块电路.......................... 17
3.1.2 晶振电路.................................. 17
3.1.3 复位电路.................................. 18
3.1.4 电源电路.................................. 18
3.2 DS18B20水温传感器电路............... 19
3.3 waterSensor水位传感器电路........... 19
3.3 waterSensor水位传感器电路........... 20
3.4 OLED液晶显示模块电路................ 21
3.5 继电器加热控制电路........................ 21
3.6 LED水位提示电路........................... 22
3.7 独立按键模块电路............................ 22
3.8 本章小结............................................ 23
4 系统软件设计.............................................. 24
4.1 编程软件介绍.................................... 24
4.2 主程序流程设计................................ 24
4.3 独立按键流程设计............................ 25
4.4 温度采集子流程设计........................ 26
4.5 温度采集子流程设计........................ 27
4.6 本章小结............................................ 28
5 实物测试...................................................... 29
5.1 实物整体焊接测试.............................. 29
5.2 核心功能实物测试.............................. 29
5.2.1 水温/水位检测功能测试.......... 30
5.2.3 定时提醒功能测试.................... 31
5.3 本章小结.............................................. 32
致谢.................................................................... 33
参考文献............................................................ 34
1 绪论
1.1 选题背景和意义
1.1.1 选题背景
随着健康生活理念的普及,日常饮水健康与饮水便捷性逐渐成为大众关注的重点,科学饮水、精准控温成为日常饮水场景的核心需求。传统水杯功能单一,仅具备基础的盛水功能,无法实时监测水温与水位状态,用户难以直观掌握杯内水量和水温情况,容易出现水温过低无法饮用、水量不足忘记补充等问题;多数人群因工作、学习繁忙,常常忘记定时饮水,长期以往不利于身体健康,而市面上现有的智能水杯大多价格偏高、功能冗余,部分产品仅具备单一提醒功能,缺乏温控调节、多级水位提示、多模式自主切换等实用功能,难以满足大众对低成本、高实用性智能水杯的需求。
嵌入式单片机技术的快速发展,为小型智能便携设备的研发提供了优质解决方案,STM32系列单片机凭借性价比高、功耗低、外设接口丰富、数据处理能力稳定的优势,广泛应用于各类小型智能控制设备中,适配智能水杯这类体积小巧、功能集成度要求高的产品设计。结合传感器检测技术、液晶显示技术与按键操控技术,能够轻松实现水温水位实时监测、多模式智能控制、定时饮水提醒等核心功能,完全契合民用智能水杯轻量化、实用化、低成本的发展趋势,也让基于STM32单片机的智能水杯设计具备了极强的落地可行性。
1.1.2 选题意义
从现实生活需求来看,本次智能水杯设计针对性解决了传统水杯的诸多痛点,具备重要的实用意义。一方面,通过水温传感器与水位传感器实时采集数据,搭配OLED显示屏直观展示实时参数,配合自动温控加热与多级LED水位提示功能,让用户随时掌握杯内饮水状态,避免饮用凉水、水量不足等问题;另一方面,新增定时饮水提醒功能,可自主设置饮水时间,到点自动提醒,帮助用户养成规律饮水的好习惯,适配学生、办公人群等各类群体的日常饮水需求。
从技术研发与实践意义来看,本设计基于STM32F103C8T6单片机开发,整合传感器数据采集、OLED显示、继电器控制、LED指示灯驱动、多按键模式切换、定时计时等多项嵌入式技术,是单片机原理、传感器技术及嵌入式软件开发的综合实践。设计全程聚焦低成本与实用性,硬件模块易采购、软件逻辑易实现,既适合作为嵌入式技术的实践教学案例,也为后续民用小型智能便携设备的研发提供了参考思路。相较于市面上高价智能水杯,本设计以极低的成本实现核心智能化功能,兼顾实用性与经济性,能够满足大众日常饮水的核心需求,具备较高的市场推广价值与实践应用价值。
1.2 国内外研究现状
1.2.1 国内研究现状
国内针对智能水杯的研究起步较晚,但发展速度较快,整体聚焦民用化、实用化与低成本方向,依托成熟的单片机嵌入式技术,形成了多款贴合国内用户需求的设计方案。在主控芯片选型方面,国内设计大多采用性价比突出的STM32F1系列、51单片机作为核心控制单元,其中STM32F103C8T6因接口丰富、运算速度快、开发难度适中,成为中小型智能水杯设计的主流芯片,能够稳定完成传感器数据处理、外设控制等多项任务。
功能实现层面,国内现有智能水杯研究多集中在基础数据监测与简单提醒功能,多数设计可实现DS18B20水温检测、OLED屏幕显示、定时提醒等基础功能,部分产品融入了蓝牙连接、APP数据同步等拓展功能,但功能冗余且成本偏高;针对温控加热、多级水位联动提示、多模式自主切换的专项研究相对较少,部分设计虽具备温控功能,但缺乏阈值自主设置、自动/手动模式切换的灵活性,按键操控逻辑也较为单一,无法满足用户自主调节的需求。国内高校与科研机构将智能水杯作为单片机实践项目的案例逐渐增多,推动了基础技术的普及,但现有设计普遍存在功能集成度不足、模式切换逻辑不完善、交互体验不佳等问题,针对低成本、全功能实用型智能水杯的优化空间较大。
1.2.2 国外研究现状
国外在智能饮水设备领域的研究起步较早,技术体系相对成熟,核心偏向高端化、智能化与工业级稳定性,主控芯片多选用ESP32、TI系列单片机,注重低功耗优化与长期运行可靠性。国外智能水杯产品功能较为全面,部分高端产品融入了水质检测、饮水量统计、无线充电等功能,人机交互体验优化较好,但产品定价偏高,主要面向高端消费市场,难以普及大众日常使用。
在技术研发方面,国外研究侧重传感器数据采集精度与系统稳定性优化,通过改进数据处理算法,提升水温、水位检测的准确性,同时优化低功耗模式,延长设备续航时间;但针对民用小型智能水杯的简易化操控、低成本集成研究较少,多数设计功能过于复杂,不符合日常便携使用的需求,且缺乏自动温控加热、多级水位灯光提示这类贴合国内用户饮水习惯的功能。此外,国外智能水杯设计大多采用触控操控,按键物理操控的研究较少,对于定时模式、阈值设置模式的分层操控逻辑研究不足,难以实现灵活的模式切换与参数调节,整体设计偏向高端化,忽略了大众对低成本、极简实用型智能水杯的核心需求。
1.3 研究方法
本次设计采用硬件模块化搭建与软件分层开发相结合的方法,围绕STM32F103C8T6单片机完成智能水杯的整体设计与调试,全程遵循实用性、低成本、易操作的设计原则,确保各项功能稳定实现。
硬件层面,采用模块化设计思路,以STM32F103C8T6最小系统为核心控制模块,搭配DS18B20水温传感器、水位传感器、0.96寸OLED液晶显示屏、继电器模块、三色LED指示灯、独立按键模块及供电模块,完成各模块电路的选型、原理图绘制与硬件连接,精准配置单片机GPIO口,实现传感器数据输入、OLED显示输出、继电器与LED灯驱动、按键信号检测的硬件适配,保障各模块供电稳定、信号传输正常,满足水温水位检测、显示、控制、操控的硬件基础。
软件层面,采用模块化编程思路,基于Keil MDK开发环境编写程序,分层实现各项功能逻辑。首先完成单片机外设初始化配置,包括GPIO口初始化、定时器初始化、中断初始化;其次编写传感器驱动程序,实现DS18B20水温数据、水位传感器模拟量数据的采集与处理;接着开发OLED显示驱动程序,实现水温、水位、工作模式、定时时间的实时显示;最后编写按键操控程序,设计自动模式、阈值设置模式、定时模式三种模式的切换逻辑与对应功能控制,编写继电器加热控制、LED水位灯光联动、定时计时与提醒解除程序,确保各模式下指令响应及时、逻辑无冲突。
1.4 研究方主要内容
本次基于STM32F103C8T6单片机的智能水杯设计,全文共分为六个章节,各章节主要内容安排如下:
第1章 绪论:结合日常饮水场景的实际需求,阐述智能水杯设计的选题背景,分析设计的现实意义与实践价值;梳理国内外智能水杯的研究现状,总结现有设计的优势与不足,明确本次设计的研究重点与创新点;同时介绍本次设计采用的研究方法,梳理全文的主要研究内容与章节框架。
第2章 系统总体设计方案:根据智能水杯的功能需求,确定系统整体设计目标,完成核心硬件模块的选型对比与确定,给出以STM32F103C8T6为核心的系统总体框图,明确自动模式、阈值设置模式、定时模式三大工作模式的逻辑关系,规划系统硬件工作流程与软件执行流程。
第3章 系统硬件设计:详细介绍STM32F103C8T6最小系统、DS18B20水温传感器、水位传感器、OLED显示屏、继电器模块、LED指示灯、独立按键及供电模块的工作原理与硬件特性,绘制各模块电路连接原理图,说明GPIO口的配置方式,解析硬件电路的设计思路与接线逻辑,保障硬件系统适配各项功能需求。
第4章 系统软件设计:基于Keil MDK开发环境,阐述系统软件的整体编程架构,分模块讲解外设初始化、传感器数据采集与处理、OLED显示驱动、按键模式切换、温控加热控制、水位LED提示、定时计时与提醒功能的程序设计逻辑,梳理主程序流程与各子程序的执行步骤,标注核心代码的功能与设计要点。
第5章 系统调试与结果分析:完成智能水杯硬件实物搭建与软件程序烧录,分模块进行硬件调试、软件调试与整体联调,测试水温水位检测、OLED显示、模式切换、自动加热、水位灯光提示、定时提醒等各项功能的实现效果,记录调试过程中出现的问题并给出解决方法,验证系统功能的稳定性与实用性。
第6章 结论与展望:对本次智能水杯设计的研究内容进行全面总结,梳理设计实现的核心功能与创新点,分析设计存在的不足之处;针对现有不足,提出后续优化与功能拓展的方向,展望智能水杯后续的升级思路与应用前景。
2 系统设计方案
2.1 主要模块方案选择
2.1.1 主控芯片方案选择
主控芯片是智能水杯系统的核心控制单元,本设计对比STC89C52RC与STM32F103C8T6两款单片机方案,最终选定STM32F103C8T6作为主控芯片。
STC89C52RC为8位单片机,主频最高仅12MHz,运算效率低,难以同时处理多路传感器数据采集、OLED显示驱动、多按键中断响应及定时计时等多任务;其外设仅含基础GPIO口与1路UART串口,无专用定时器适配精准定时功能,且模拟量数据处理能力弱,无法精准解析水位传感器的模拟信号,适配性不足。
而STM32F103C8T6基于32位ARMCortex-M3内核,主频达72MHz,运算能力是STC89C52RC的数十倍,可高效完成水温/水位数据处理、多模式逻辑切换、定时计时运算等核心任务;其具备3路TIM定时器(支持精准定时与中断触发)、丰富的GPIO口(可同时连接传感器、OLED、继电器、LED及多个按键)、ADC模数转换通道(适配水位传感器模拟信号采集),能满足智能水杯多模块协同控制的需求。该芯片成本适中、封装紧凑,适配智能水杯的小型化设计,因此确定其为系统主控芯片,实物如图1所示。

图1 STM32F103C8T6实物图
2.1.2 按键模块方案选择
水温检测模块是实现温控功能的核心,本设计对比DS18B20数字温度传感器与LM35模拟温度传感器两款方案,最终选定DS18B20作为水温检测模块。
LM35为模拟输出型温度传感器,输出电压与温度呈线性关系,需搭配STM32的ADC通道进行模数转换,且受环境干扰影响大,在水杯狭小空间内易出现数据波动;其测温精度受供电电压影响,需额外稳压电路,硬件复杂度高,且单总线仅能连接单个传感器,无拓展性。
DS18B20为数字式温度传感器,采用单总线通信协议,可直接与STM32F103C8T6的GPIO口连接,无需ADC转换,数据传输稳定抗干扰;测温范围为-55℃~+125℃,精度达±0.5℃,完全满足水杯水温检测需求;单总线可挂载多个传感器,具备拓展性,且无需额外外围电路,仅需一个上拉电阻即可工作,硬件接线简洁。综合精度、稳定性与适配性,选定DS18B20水温传感器,实物如图2所示。

图2 水温传感器实物图
2.1.3 显示模块方案选择
显示模块是人机交互的核心载体,本设计对比OLED显示屏与OLED0.96寸液晶显示屏两款方案,最终选定OLED0.96寸显示屏作为显示模块。
OLED为字符型液晶,仅能显示数字与少量字符,无法直观展示“水温”“水位”“定时模式”等中文标识,信息展示维度单一;其需背光供电,功耗高,且接口为并行通信,占用STM32多个GPIO口,不利于其他模块的接口分配;响应速度慢,刷新频率低,无法实时同步水温/水位的动态数据。
OLED0.96寸显示屏为点阵式液晶,支持I2C/SPI通信,仅需2~4个GPIO口即可完成通信,大幅节省主控芯片IO资源;功耗低、响应速度快,可实时刷新水温、水位、工作模式、定时时间等多维度数据,且支持中文显示,能清晰展示“请喝水”等提醒信息;屏幕自发光,无需背光,在暗光环境下仍清晰可见,适配水杯便携使用场景。综合信息展示能力、接口占用与使用体验,选定OLED0.96寸显示屏,实物如图3所示。

图3 显示模块实物图
2.1.4 按键模块方案选择
按键模块是实现模式切换与参数调节的核心,本设计对比矩阵式按键与轻触式独立按键两款方案,最终选定轻触式独立按键作为控制模块。
矩阵式按键虽能通过行列扫描以少量GPIO口扩展按键数量,但本设计需4个功能按键(模式切换、选中切换、加、减),矩阵式布线需额外设计扫描电路,软件逻辑复杂,易出现按键串扰、误触问题;且薄膜材质的矩阵按键机械寿命短(约5万次按压),按压反馈模糊,长期使用易失灵。
轻触式独立按键每个按键对应独立GPIO口,直接与STM32F103C8T6的GPIO口相连,电路结构简洁,无串扰风险;机械寿命达10万次以上,按压反馈清晰,抗干扰性强;STM32F103C8T6富余的GPIO口可完全满足4个按键的连接需求,无需额外IO扩展,软件仅需配置外部中断即可实现按键检测,调试维护便捷。综合稳定性、易用性与适配性,选定轻触式独立按键模块,实物如图4所示。

图4 轻触式独立按键实物图
2.1.5 水位检测模块方案选择
水位检测模块是实现水位状态提示的核心,本设计对比浮球式水位传感器与电阻式waterSensor水位传感器两款方案,最终选定waterSensor水位传感器作为水位检测模块。
浮球式水位传感器为开关量输出,仅能检测“有水/无水”或固定几个水位节点,无法输出连续的水位模拟值,无法实现10以下、10-30、30以上的多级水位判断;其机械结构复杂,体积偏大,不适配水杯狭小的内部空间,且浮球易卡顿,检测可靠性低。
waterSensor水位传感器为模拟量输出型,可通过接触水面的面积输出不同的模拟电压值,经STM32的ADC转换后能精准获取连续的水位数值,满足多级水位判断需求;体积小巧、安装便捷,适配水杯的小型化设计;硬件仅需连接电源、地与STM32的ADC通道,接线简洁,数据采集稳定。综合检测精度、体积适配性与功能需求,选定waterSensor水位传感器,实物如图5所示。

图5 waterSensor水位传感器实物图
2.2 整体系统框图设计
本系统以STM32F103C8T6单片机最小系统为核心控制枢纽,模块交互逻辑清晰:左侧为输入与供电单元,供电模块为整个系统提供稳定直流电源;水温传感器、水位传感器分别向单片机传输实时水温数据与水位模拟量数据;按键模块则向单片机传输模式切换、参数调节等物理操控指令。单片机接收输入信号后,完成数据处理与逻辑判断,向右侧输出模块发送控制信号:驱动显示模块,实时展示水温、水位、工作模式及定时提醒信息;控制继电器模块,实现水温低于设定阈值时的加热片通断控制;驱动LED三色灯模块,根据水位数值切换红、绿、黄三色灯光状态,完成多级水位直观提示。系统框图如图6所示。
图6 系统整体框图
2.3 本章小结
本章围绕基于STM32F103C8T6的智能水杯展开系统方案设计,完成核心功能模块的选型论证与整体架构搭建。通过对比分析,确定以STM32F103C8T6为主控芯片,DS18B20为水温检测模块、waterSensor为水位检测模块、OLED为显示模块、轻触式独立按键为交互模块,搭配继电器加热模块与LED三色灯模块构建完整系统。同时绘制系统框图,明确各模块的连接关系与数据流向,阐明单片机作为核心枢纽,采集传感器数据与按键指令,驱动显示、继电器及LED模块实现温控、水位提示与模式切换的工作逻辑。本章为后续硬件电路设计与软件程序开发奠定了坚实的理论与方案基础。
3 系统硬件设计
3.1 单片机最小系统
3.1.1 主控模块电路
STM32F103C8T6是ST公司推出的基于ARM Cortex-M3内核的32位单片机,属于STM32F1系列高性价比型号,适配智能水杯这类小型嵌入式设备开发。其核心主频达72MHz,运算性能可支撑多任务并行处理,能同时完成水温/水位传感器数据采集、OLED显示驱动、多按键指令解析、定时计时运算及继电器/LED控制等智能水杯核心逻辑运算。
该芯片采用48引脚LQFP封装(体积紧凑适配水杯小型化设计),外设资源完全覆盖本设计需求:含37个GPIO口(满足按键、LED、继电器、OLED的连接)、12位ADC模数转换通道(适配waterSensor水位传感器模拟信号采集)、3路TIM定时器(支持精准定时与中断触发)、I2C/SPI通信接口(适配OLED显示屏数据传输),且成本适中,是本智能水杯的理想主控核心。其原理图如图7所示。
图7 主控模块电路原理图
3.1.2 晶振电路
晶振电路是STM32F103C8T6最小系统的外部主晶振电路,负责为单片机提供稳定的时钟基准。电路核心元件包括8MHz无源晶振Y1,以及2个22pF陶瓷电容C1、C2。
连接逻辑上,晶振两端分别接入STM32的OSC_IN(引脚1)与OSC_OUT(引脚2)引脚,两个电容一端接晶振对应引脚,另一端接地。其中,8MHz晶振是系统主时钟的外部输入源,后续可通过STM32内部倍频单元升至72MHz主频;22pF电容为晶振的负载电容,用于匹配谐振频率、保障电路稳定起振并抑制杂波干扰。该电路是单片机时序控制的基础,支撑智能水杯传感器数据采集、按键指令响应、定时计时等功能的精准时序运行,晶振电路原理图如图8所示。
图8 晶振电路原理图
3.1.3 复位电路
本次设计采用上电复位与按键复位结合的方式,保障智能水杯系统稳定运行。上电复位电路由0.1μF电容C3与10KΩ电阻R1组成RC回路:系统未上电时C3充入高电势触发MCU复位,数微秒后C3充电完毕,电阻电流与电压归零,MCU启动工作,C3同时起到消抖作用,整体复位时长约1.1毫秒,复位电路原理图如图9所示。
图9 复位电路原理图
3.1.4 电源电路
本设计中,STM32F103C8T6主控芯片、OLED显示屏、DS18B20传感器的工作电压为3.3V,waterSensor水位传感器、继电器模块的工作电压为5V,因此采用AMS1117-3.3稳压芯片实现5V转3.3V的双电压供电。5V DC电源经滤波电容C5、C7滤除杂波后输入AMS1117-3.3的Vin引脚,输出端并联旁路电容C6、C8实现稳压,确保3.3V输出电压稳定;5V电源直接为继电器、水位传感器供电,3.3V为单片机、OLED、水温传感器供电。在3.3V输出端增设LED电源指示灯,电源正常时红灯常亮,便于故障排查,电源电路原理图如图10所示。
图10 电源电路原理图
3.2 DS18B20水温传感器电路
DS18B20水温传感器采用单总线通信协议,电路连接简洁:传感器VDD引脚接3.3V电源,GND引脚接地,DQ数据引脚串联4.7KΩ上拉电阻后接入STM32F103C8T6的PB0引脚。
工作原理为:DQ引脚默认处于高电平,STM32通过该引脚向传感器发送复位、读写指令,传感器响应后返回16位温度数据(高5位为符号位,低11位为温度值),单片机解析数据后换算为实际水温(精度±0.5℃)。该电路无需ADC转换,抗干扰能力强,适配水杯狭小空间的布线需求,能稳定采集水温数据,原理图如图9所示。
图11 DS18B20水温传感器电路原理图
3.3 waterSensor水位传感器电路
waterSensor水位传感器为模拟量输出型,电路核心由传感器模块、10KΩ可调电阻及STM32的ADC通道组成:传感器VCC引脚接5V电源,GND引脚接地,AO模拟输出引脚接入STM32F103C8T6的PA1(ADC1通道1)引脚,DO数字输出引脚悬空(本设计仅用模拟量)。
工作原理为:传感器接触水面面积越大,输出模拟电压越高(0~5V),STM32通过ADC1将模拟电压转换为0~4095的数字值,换算后得到水位数值(0~100),以此判断水位处于10以下、10-30、30以上的区间。可调电阻用于校准传感器灵敏度,保障不同水质、环境下的检测精度,原理图如图12所示。

图12 waterSensor水位传感器电路原理图
3.3 waterSensor水位传感器电路
waterSensor水位传感器为模拟量输出型,电路核心由传感器模块、10KΩ可调电阻及STM32的ADC通道组成:传感器VCC引脚接5V电源,GND引脚接地,AO模拟输出引脚接入STM32F103C8T6的PA1(ADC1通道1)引脚,DO数字输出引脚悬空(本设计仅用模拟量)。
工作原理为:传感器接触水面面积越大,输出模拟电压越高(0~5V),STM32通过ADC1将模拟电压转换为0~4095的数字值,换算后得到水位数值(0~100),以此判断水位处于10以下、10-30、30以上的区间。可调电阻用于校准传感器灵敏度,保障不同水质、环境下的检测精度,原理图如图12所示。

图12 waterSensor水位传感器电路原理图
3.4 OLED液晶显示模块电路
本设计采用0.96寸I2C通信OLED显示屏,电路连接仅需4根线:模块VCC引脚接3.3V电源,GND引脚接地,SCL时钟引脚接STM32的PB6引脚,SDA数据引脚接PB7引脚。
工作原理为:STM32通过I2C总线向OLED发送控制指令与显示数据,指令包括屏幕初始化、显示位置设置、清屏等,数据为水温、水位、模式状态、定时时间等字符/图形编码。I2C通信仅占用2个GPIO口,大幅节省IO资源,屏幕自发光无需背光,功耗低,能清晰展示多维度数据,原理图如图13所示。
图13 OLED液晶显示模块电路原理图
3.5 继电器加热控制电路
继电器模块用于驱动外接加热片,电路核心由5V继电器、NPN三极管S8050、续流二极管1N4007组成:继电器VCC引脚接5V电源,GND引脚接地,IN控制引脚经1KΩ限流电阻接STM32的PB1引脚;三极管基极接PB1,集电极接继电器IN引脚,发射极接地;续流二极管反向并联在继电器线圈两端。
工作原理为:STM32输出高电平时,三极管导通,继电器线圈得电吸合,加热片回路接通(模拟加热);输出低电平时,三极管截止,继电器断开,加热停止。续流二极管用于吸收继电器断电时的反向电动势,保护单片机与三极管,原理图如图14所示。
图14 继电器加热控制电路原理图
4.2 主程序流程设计
主程序是智能水杯系统的核心执行逻辑,流程从“系统上电”启动,首先完成底层外设初始化:包括GPIO口(按键、LED、继电器)、ADC(水位传感器)、TIM定时器(定时计时)、I2C(OLED)及DS18B20传感器初始化,同时初始化全局变量(水温阈值、水位数值、模式标志位、定时时间等),默认进入自动模式。
进入while主循环后,依次执行核心功能逻辑:第一步为传感器数据采集,读取DS18B20水温数据与waterSensor水位模拟量,完成数据滤波与换算;第二步为按键指令解析,检测4个独立按键的触发状态,根据当前模式(自动/阈值设置/定时)执行对应操作(模式切换、参数加减、定时设置等);第三步为模式逻辑执行,自动模式下判断水温是否低于阈值(控制继电器)、水位区间(控制LED),定时模式下执行计时逻辑并判断是否触发提醒;第四步为OLED显示更新,实时刷新水温、水位、模式状态、定时时间等数据。
整个主循环通过标志位切换不同模式逻辑,保障各功能模块协同运行,系统主流程图如图18所示。

图18 程序总体流程图
4.3 独立按键流程设计
按键处理子程序是人机交互的核心,负责实现多模式下按键指令的精准识别,流程从“开始”启动,首先完成按键引脚初始化(上拉输入模式)、消抖延时参数定义、模式标志位读取。
进入检测环节后,先判断是否有按键按下(引脚电平为低):若检测到按键触发,执行10ms延时消抖(消除机械抖动干扰),再次确认按键电平状态;若仍为低电平,根据当前模式标志位(自动/阈值设置/定时)执行对应逻辑:自动模式下K1切换至阈值设置模式,阈值模式下K3/K4调节水温阈值,定时模式下K2切换选中项、K3/K4调整时间参数;若检测无按键按下或消抖后电平恢复,则返回主循环。
此流程通过延时消抖与模式标志位判断,有效避免按键误触,保障多模式下指令解析的准确性,按键处理子流程图如图19所示。
图19 按键设置子流程图
4.4 温度采集子流程设计
温度采集子程序就是驱动外部的温度传感器DS18B20进行工作,通过I/O口通信方式向STM32单片机中写入数据,并且送到OLED液晶显示屏来进行显示。首先进行I/O口初始化,然后是复位DS18B20使其恢复初始状态等待DS18B20响应。将DS18B20读到的温度数据进行数据转换,并且写入DS18B20单片机,最后结束子程序。配置程序流程图如下图20所示:
图20 温度采集子流程图
4.5 温度采集子流程设计
OLED显示屏上电后,首先进行初始化操作,屏幕清零,内部存储清空。之后和单片机进行双向通信,始化显示内容为uchar code Init1[]="";lcd延迟void LCDdelay(uint z);写入命令void write_com(uchar com);写数据void write_data(uchar date);初始化void Init1602(){ write_com(0x38)读取字节for(i=0;i<14;i++) {write_data(Init1[i]);}单片机控制显示屏亮度和显示内容,延时一定时间后,将检测到的温度和水位值显示在液晶显示屏上。在设置温度和水位报警值上下限时,根据按键操作,实时变换数值。单片机操控写入引脚写入要显示内容的命令。之后显示屏执行指令,将内容显示出来。OLED显示流程图如如下图所示:
图21 OLED显示子流程图
4.6 本章小结
本章主要探讨了基于 STM32F103C8T6 单片机的智能水杯系统的软件设计。本章设计的软件逻辑覆盖了智能水杯多模式控制、数据处理、人机交互的全部核心需求,为系统功能的实现提供了完整的程序支撑。
5 实物测试
5.1 实物整体焊接测试
本设计实物板集成STM32F103C8T6核心板、DS18B20水温传感器、waterSensor水位传感器、0.96寸OLED显示屏、继电器模块、三色LED灯及4路独立按键等元件,焊接测试遵循“先核心后外设”的流程:优先完成STM32核心板的电源、晶振、复位引脚焊接,确保最小系统稳定;再依次对接传感器(DS18B20单总线、waterSensor ADC引脚)、OLED(I2C引脚)、继电器(GPIO控制引脚)、LED及按键的GPIO接口,所有引脚焊接均采用杜邦线转接,便于后期调试更换。
测试重点为焊点质量与电气连通性:通过万用表蜂鸣档检测电源正负极对地电阻,排除短路风险;逐一测量传感器、OLED、按键引脚的通断状态,排查虚焊、连锡问题;使用示波器验证晶振电路的8MHz时钟信号输出,确保单片机时序正常。上电前完成所有焊点核查后,接入5V USB供电,核心板电源指示灯正常亮起,各模块无异常发热,OLED屏幕点亮并显示初始化界面,初步验证焊接的电气连通性,为后续功能测试提供硬件基础,实物焊接图如图15所示:

图15 整体实物焊接图
5.2 核心功能实物测试
智能水杯核心功能测试围绕传感器检测、模式控制、显示输出、定时提醒四大维度展开,逐一验证各模块协同效果与指令响应准确性:
5.2.1 水温/水位检测功能测试
水温检测测试:将DS18B20传感器浸入不同温度的水中(室温25℃、温水40℃、热水60℃),上电后OLED屏幕实时显示水温数值,通过温度计校准传感器精度。测试结果显示,水温检测误差≤±0.5℃,数据刷新频率为1次/秒,无明显波动,满足设计精度要求,水温检测实物测试如图16所示。

图16 水温检测实物测试
水位检测测试:向水杯模型中逐步加水,模拟不同水位区间(<10、10-30、>30),waterSensor传感器输出的模拟量经ADC转换后,OLED实时显示水位数值,同时触发对应LED灯点亮。测试结果显示,水位数值与实际水量匹配度≥95%,LED灯切换无延迟,水位检测实物测试如图17所示。

图17 水位检测实物测试
5.2.2 模式切换与阈值设置功能测试
自动/阈值设置模式切换:按下K1按键,OLED屏幕显示“自动模式”/“阈值设置模式”切换,标志位响应无延迟;阈值设置模式下,按下K3(加)/K4(减)按键,水温阈值以1℃为步长增减,OLED实时刷新阈值数值(范围20℃~80℃),按键消抖逻辑有效,无误触、连加/连减问题,阈值设置实物测试如图18所示。

图18 阈值设置实物测试
自动模式温控与水位提示:设置水温阈值为40℃,当检测水温低于40℃时,继电器吸合(加热片模拟加热),OLED显示“加热中”;水温升至40℃后,继电器断开,加热停止。同时,水位<10时红灯亮、10-30时绿灯亮、>30时黄灯亮,灯光切换与水位区间匹配精准,自动模式测试如图19所示。

图19 自动模式实物测试
5.2.3 定时提醒功能测试
定时时间设置:按下按键切换至定时模式,K2按键依次选中“开关”“时”“分”“秒”,选中项在OLED屏幕高亮显示;K3(加)/K4(减)按键调整时间参数(步长:时/分=1,秒=10),参数设置范围00:00:10~01:00:00,设置完成后按下K3开启定时,OLED显示“定时中”并倒计时。
定时启停与暂停:定时过程中按下K3按键,倒计时暂停,OLED显示“定时暂停”;再次按下K3恢复计时;定时时间到后,三色LED全亮,OLED显示“请喝水”,按下任意按键后提醒解除,LED熄灭、OLED恢复正常显示,定时提醒实物测试如图20所示。

图20 定时提醒实物测试
5.3 本章小结
本章聚焦基于STM32F103C8T6的智能水杯系统测试与验证,先对硬件焊接质量进行全维度核查,借助万用表、示波器排除短路、虚焊、时钟异常等问题,确保各模块供电与通信链路畅通;再针对传感器检测、模式切换、阈值设置、自动温控、水位提示、定时提醒等核心功能逐一测试,验证数据采集精度、指令响应速度与模块协同效果。
6 结论
本设计围绕智能水杯的实用化需求,完成了基于STM32F103C8T6单片机的系统开发。通过主控芯片、传感器、显示模块等核心组件的对比选型,搭建了包含水温/水位检测、OLED显示、继电器温控、LED水位提示及多按键模式控制的硬件架构,同时设计了传感器数据处理、多模式切换、定时计时等软件流程,最终实现了水温/水位实时监测、自动温控加热、多级水位提示、阈值自主设置及定时饮水提醒等核心功能,有效解决了传统水杯水温调控不精准、水位无直观提示、饮水无定时提醒的痛点,达成了低成本、高实用性的智能水杯设计目标。
本次设计的优势在于方案的适配性与易用性:硬件层面采用模块化电路设计,依托STM32F103C8T6的ADC、TIM、I2C等丰富外设,实现传感器数据采集、多模式控制的并行处理,简化了电路布线,降低了硬件成本与体积;软件层面通过标志位管理模式切换逻辑、延时消抖保障按键指令识别稳定性,多模式操控逻辑贴合日常饮水使用习惯,操作直观便捷。该系统不仅可满足大众日常饮水的智能化需求,也能作为单片机嵌入式开发的实践案例,具备一定的实际应用与教学参考价值。
同时本设计仍存在优化空间,例如waterSensor水位传感器易受水质影响导致检测精度波动、定时计时仅支持短时段设置、暂未接入蓝牙实现手机端参数配置等。后续可通过增加传感器校准算法提升水位检测稳定性,拓展定时器计时范围至24小时,接入蓝牙模块实现手机端阈值设置与定时提醒,进一步提升用户体验。整体而言,本次设计为小型嵌入式智能便携设备的开发提供了可行的参考方案,具备一定的推广与优化潜力。
更多推荐


所有评论(0)