基于STM32单片机的智能取暖系统

2022-01-22 11:21陈娟竺兴妹
电子测试 2021年24期
关键词:晶振环境温度温湿度

陈娟,竺兴妹

(江苏省南京工程高等职业学校电子工程系,江苏南京,211135)

0 引言

取暖器的应用非常广泛,特别在寒冷的冬天,如果有一台智能的取暖器将会为生活带来非常大的便利。传统的取暖设备对温度的检测不够灵敏,往往当实际的温度已经很低的时候,取暖设备才会开始加热,并可能尚未达到所需的温度就已经停止工作了;有一些温度控制系统完全基于仿真软件来设计,并未在实际电路上测试;还有一些采用MCS-51单片机来实现,系统的处理速度一般[1]-[3]。本设计在Keil Vision5环境下编程,并且利用野火STM32开发板实现了功能——在环境温度低于25℃时,启动加热系统加热,在加热过程中当检测到环境温度达到28℃时就停止加热,从而使得环境温度保持在25℃—28℃之间。在取暖过程中,可能会出现空气干燥的情况,因此除了检测环境温度,系统还实时地监控环境湿度,可以提示人们根据自己身体的适应情况开启家中的加湿器。

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。它集编辑、编译、仿真于一体,同时还支持PLM,汇编和C语言的程序设计。它的界面非常友好,易学易用,在调试程序时,软件仿真方面也有很强大的功能。

STM32系列单片机具有专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核,是32bit系列的单片机,其内部资源(寄存器和外设功能)较8051、AVR和PIC都要多很多,基本上接近于计算机的CPU了。特别是与MCS-51系列单片机相比较,STM32系列单片机在速度和功能上要强很多。

1 系统的硬件设计

1.1 系统的结构框图

整个硬件系统基于野火STM32开发板,硬件电路主要由STM32单片机、DHT11数字温湿度传感器电路、LTDC/DMA2D液晶显示电路和升温装置组成。系统框图如图1所示,采用DHT11数字温湿度传感器检测环境温度,并将温度数据传输给STM32单片机,单片机分析处理温度数据,根据处理结果控制各电路工作——启动或者停止加热电路、LTDC/DMA2D液晶显示电路显示当前温度和湿度情况。

图1 系统的结构框图

1.2 单片机的复位电路和晶振电路

复位电路的作用就是重启系统。STM32的复位引脚NRST(14引脚)是低电平有效,即当14引脚为低电平时,单片机处于复位状态,重设所有的内部寄存器以及片内几十KB的SRAM;正常的工作状态下,复位引脚保持为高电平。

晶振电路的作用是为单片机提供时钟信号,STM32有两组晶振,一组是为STM32单片机提供主时钟的,是主时钟晶振,一般情况下取值为8MHz;一组是用来为RTC提供时钟信号的,是RTC时钟晶振,一般情况下取值为32.768K,在实际应用中,如果不使用RTC功能的话,则不需要连接RTC晶振,比如在本设计中,只需连接主时钟晶振即可。

图2 单片机的复位电路

图3 单片机的晶振电路

1.3 LTDC/DMA2D液晶显示电路

LTDC全称是LCD-TFT Display Controller, LCD显示控制器,主要是为外部LCD显示屏提供RGB信号和控制信号的。本系统采用了STM32F429系列单片机,该系列芯片内部自带一个LTDC 液晶控制器,使用SDRAM 的部分空间作为显存,可直接控制液晶面板,不需要另外再增加液晶控制器芯片。STM32的LTDC 液晶控制器最高支持800x600分辨率的屏幕;可支持多种颜色格式,支持2 层显示数据混合,利用这个特性,可高效地做出背景和前景分离的显示效果。

LTDC支持的分辨率较高,功能较多,该控制器只产生LCD需要的时序,没有集成RAM。在实际使用LTDC控制器控制液晶屏时,待LTDC正常工作之后,需要将要显示的像素数据写入到配置好的显存地址中去,因为显示的数据量非常大,因此STM32专门定制了DMA2D外设。DMA2D外设可以用于快速绘制矩形、直线、分层数据混合、数据复制以及图像数据格式转换[4]。

