基于 stm32 智能水壶的设计与实现

摘 要

在日益忙碌的现代,时间成本变得越来越高昂,人们时常因为工作忙的不可开交, 人们时常为了工作效率而废寝忘食,烧水往往需要很长的时间,由于人们很注重效率, 所以这段时间对于他们非常的宝贵,所以减少烧水的步骤和时间有着很大的意义,设计
一个可以远程烧水的智能水壶可以大大方便我们的生活。
本论文说明了如何通过直流电动机,esp32wifi 模块,控制基于 stm32 的智能水壶的 进水和出水,从而能够实现其通过抢占式分配任务的方式进行烧水接水的功能,使其控 制稳定、资源利用充分、执行周期短、代码效率快,完成对系统的各个任务,红外接收 发送装置用于触发智能水壶的外部中断,从而控制电机的旋转,水壶的加热,通过对水 温的实时监测,从而实现通过触发外部中断来暂停加热,同时外部中断触发主程序的蜂
鸣器响应来发出声音提醒用户,加热完成三秒钟后停止出声音。
本论文中,芯片选用 stm32f103zet6,系统选用 Freertos 进行多任务的抢占式实时管 理,设计了有火牛接口的电源模块、可以驱动直流电动机的驱动模块、用遥控器发出红 外的红外模块,红外线的接收模块、基于 ds18b20 的水温监测模块。其中,系统的编写 和各个 io 口函数的代码以及中断程序的巧妙利用以及库函数的开发是本论文的主体,这 个设计使用Keil uVision5 来进行对源文件和头文件的撰写,然后利用ISP 软件通过ch340
进行usb 转串口进行源文件和头文件的下载。

关键词:红外接收;实时监测水温;中断;Keil uVision5;stm32

Design and implementation of STM32 smart kettle

Abstract

In the increasingly busy modern times, the cost of time is becoming more and more expensive, people are often busy because of work, people often forget to sleep and eat for work efficiency, boiling water often takes a long time, because people pay attention to efficiency, so this time is very valuable to them, so reducing the steps and time of boiling water has great significance, designing a smart kettle that can boil water remotely can
greatly facilitate our lives.
This paper explains how to control the inlet and outlet of the smart kettle based on STM32 through the DC motor, ESP32wifi module, so as to realize its function of boiling water and water connection by preemptive allocation of tasks, so that its control is stable, resource utilization is sufficient, the execution cycle is short, the code efficiency is fast, and the various tasks of the system are completed, and the infrared receiving and transmitting device is used to trigger the external interruption of the smart kettle, thereby controlling the rotation of the motor, the heating of the kettle, through real-time monitoring of the water temperature, This enables the heating to be paused by triggering an external interrupt, while the external interrupt triggers the buzzer response of the main program to emit an audible reminder to the user, and the sound stops after three
seconds of heating.
In this paper, the chip uses stm32f103zet6, the system uses Freertos for preemptive real-time management of multi-tasking, and the power module with fire bull interface, the drive module that can drive DC motors, the infrared module that emits infrared with remote control, the infrared receiving module, and the water temperature monitoring module based on DS18B20 are designed. Among them, the writing of the system and the code of each IO port function and the clever use of interrupt programs and the development of library functions are the main body of this paper, this design uses Keil
uVision5 to write source files and header files, and then uses ISP software to download

source files and header files through ch340 USB to serial port.

Keywords: infrared reception; Real-time monitoring of water temperature;
Interrupt; Keil uVision5;stm

目 录

摘 要 I
Abstract II
1 绪论 1
1.1 本毕业设计目的 1
1.2 本毕业设计意义 2
1.3 本毕业设计国内外研究现状 2
1.4 本毕业设计研究内容 3
2 系统总体设计 4
2.1 硬件系统 5
3 硬件部分 6
3.1 Esp32 6
3.2 Freertos 6
3.3 阐述时钟系统的工作原理 6
3.4 阐述 pwm 的基本原理 7
3.5 阐述中断模块的工作原理 7
3.6 阐述 ds18b20 模块工作原理 7
3.7 阐述蜂鸣器模块工作原理 7
3.8 阐述 USART 工作原理 8
3.9 阐述红外接收模块工作原理 8
3.10 继电器的工作原理 9
3.11 阐述智能水壶遇到的关键问题 9
4 软件系统设计 11
4.1 ds18b20 的数据读取 12
4.2 红外接收器 13
4.3 Esp32 的数据收发 14
4.4 I/O 口的定义及解释 16
结论 17

参考文献 18
附录 19
致谢 20

1 绪论

