单片机实物成品-009 温度控制系统水温控制系统

温度控制系统水温控制系统(温度 +排风+加热片+自动模式+手动模式+阈值设置+wifi传输控制+送APP源码 )

本项目以软硬件结合的方式,选择C语言作为程序硬件编码语言,以STM32单片机作为核心控制板,在数据传输节点上连接温度传感器对环境温度进行实时检测,且根据温度的高低实现自动调节,并将数据通过WIFI无线通信技术传输至上位机,实现环境温度的24h远程监控,达到全自动的智能化管理目标。

成品展示:

温度控制系统版本六

功能简介:

1.STM32F103C8T6 单片机进行数据处理

  1. OLED 液晶显示空气温度实时数据。

  2. DHT11(DS18B20)温度传感器检测当前温度

4.第一个按键:切换模式 自动模式/手动模式/阈值设置模式

5.手动模式下 第二个按键切换选中某个设备 第三个按键打开和关闭选中的设备

  1. 阈值模式下第二个按键切换选中设置某个阈值 按键三 加 按键四 减

  2. 温度高于设定的阈值时,继电器外接排风设备打开 进行排风 低于阈值时 关闭排风设备 停止排风

8.温度低于设定的阈值时,继电器外接加热片设备打开 进行加热 高于阈值时 关闭加热设备 停止加热

9.WIFI 模块ESP8266 无线传输数据到APP进行显示

10.APP 可以远程控制排风设备和加热设备的开启和关闭

11.APP 可以远程设置阈值

论文目录展示:

第一章 绪 论

1.3 主要研究方法

  1. 文献调研法:这是一种资料收集方法,通过官方网站、图书馆等途径去查阅相关课题的文献、学术报告以及行业标准等,了解目前该温度控制系统的研究背景、国内外研究现状、发展趋势、未来市场等,为课题的设计提供有效的理论依据和技术指导。

  2. 实地调查法:对现有的相关产品进行了解,例如通过对不同品牌、不同型号的温度控制设备进行实践和研究,分析不同产品的优劣,总结问题,根据问题作出改进,从而制定大概的系统需求。

  3. 系统设计方法:根据整理得到的基础资料和大概需求,设计系统整体的架构和功能模块,并根据各个模块的需求,筛选合适的硬件元器件,包括单片机、传感器、报警设备、执行器等,得到具体、详细的方案设计。

  4. 系统集成方法:将划分好的模块进行统一、集成,形成完整的温度控制系统,验证各个模块之间是否成功建立通信,数据和指令是否成功、正确的传输等。

1.4 论文组织结构

本温度控制系统论文的组织结构分为六章。

  1. 第一章是论文的基础介绍,包括系统的研究背景、意义,相关领域上的国内外研究现状,以及本温度控制系统的主要研究方法;

  2. 第二章是对本温度控制系统的方案进行分析,包括对各个功能模块的划分、元器件的选择,以及总体框图的绘制等;

  3. 第三章是对本温度控制系统的硬件电路进行详细介绍,说明各个功能模块的电路连接方式,以及数据的交互情况,能够清楚程序电路是怎么运行的,电平是怎么传输的;

  4. 第四章是对本温度控制系统的软件部分进行详细介绍,对各个功能模块的实现逻辑、流程进行说明,并绘制出对应的流程图进行解释;

  5. 第五章是对本温度控制系统的软硬件部分进行调试与实现,包括介绍系统的测试目的与方案,系统软硬件的用例测试,以及实物运行效果;

  6. 第六章是对本温度控制系统论文的总结与展望,总结出本系统的优势与弊端,以及未来需要调整的方向等。

第2章 系统总体设计

2.1 方案分析

本项目以软硬件结合的方式,选择C语言作为程序硬件编码语言,以STM32单片机作为核心控制板,在数据传输节点上连接温度传感器,对环境温度进行实时检测,且根据温度的高低实现自动调节,并将数据通过WIFI无线通信技术传输至上位机,实现环境温度的24h远程监控,减少人工干预,有效保障环境安全,优化产品质量,推动科技进步。包括了主控模块、传感器模块、按键模块、执行模块、显示模块、通信模块。