1.4 DHT11数字温湿度传感器

DHT11数字温湿度传感器是温湿度复合传感器,它含有已校准数字信号的输出,使用数字模块采集技术和温湿度传感技术,确保其可靠性和稳定性。其中传感器包含一个电容式感湿元器件和一个NTC测温元器件。由于DHT11数字温湿度传感器响应速度快、抗干扰能力强、信号传输距离远等优点,很多相关温湿度检测控制都可以应用该产品,如汽车、数据记录器、家电等[5]。

如图4所示,DHT11数字温湿度传感器有四个引脚,引脚1是VDD,一般用3.3V—5.5V的直流电供电;引脚2是DATA串行数据端,为单总线通信,即只有一根数据线,系统中的数据交换、控制均由单总线完成;引脚3是NC,为空脚,在实际应用时悬空即可;引脚4是GND接地端,接电源的负极。

图4 DHT11数字温湿度传感器实物图

2 系统的软件设计

2.1 系统流程图

首先对系统进行初始化,然后利用DHT11数字温湿度传感器获取当前的环境温度和湿度,并且送到LTDC/DMA2D液晶显示电路显示温度和湿度数据,当环境的温度处于25℃—28℃之间时,表示环境温度适宜,不需要启动加热系统;当环境的温度低于25℃时,表示环境温度偏低,需要启动加热系统;当加热系统不断工作,且检测到环境温度高于28℃时,停止加热系统的工作。

图5 系统流程图

2.2 部分程序代码

if( Read_DHT11 ( & DHT11_Data ) == SUCCESS)

{

printf(" ??DHT11??! ???%d.%d %%RH ,???%d.%d? ",

DHT11_Data.humi_int,DHT11_Data.humi_deci,DHT11_Data.temp_int,DHT11_Data.temp_deci);

LCD_ClearLine(LINE(2));

LCD_ClearLine(LINE(3));

sprintf((char*)dis_buf,”humidity: %2d.%2d %%RH,DHT11_Data.humi_int,DHT11_Data.humi_deci);

LCD_DisplayStringLine_EN_CH(LINE(4),dis_buf); //显示湿度信息

图6 环境温度为28.3℃时的测试情况

3 系统的测试

经过在野火STM32开发板上进行测试,在空调的辅助下,经过DHT11数字温湿度传感器检测到两种不同的温度,为了方便起见,左下角的LED灯为表示加热器状态的信号灯,测试结果如下:

(1)当检测到环境温度调节为28.3℃时,表示已经高于合适温度的范围,这时左下角的LED灯显示为蓝色,表示停止加热器加热,液晶显示屏的第一行显示“DHT11 temperature& humidity detect demo”(DHT11温湿度检测演示),第二行显示“humidity:76.0%RH”(湿度 :76.0%),第三行显示“temperature:28.3 degree Celsius”(温度 :28.3 摄氏度)。

(2)当检测到环境温度为23.5℃时,表示已经低于合适温度的范围,这时左下角的LED灯显示为红色,表示启动加热器加热,液晶显示屏的第一行显示“DHT11 temperature& humidity detect demo”(DHT11温湿度检测演示),第二行显示“humidity:46.0%RH”(湿度 :46.0%),第三行显示“temperature:23.5 degree Celsius”(温度 :23.5 摄氏度)。

图7 环境温度为23.5℃时的测试情况

4 总结

本系统基于野火STM32开发板,设计了一个智能的取暖系统,通过测试,能够准确地显示温度和湿度信息,并能够根据检测的温度正确地按照功能要求启动或者停止加热系统的工作,同时提供准确的湿度信息方便人们根据自己的适应情况进行空气的加湿。该系统的实现对于进一步地开发应用型智能取暖系统具有重要的意义。

猜你喜欢
晶振环境温度温湿度
Review of a new bone tumor therapy strategy based on bifunctional biomaterials
温湿度控制器在回收砂冷却系统中的应用
两非门晶振振荡电路的设计
基于晶振的高性能时间保持方法研究
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
晶振失效故障分析
蒸发冷却温湿度独立控制空调系统的应用
雷克萨斯CT200h车环境温度显示异常
控制系统中时序的研究