从詹姆士·哈格里夫斯到爱迪生,再从特斯拉到爱因斯坦,在无数伟人的前 仆后继下,我们是生活从只有火照明,一到夜晚就乌漆墨黑,到现在的一到晚上 就灯火通明,无数的科技成果通过电作为主体便利了我们的生活,提高了我们的 生活效率,生活水平,单片机的出现大大方便了我们的生活,只要是有机器的地 方就有单片机,单片机可以大大减少人力的使用,因此有很大的市场、通过对继 电器,时钟的使用,我们开发出各种各样的功能,尤其是时间管理,单片机方面
的市场前景非常可观。
在这个电子产品繁多的时代,万物互联互通,各个电子产品之间相互配合往 往能够达到意想不到的效果,在经济学中有一个名词叫机会成本,团队中人们往 往从事熟练度最高的工作团队整体的收益最高,通过wifi 将智能水壶和手机连
接到一个局域网,通过手机对智能水壶进行控制将是一个很好的设计[1]。

1.1 本毕业设计目的

21 世纪以来,随着我国社会生产力及半导体行业的快速发展,各行各业都 凭借这一发展进行了大量的改造和变革,旨在借助其顺应时代的潮流,应势搭乘 上生产力及半导体发展的“顺风车 ”,很显然,中国经济在过去四十多年里取得 了令人惊叹的奇迹。除了原有的电子产业外,还涌现出了一批新兴电子产业,这 一方面得益于我国电力产业十分迅速的发展,得益于全世界制造中心向中国转 移,这些都大大刺激了我国的电子设备的制造生产,这已成为不争的事实,现在, 中国比以往任何时候都更有信心,也能更有能力。创新、活力和国际合作将在中 国未来的经济复苏中发挥非常关键的作用,并帮助中国在推动全球繁荣与和平方 面发挥更加重要的作用,互联网改变了我们的生活,物联网将万物互联,数字化 意味着将有更高层次的效率,而电气化是实现去碳的唯一方法,数字化与电气化 的结合等于可持续化的未来。绿色转型将是一场全面系统深刻的经济社会结构转 型,任何国家都要主动去适应和把握绿色转型的机遇,我们虽然已经很强大富强, 但是我们不能掉以轻心,取长补短相得益彰是我们科技进步的根本,Stm32 单片 机的出现使我们的生活变得更加便利更加智能,以前人力完成的事情现在有了单
片机我们的效率得到极大的提高。烧水往往需要经过打水,加热,还需要有人盯

着水有没有烧开,然后关火,然后晾在一边等水变温等一系列麻烦的步骤,现如 今急需一个可以自动控制加水,调节水温的智能水壶[2] ,在没有人直接参与的情 况下,应用检测仪表和控制装置对水壶和烧水过程进行控制,使其达到预期的温
度,然后自动加水,并满足稳定性,准确性和快速性[3] ,我们既要学习古上圣贤
的理论同时又要有新的技术,新的技术是科技进步的血液,把烧水这道传统工序 结合stm32 的智能控制可以极大简化这个工序,实现一键就能喝热水,为中华文
化繁荣兴盛,中华民族伟大复兴助了一份力。

1.2 本毕业设计意义

现在中国正在进入信息化的科技和社会,万物互联互通是必然的趋势,如何 用信息化的工程带动工业化的工程,是一个极大的挑战,经过一个世界的发展, 我国在电子研发,高等教育方面都有了扎扎实实的基础,我国的科技强大,地大 物博,人口众多必然导致我国是世界上最大的市场,现在是中国和美国的科技竞 争嘴激烈的时期,美国对中国的制裁不断,措施越来越严厉,对中国公司的影响 越来越大,越是打压,我们越要迎难而上,设想一下,在家里一个手机就可以进 行一切需要自己动手操作的事情,轻轻触摸一下屏幕,洗衣机就自动的旋转,电 视自己打开喜欢的频道,衣柜自己进行衣服的收纳,扫地机器人自动进行垃圾的 扫描和清洁,水壶里的水自动烧开保温,人只需要躺在沙发上对手机屏幕点一点 就可以省下很多时间去干自己喜欢的事情,是多么的方便,单片机因为其体积等 许多优点,对我们的生活有巨大的价值,越是自动化,越离不开嵌入式,我们的 水壶也不例外,通过对局域网的组建,将水壶作为服务器,手机为客户端,进行 socket 通信,应用 http 协议就可以通过浏览器控制家里的设备将是很方便的一个
事情。

1.3 本毕业设计国内外研究现状