其中,主控模块作为设计的核心,能够进行指令的发送、接收,以及对数据的运算处理;传感器模块能够采集环境温度数据;按键模块能够实现程序的人机交互,可以使用按键来设置温度上下限的阈值、切换功能模式、手动控制执行设备;显示模块是将程序的监测数据、设备状态等相关信息显示出来提供给人员查询,从而提高了程序的互动性;当监测到环境温度高于阈值上限的时候,会驱动执行设备风扇进行降温;当监测到环境温度低于阈值下限的时候,会驱动执行设备加热片进行升温,从而实现环境温度的自动调节;在通信模块中,可以实现上下位机的交互,对环境温度进行远程监控。因此,本温度控制系统的总体框图如图2.1所示。

图2.1 程序总体框图

在上位机中,可以实现数据的双向交互,不仅可以接收传感器监测到的环境数据,还可以切换程序的功能模式,设置温度的上下限阈值,控制各项执行设备等,从而达到远程监控的目的,实现温度的智能化调节。其上位机的功能框图如图2.2所示。

图2.2 上位机功能框图

第3章 硬件电路设计

3 . 1 主控模块电路设计

单片机是一种微处理器,而STM32单片机是一种32系列的微处理器,是硬件程序的核心控制,能够向程序发送指令、接收指令,并控制外设作出一定的反应,同时能够对程序的数据进行计算处理,得到运算结果。STM32单片机分为了Cortex-M0、M3、M4 和M7四种类型。常用的STM32单片机是以Cortex-M3为内核的,其架构包括了Lcode总线、4个驱动单元、4个被动单元、总线矩阵以及AHB/APB桥这几个部分。

Lcode总线是程序的接口向量,负责完成指令预存;4个驱动单元包含了Dcode总线、系统总线、通用DMA1总线、通用DMA2总线,其中Dcode总线负责连接闪寸的数据接口、系统总线负责协调DMA的访问、通用DMA1总线负责AHB主控接口与总线矩阵连接;4个被动单元包括内部SRAM、内部FLASH、FSMC、从AHB到APB的连接APB设备;总线矩阵是负责来协调系统总线与DMA主控总线之间的访问,而AHB外设依靠总线矩阵和系统总线连接,并且允许DMA访问;AHB/APB桥主要负责同步连接。其应用十分广泛,在建筑、安防、消防、智能家居、工业自动化等领域。

本温度控制系统的主控模块选择的是STM32F103C8T6型号的单片机,其电路设计如下图3.1可示。该型号的芯片内集成了各种电路,由电源电路、复位电路、ADC转换电路、时钟电路等部分组成。其中,电源电路负责为整个系统提供供电电源,本STM32F103C8T6芯片规定供电电源为3.3V,在38管脚接入,由于本系统的一些外设需要5V的电源,所以在STM32F103C8T6芯片的18管脚接入了5V电源并通过内置的稳压芯片将其转换为符合STM32F103C8T6芯片要求的3.3V;复位电路是为程序提供的初始化功能,如果要重新进行启动,可以通过复位电路的按钮来操作,从而达到了初始化整个程序的目的;ADC转换电路负责将各传感器采集到的数据信号转换为STM32F103C8T6芯片可以进行处理和计算的数字信号;时钟电路内置了震荡芯片,来对程序的运行进行计时处理,保证程序可以按照一定时间顺序进行运行。主控模块的芯片具有一体化、简易化、灵活化的特点,该电路中的其余管脚和接口用来负责连接各项执行器、通信设备、传感器设备等,实现信号通信。

图3.1 主控模块电路设计

第4章 系统软件设计

4.1 编译语言和环境

C语言是所有计算机语言中的基础,C生万物,也是所有程序员学习编程的第一门语言,它在1972年的时候由丹尼斯·里奇和肯·汤普逊在开发。C语言虽然原始,但是它保留了很多优势,所以直到现在也被很多人使用,首先,它在设计上具有自顶向下的特性,能够对程序进行结构化和模块化设计;其次,在编码过程中,它具有高效、快速的特性;然后,C语言程序还可以在不同的操作系统上运行,只需要稍作修改进行适配即可,具有可移植性、兼容性的特点,如果程序员需要更换设备进行编码,会很方便;最后,C语言也是一款面向程序员的语言,程序员可以直接通过C语言来访问硬件、操作内存中的位信息等。

本温度控制系统属于一款硬件程序,硬件的开发是通过在Keil平台使用C语言进行编码,来实现硬件各功能模块,包括传感器的工作代码、单片机的工作代码等,所以本系统的关键开发技术是C语言。