21 世纪以来,随着我国社会生产力及半导体行业的快速发展,各行各业都 凭借这一发展进行了大量的改造和变革,旨在借助其顺应时代的潮流,应势搭乘 上生产力及半导体发展的“顺风车 ”。Stm32 单片机的出现使我们的生活变得更 加便利更加智能,以前人力完成的事情现在有了单片机我们的效率得到极大的提
高。烧水往往不够透明,用多了一些水垢会附着到水壶内壁而无法注意到,水垢

附着到底部将减少加热的效率,而且浪费能源,如果我们将水壶设计成玻璃并且 可以远程操控,当水烧开了会自动停止加热,这样不仅可以防止水垢的堆积,并
且可以提高安全性能,将煤气灶的热力变成电力加热。

1.4 本毕业设计研究内容

(1)选择 keil5 和thonny 作为程序开发的环境,加入其他硬件传感器模块, 对电源电路下载电路进行选择,将 wifi 模块,红外模块,温度传感器模块代码
分别模块化保证工程的可移植性,提高系统的稳定性。
(2)引入 cs 架构,用 esp32wifi 模块与手机热点进行连接,使其在局域网 组网,当客户端发送 http 请求时,esp32 作为服务器进行响应,实现远程对智能
水壶的控制。
(3)在 microPython 环境里对 esp32wifi 模块进行编写,选择 socket 模块,
创建tcp socket 套接字,为了保证数据的稳定传输选择tcp 协议作为通信手段。
(4)编写手机控制智能水壶开和关的两个 html 文件,为减小内存占用,页
面图片采用超链接的方式让手机浏览器自动在网上搜索并下载。
(5)用 Chrome 浏览器进行对 http 协议的调试,配合 microPython 完成对
Header 部分的编写。
(6)针对红外传感器的时序,对红外时序进行读和写的代码编写,在开发
板上运行并调试。
(7)针对温度传感器的时序,进行对时序的读和写部分进行操作,在开发
板上运行并调试。
(8)对直流电机通过编写 pwm 函数进行转速的控制。
(9)完成软件模块部分的整合,编写 main 函数,完成 gpio 的初始化,开
启端口时钟,配置 gpio 模式 。

2 系统总体设计

本次设计的主要是一种智能水壶的系统,共有两个部分,对单片机的软件部 分和单片机的硬件部分,软件部分采用 c 语言和 python 作为传感器和wifi 模块 程序的编写语言,分别用 iic 协议和tcp 和 http 协议进行编写,保证了数据传输 的稳定性,并将软件部分模块化,提高了系统的可移植性,为了更方便的控制水 壶 ,配有遥控器和手机两种方式来进行对智能水壶的控制 ,硬件部分采用 stm32zet6 作为核心,对电源电路,下载电路,直流电机驱动电路和 gpio 引脚进 行控制,引入esp32 作为手机服务的服务器,该模块可以通过其自带的wifi 模块 实现远程对手机的交互,并且提高了能源的节约性,传输的安全性,设备的便利
性。

图 2-1 系统总体设计

2.1 硬件系统

本设计采用了 Stm32 系列单片机,把能使 STM32 工作的最简
单基础的电路统称为 STM32 最小系统,其内部结构框图如下图 2. 1 所示。
可以运行的最简单的电路叫做系统的最小电路,STM32 最小系统
由以下几部分组成:
(1)晶振电路 ,如图 2- 1 所示
(2)复位电路 ,如图 2-2 所示
(3)电源电路,如图 2-3 所示

图 2- 1 晶振电路

图 2-2 复位电路

图 2-3 电源电路

3 硬件部分

3.1 Esp32

Esp32 是一种专门用于物联网开发的芯片,不仅功能强大,有很强大的 api 函数库而且价格很低,功耗也更低,esp32 同时支持wifi 和蓝牙,由于 stm32 没 有内置wifi 和网卡,所以选择 esp32 进行wifi 的开发是很方便的,而且 esp32 支 持 microPython 进行开发,相比于 c 语言 python 不仅面向对象,而且语言简洁,
更加智能,在如今芯片的技术飞速发展下,代码效率也相差无几。

3.2 Freertos