Java语言nengg对本系统软件部分各功能进行编译的技术,本系统的上位机终端通过手机App实现,让操作人员可以在手机App上实现远程监控。Java是一种面向对象的编程语言,主要用作软件程序的开发,它在C语言的基础上,更加简单上手。Java的编程环境包括JDK、JRE、JVM,其中,JDK是Java程序的开发包,也就是Java程序的开发环境,也是整个Java程序的核心,在JDK中,包含了很多Java API,程序员在开发的时候可以直接调用使用;Java程序开发和运行所需要的条件是不同的,而JRE是Java程序的运行环境,但是在下载JDK的时候就包含了JRE,所以不再需要额外下载安装JRE;而JVM是指Java虚拟机,是一种虚拟处理器,解决Java编译器和操作平台之间的问题,从而实现Java程序跨平台。这三者的关系为JDK包含JRE,JRE包含JVM。此外,Java技术可以应用于Android App中,在本系统的软件开发中,虽然是以手机App的形式进行操作使用,但代码仍然是使用Java语言所编写。并且选择IntelliJ IDEA开发工具,能够进行代码自动提示、分析,能够为程序员节省很多开发时间。

4.2 主程序设计

本温度控制系统的主程序设计流程为:首先初始化程序各功能模块,并通过ESP8266模块建立上下位机的连接,通过按键或者手机App来设置温度阈值的上下限,确认后启动程序DHT11传感器设备开始采集环境温度信号,并将信号进行AD数模转换为数字信号显示到OLED显示屏上,同时发送给上位机。程序会根据采集到的信号进行判断是否符合要求,若不在要求范围内,由主控模块自动启动执行模块,实现温度的自动调节。此外,也可以通过按键和手机App来进行手动改善环境温度操作。其主程序设计如图4.1所示。

图4.1 主程序设计流程图流程图

第5章 系统实现与调试

5 .1系统实现

5.1.1 系统硬件实现

本温度控制系统的硬件部分,由主控模块、传感器模块、按键模块、显示模块、执行模块、通信模块组成。其中,主控模块使用STM32F103C8T6型号的单片机MCU,能够成功的向各个外设发送、接收程序指令,并对数据进行逻辑运算和处理;传感器模块由DHT11传感器完成,通过与主控模块上的引脚接口进行连接,实现数据传输和控制,能够成功采集并转换环境的温度数据;按键模块由四位按键实现,每个按键对应了不同的功能,通过按下按键触发电路闭合,满足电流通过条件,实现人机交互;显示模块使用OLED显示屏来将采集到的数据等显示读出;执行设备包括两个继电器,连接风扇和加热片,分别对应了不同的操作,可以根据传感器模块的检测情况作出及时反应,从而实现环境温度的自动调节;通信模块使用了Esp8266模块,建立了系统软硬互通的桥梁,完成上下位机的数据交互,为用户的远程监控提供了基础。

综上,本温度控制系统的硬件部分实现界面如下图所示。

图5.1 系统硬件实现图

5.1.2 系统软件实现

本温度控制系统的软件部分,以手机App的形式展示。包括数据查询、设置温度阈值、切换功能模式、以及手动远程控制风扇、加热片的开关,以实现环境温度的24h远程监控。首先,使用手机App与程序硬件连接,在界面顶部,可以在查看到环境的实时温度数据。可以在界面中部,可以控制不同执行器的状态,最后可以分别设置温度阈值的上下限。其软件界面实现如图5.2所示。

图5.2 系统软件实现图

相关推荐
cjy_Somnr15 分钟前
keil5报错显示stm32的SWDIO未连接不能烧录
stm32·单片机·嵌入式硬件
Lay_鑫辰1 小时前
西门子诊断-状态和错误位(“轴”工艺对象 V1...3)
服务器·网络·单片机·嵌入式硬件·自动化
无垠的广袤3 小时前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
雲烟5 小时前
嵌入式设备EMC安规检测参考
网络·单片机·嵌入式硬件
泽虞5 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
田甲6 小时前
【STM32】 数码管驱动
stm32·单片机·嵌入式硬件
up向上up6 小时前
基于51单片机垃圾箱自动分类加料机快递物流分拣器系统设计
单片机·嵌入式硬件·51单片机
纳祥科技15 小时前
Switch快充方案,内置GaN,集成了多个独立芯片
单片机
单片机日志16 小时前
【单片机毕业设计】【mcugc-mcu826】基于单片机的智能风扇系统设计
stm32·单片机·嵌入式硬件·毕业设计·智能家居·课程设计·电子信息
松涛和鸣17 小时前
从零开始理解 C 语言函数指针与回调机制
linux·c语言·开发语言·嵌入式硬件·排序算法