freertos 是免费开源的系统[4],而且特别适合体积不大的工程对丰富 ARM7、 Cortex-M3 硬件来说,RTOS 占用的硬件资源已经越来越可以忽略。无需担心 RTOS 会拖累性能。内核只有 3 个.c 文件,全部围绕着任务调度,没有任何其 它干扰,便于理解学习。而且,根本不需要其它繁多的功能,只要任务调度就
够了。
这个操作系统不大,Freertos 可以进行信号量、任务管理、消息队列、时间 管理、信号量、内存管理等[5] ,对于本设计已经绰绰有余。Freertos 通过对不同 的任务赋予不同的优先级,最多可以赋予 32 个不同的优先级来执行任务,通过 对任务赋予堵塞状态,处理器让处于就绪状态的、优先级最高的任务先运行。系 统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同 一优先级的任务共享 CPU 的使用时间。通过对链表的应用,每个任务都由一个
结构体进行定义,我们可以设置任务的优先级,栈大小,来分配不同的资源.

3.3 阐述时钟系统的工作原理

没有时钟机器就不会运行,他就像架子鼓的拍子,一首音乐没有节拍也不会 好听,会杂乱无章[6] ,我采用外部时钟源的方式来给主机提供时钟,每一个外设
需要时钟才能使能。

3.4 阐述 pwm 的基本原理

pwm 就是波形的等效,将一个波形通过分割成一系列的占空比不一样脉冲 来摸拟各种不规则图形,非常的好用,可以将模拟信号通过数字信号来模拟出来, 我们平时见到的 LED 灯,它也是通过 pwm来控制的,当它的频率大于 50Hz 的 时候,人眼就会产生视觉暂留效果,基本就看不到闪烁了,而是一个常亮的 LED 灯,人在 1 秒内,高电平 0.5 秒,低电平 0.5 秒,如此反复,那么你看到的电灯 就会闪烁,但是如果是 10 毫秒内,5 毫秒打开,5 毫秒关闭, 这时候灯光的亮 灭速度赶不上开关速度,由于视觉暂留作用 人眼不感觉电灯在闪烁,而是感觉
灯的亮度少了因为高电平时间为 50% 亮度也就为之前的 50% 。

3.5 阐述中断模块的工作原理

中断是系统执行任务时可以暂停当前任务去进行预先设定好的中断任务,根 据中断任务的优先级高低,优先级高得中断任务先执行,等执行完搞得中断任务
再执行低的中断任务,中断的好处是不会一直占用系统资源。

3.6 阐述 ds18b20 模块工作原理

DS18B20 只需要一根线就能和主机通讯,温度在负五十五摄氏度度到一百 二十五摄氏度之间,精度误差在零点五摄氏度左右,具有精度高,速度快的优点, 有 CRC 校验码,可以抵抗干扰,有纠错的功能,即使正负极接反也可以不烧坏 主板,但是不工作,而且 ds18b20 可以多个连接一个主机,通过设置不同的地址
来访问每个 ds18b20 ,非常的方便好用。

3.7 阐述蜂鸣器模块工作原理

蜂鸣器非常简单适用,通电就响,我选用它作为热水烧开了时提醒人们去注
意的报警器。

北京理工大学珠海学院 2023 届本科生毕业设计(论文)

图 3- 1 有源蜂鸣器电路

3.8 阐述 USART 工作原理

Usart 是全双工的异步收发器,因为要用 printf 查看当前工程有没有问题, 我们可以通过重定向的方式把变量的构成打印到调试助手上,这样即使程序出现
了 bug 也可以知道是哪里出现的。

3.9 阐述红外接收模块工作原理

利用红外线进行遥控是一种很方便的技术,红外线抗干扰,采用的通讯协议
可靠耗能小,我们的电视遥控就是红外接收。
我们将信息通过红外线的形势发送到接收设备,这种信号是我们制定了一系
列规定来发送的。
(1)信号总共 16 位
(2)信号发两遍
(3)通过占空比来说明“ 0 ”和“ 1 ”;
(4)频率为 38Khz;
(5)一个发送位的时间为 1. 125ms 或 2.25ms;

NEC 码位定义时序图如下图所示:

图 3-2 NEC 码 1 和 0 时序图

NEC 遥控数据格式为:引导码、地址码、地址反码、控制码、控制反 码。我们要发送一个引导码,通过对高低电平的时长和顺序还有大小来发送
数据格式如下:

图 3-3 引导码高低电平时序图

这个码规定了各个高低电平要通过固定的顺序,每个的时间长短来发送。

3.10 继电器的工作原理

继电器是一种电子控制器件,是一个通过电磁原理进行开关的器件,可以接 在任意导线上,通过对控制线圈控制来闭合,断开时没导通,闭合时导通。通常 使用继电器可实现小电流控制大电流,或者低压控制高压等设备。比如stm32 的
gpio 输出电平是 3.3v ,要控制 220v 高压设备,可选择继电器。
一般情况下,常闭触点和公共出点事导通连接在一起的,当继电器工作后,

更多推荐