STM32技术驱动下的室内环境监测系统:构建、实施与性能分析

毕 业 设 计 说 明 书

课题名称

基于STM32的室内环境监测系统

院    系

计算机与软件学院

专    业

嵌入式技术与应用

班    级

嵌设1913

学    号

1902423134

学生姓名

刘倚帆

指导教师:

白顺科

2022 年  5 月  7 日

计算机与软件学院

毕业设计(论文)诚信承诺

    

我谨在此承诺:本人所写的毕业论文《基于STM32的室内环境监测系统》,由本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释与说明,若有不实,后果由本人承担。

承诺人(签名):

2022年  5月 7日

目录

1 绪论…………………………………………………..1

    1.1 背景和意义………………………………………1

    1.2系统设计目标…………………………….1

2 系统分析与设计………………………………………….2

3 硬件设计 ………………………………………………3

    3.1硬件总体设计……………………………………..3

    3.2硬件选型………………………………………….4

     3.2.1 STM32F103C8T6最小系统………………4

     3.2.2 DHT11模块…………………………..4

     3.2.3 MQ-2模块……………………………….5

     3.2.4 光敏电阻模块…………………………..6

     3.2.5  0.96OLED模块…………………….7

     3.2.6有源蜂鸣器模块…………………….8

     3.2.7 继电器模块……………………………..9

     3.3 小结……………………………………….10

4 软件设计……………………………………………..11

     4.1 软件总体设计……………………………………11

     4.2 主程序设计……………………………………..12

     4.3 温湿度监测设计………………………………….13

     4.4 烟雾监测设计……………………………………15

     4.5 光照监测设计…………………………………..17

     4.6 屏幕显示设计…………………………………18

5 系统实现与测试……………………………………..20

     5.1 系统的实现…………………………….21

     5.2 系统的测试……………………………….21

6 结论……………………………………………….23

致谢…………………………………………………..24

参考文献…………………………………………25

摘要

本课题旨在研究温湿度检测控制系统:通过DHT11温湿度传感器检测环境温湿度,将采集到的数据传给单片机进行处理,单片机处理后,当温湿度高于或者低于设定阀值后进行LED指示灯报警,实现自动化温湿度控制系统。采用STM32F103C8T6最小系统作为主控芯片实现最小系统、温湿度传感器、LED灯指示电路、程序下载电路组成,实现本次课题的硬件电路的设计与搭建。通过Keil5软件编写单片机程序,设置温湿度的阀值,采用Altium Designer设计绘制本次课题的原理图,软硬件结合设计,进行仿真实现本次课题的功能。本次课题使用到的技术:KEIL软件编译程序、Altium Designer设计原理图并仿真、温湿度传感器的使用、数码管驱动方法、单片机最小系统。

关键词:环境监测;光敏电阻模块;STM32F103C8T6芯片;DHT11模块; MQ-2模块

Summary

The purpose of this project is to study the temperature and humidity detection and control system: detect the ambient temperature and humidity through the DHT11 temperature and humidity sensor, transmit the collected data to the microcontroller for processing, and after the microcontroller is processed, when the temperature and humidity are higher or lower than the set threshold, the LED indicator alarm is carried out to realize the automatic temperature and humidity control system. The STM32F103C8T6 minimum system is used as the main control chip to realize the minimum system, temperature and humidity sensor, LED lamp indication circuit, and program download circuit to realize the design and construction of the hardware circuit of this project.Through Keil5 software, we write a microcontroller program, set the threshold of temperature and humidity, use Altium Designer design to draw the schematic of this project, combine software and hardware design, and simulate the functions of this project. The technologies used in this project are the KEIL software compiler, Altium Designer design schematics and simulations, the use of temperature and humidity sensors, the digital tube drive method, and the microcontroller minimum system.

Keywords: Environmental Monitoring;Photoresistor Module; STM32F103C8T6 chip;DHT11 module; MQ-2 module

1 绪论

本作品功能主要是监测室内温度、湿度、光照情况、明火情况。在研究温湿度监测控制系统:通过温湿度传感器监测环境温湿度,判断是否烟雾报警,将采集到的数据传给单片机进行处理,单片机处理后,当温湿度高于或者低于设定阀值后进行LED指示灯报警,实现自动化温湿度控制和烟雾监控系统。开发设计工具有:STM32F103C8T6芯片、DHT11模块、MQ-2模块、光敏电阻模块、0.96OLED模块、有源蜂鸣器模块。 

1.1 背景和意义

目前因为环境温湿度不适所引发的疾病很多,都是因为周围环境的变化,温湿度差异变化大,不容易控制,因此造成人体各类病症急发,在这种情况下,就需要对环境温湿度的强力控制,时时能够监测环境变化,进行有效的控制,实现环境温湿度的恒湿恒温,满足人们日常的工作学习,在这种现实的背景条件下,就应该快速的设计出温湿度控制系统。因此本课题研究内容为测量室内温湿度变化,光照和有害气体情况。

1.2 系统设计目标

本设计,完成基于STM32的房间环境监测系统设计与实现,将可直接放入普通的日常生活的房间里面以供使用,利用多个传感器采集数据,并且可以放置在多个房间里面同时使用,通过无线通信传感器将数据发送到主系统上再通过屏幕直接显示多个传感器采集到的数据供人们观看。

设计主要实现监测室内温度湿度、光照情况、烟雾情况的反馈,硬件各个传感器不停地监测着室内环境的温度、湿度、烟雾浓度、光照情况,并将监测到的各个情况显示在显示屏上,以温度、湿度、烟雾浓度、是否有光照的值来排序显示。由温湿度传感器监测温湿度,当超过预设值,控制蜂鸣器报警。使用光敏传感器监测光线强度,控制LED灯的开关。用火焰传感器监测当前环境是否有火焰,蜂鸣器报警。用屏幕显示各项数据。

2 系统分析与设计

嵌入式系统是由软硬件相结合可以单独运作的器件,其可以根据用户需求而定制的专用计算机系统,优点包括功能多、可靠性高、成本低、体积小、功耗低等等。嵌入式系统大多数满足了用户的特定所需,只需要打开电源给其供电就可以正常使用,操作简单容易。随着技术的发展,单片机的应用已经普及到了大小工程中,目前市面上的单片机产品太多太多。

我们日常生活的房间的温度,湿度等,随着这些指数的改变都会影响生活环境质量,从来影响我们的健康。室内环境监测系统设计,能够对人们居住的室内环境的温度、湿度、光照情况和安全度进行监测反馈,能够更好的提高大家的生活质量和健康。图2.1为设计的硬件系统功能图。

 

图2.1硬件系统功能图

本设计还需要做以下准备:1、熟悉使用Keil uVision5软件编译程序:对建立工程文件、编译过程、报错提示、修改程序、下载程序必须清楚,这样才能对单片机软件程序与代码改错有更深刻的理解与记忆。2、熟悉Altuim Designer仿真软件:这款软件能够创造良好的硬件环境,对于操作者而言,必须熟悉掌握怎样调用元器件、元器件之间走线。3、温湿度传感器的使用:必须熟悉掌握传感器的使用方法,怎样读数据、怎样写数据、怎样将数据进行转换,这些是程序代码设计时需要搞明白的问题。

3 硬件设计

为实现本作品功能,所用的硬件选择有STM32F103C8T6芯片、DHT11模块、MQ-2模块、光敏电阻模块、0.96OLED模块、有源蜂鸣器模块。 以下为选用硬件材料的介绍。

3.1 硬件总体设计

本作品的架构为:一个主控芯片作为整个系统的控制核心;温度元器件和湿度元器件用来监测室内的空气温度和湿度;烟雾元器件监测室内的有害情况,是否有火灾等危险情况;光敏监测元器件监测室内的光照情况,判断是否有光照;显示元器件用来显示反馈所有监测的具体情况;报警和空调元器件是当监测情况有异常时会开启工作。室内环境监测系统设计,能够对人们居住的室内环境的温度、湿度、光照情况和安全度进行监测反馈,能够更好的提高大家的生活质量和健康。图3.1为本设计的整体硬件原理图。

 

图3.1 硬件原理图

3.2 硬件选型

在设想定下后,就需要具体选择合适的各种传感器去实现本作品的功能。本作品用到的硬件有:STM32F103C8T6芯片、DHT11模块、MQ-2模块、光敏电阻模块、0.96OLED显示模块、有源蜂鸣器模块、继电器模块,采购的渠道为淘宝店铺。以下是本设计选择的硬件型号细节和各部分原理图的介绍。

3.2.1 STM32F103C8T6芯片

在主控芯片的选择上,首先设想使用32位的单片机控制,之后又从众多32位单片机中选了ST公司的STM32F103C8T6芯片作为开发设计工具的芯片。这款芯片是STM32芯片中的基础款,有64KB的存储大小,37个GPIO,内置IIC、SPI、CAN通信方式,是众多嵌入式学习者的第一选择,也是现在网上可查资料较多的一款32位单片机芯片,方便后面开发查找到相对应的资料。但芯片无法直接用来进行开发,所以直接购买了基于此款芯片的最小系统,可以直接拿来进行开发设计,方便快捷,图3.2为STM32F103C8T6芯片。

 

图3.2 STM32F103C8T6芯片

3.2.2 DHT11模块

在温度元器件和湿度元器件的选择上,没有选择两个传感器,而是选择了一个DHT11温湿度数字传感器,可以把温湿度合并在一个传感器上监测,这是一款自带数据校准的单向数字信号输出的可同时监测温度和湿度的复合传感器,它使用专门的数字模块采集技术和温湿度传感技术,稳定性可靠、响应快,抗扰的能力更强。具体的购买上,选择的是DHT11的模块,上面有三个引脚,两边两个用于给传感器供电,工作电压在3.3V-5V,使用单片机3.3V引脚直接给它供电就行,还有一个引脚用于通信。模块上还有带了一个LED灯,上电后会亮,更加方便我们观察传感器的使用情况,图3.3为DHT11模块样图。

 

图3.3 DHT11模块

DHT11温湿度传感器DATA引脚与单片机PB5引脚相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,图3.4为DHT11的连接图。

 

图3.4 DHT11连接图

3.2.3 MQ-2模块

在烟雾元器件的选择上,选择了MQ-2烟雾传感器模块,此款传感器使用的是气敏材料二氧化锡,此材料的特性是在纯净空气中导电率较低,所以在有烟雾或其他有害气体浓度过高时,其导电性会有变化,可以使用单片机去读取这个电压大小来反应有没有烟雾之类的。

这个购买的也是模块,它有四个引脚,两个5V供电引脚,可以用单片机5V引脚供电;一个DO输出引脚,这个引脚用来输出数字信号,只有浓度高和低两种状态,这个高和低的设定,由模块上的一个电位器进行调节;还有一个是AO输出引脚,这个引脚用来输出模拟信号,传感器此时输出的是一个电压值,可以配合使用单片机的ADC功能读取这个电压值,可以转换成具体的浓度数值,0.1-0.3V表示相对无污染,浓度电压最高可以到4V,图3.5为MQ-2模块图。

 

图3.5 MQ-2模块

MQ-2烟雾传感器使用模拟输出,AO引脚与单片机PA1引脚相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,图3.6为MQ-2连接图。

 

图3.6 MQ-2连接图

3.2.4 光敏电阻模块

在光敏元器件的选择上,选择了光敏电阻传感器模块。光敏电阻是一种特制的电阻器,它会随着光照强度升高,电阻值迅速降低。

这个购买的也是模块,和MQ-2模块类似,它有四个引脚,两个3.3-5V供电引脚,可以用单片机3.3V引脚供电;有一个DO输出引脚,这个引脚用来输出数字信号,也只能判断高和低两个状态,由模块上的一个电位器进行调节高和低的设定;还有一个是AO输出引脚,这个引脚用来输出模拟信号,传感器此时输出的是一个电压值,可以配合使用单片机的ADC功能读取这个电压值,可以转换成具体的光照情况数值,判断是否有光照的情况,如图3.7。

 

图3.7 光敏电阻模块

光敏传感器使用数字信号输出,DO引脚与单片机PB6引脚相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,图3.5为光敏电阻传感器连接图。

 

图3.8 光敏电阻传感器连接图

3.2.5 0.96OLED显示模块

显示元器件的选择上,常见的有LCD和OLED两种,最后选择了0.96寸的OLED显示屏。OLED是一种显示技术,有自发光的特性,不像LCD屏幕需要背光灯,减少了硬件自身产生的功耗,更适合有功耗要求的设计。0,96寸的OLED屏幕分辨率是128*64,与12864LCD分辨率相同,但OLED的像素点更多,显示的色彩更丰富。OLED屏幕通信方式有IIC和SPI两种方式。能购买的模块有4针脚和7针脚两款,4针脚的只有使用IIC通信方式,7针脚的两种方式都可以,所以选用了7针脚的。

 

图3.9  0.96OLED模块

0.96OLED屏幕使用SPI通信方式,D0引脚与PA4相连,D1引脚与PA5相连,RES引脚与PA6相连,DC引脚与PA7相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,图3.10为0.96OLED连接图。

 

图3.10  0.96OLED连接图

3.2.6 有源蜂鸣器模块

用于报警的元器件,选择了5V低电平触发的有源蜂鸣器模块。此款传感器模块用S8550 PNP三极管驱动,有三个引脚,VCC接单片机3.3V或5V引脚,GND接单片机GND引脚,I/O引脚接单片机随便哪个GPIO控制引脚,引脚给出一个低电平就可以让蜂鸣器鸣叫,不像无源蜂鸣器光给一个直流信号是不工作的,要外接一个2K的电阻才能驱动它,图3.11为有源蜂鸣器模块图。

 

图3.11 有源蜂鸣器模块

有源蜂鸣器IO引脚与单片机PB12引脚相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,单片机让PB12引脚输出一个低电平,蜂鸣器就能工作,如图3.12。

 

图3.12 有源蜂鸣器连接图

3.2.7 继电器模块

最后一个作为空调的元器件,基于实际无法真的外接一个空调,所以选择使用一个5V的继电器模块让它模仿空调的工作模式。

5V继电器模块有一个信号接收引脚IN,由单片机的控制引脚控制、三个电源控制端,来给别的硬件供电,继电器是硬件设计中比较常用的器件,可以把继电器当作开关,单片机控制继电器,继而控制与继电器相连的硬件开和关。继电器模块上的发光二极管有一个绿色的LED,当继电器处于开启状态,LED会亮,当继电器处于断开状态,LED熄灭,这个可以表现为空调打开。图3.13为继电器模块图。

 

图3.13 继电器模块

继电器IN引脚与单片机PB11引脚相连,VCC引脚和GND引脚与单片的3.3V引脚和GND引脚相连,继电器也是低电平触发,和有源蜂鸣器工作方式一样,单片机让PB11引脚输出一个低电平,继电器就能工作,如图3.14。

 

图3.14 继电器连接图

3.3 小结

本章节说明了本设计系统中硬件需要提供的一些功能,给了一张硬件系统功能图,直观的可以看明白,根据这些需求功能,具体的选择了主控芯片STM32F103C8T6、温湿度传感器DHT11、烟雾传感器MQ-2、光敏监测的光敏电阻传感器、显示用的OLED屏幕、报警用的5V低电平触发的有源蜂鸣器、模仿空调工作的5V低电平触发的继电器。简要说了下它们各自的工作原理和选择这些元器件的原因。

本章节给出了设计系统的总体原理图,简要的说明了各传感器与STM32F103C8T6单片机相连的接口情况并给出了局部的接线示意图,能更清晰的查看连接的细节。

4  软件设计

本设计的软件编写方面,大框架上分为监测、显示、报警三个大部分,监测部分软件要编写的功能有温度的监测、湿度的监测、烟雾的监测、光照的监测;显示部分是要把监测到的温度、湿度的数值通过屏幕显示出来,光照情况则是显示一大致的状态;报警部分是在温度超过设定的阈值时进行报警,并打开空调代表进行降温;在烟雾也超过设定的浓度时进行报警。

4.1 软件总体设计

如下图4.1为软件功能框图。

     

 

图4.1 软件功能框图

本设计的软件要编写的功能有:

1.温度监测         6.湿度显示

2.湿度监测         7.光照显示

3.烟雾监测         8.温度超过阈值报警并打开空调

4.光照监测         9.烟雾超过阈值报警

5.温度显示

这些功能是一个个单独的功能模块,好了之后还需要在主程序中进行调用运行,使单独的功能组合起来,真正实现室内环境监测的系统设计。

4.2 主程序设计

主程序文件中主要是在将各个功能模块组合起来,逻辑性地调用各个功能模块函数,使系统合理的运行。

要想各功能模块能够调用运行起来,首先需要将各个传感器初始化一下,这一步就是在把传感器一个个地打开,打开后传感器才能工作。

初始化过后,开机界面显示是在让屏幕显示一些内容,作为一个显示界面。

主程序中在不停地调用监测温湿度、烟雾、光照的功能函数,硬件各个传感器不停地监测着室内环境的温度、湿度、烟雾浓度、光照情况,并将监测到的各个情况显示在显示屏上,以温度、湿度、烟雾浓度、是否有光照的值来排序显示,如图4.2所示。

 

图4.2 主程序流程图

4.3 温湿度监测设计

温湿度监测功能函数在调用读取温湿度的函数,读取成功后将读取到的温湿度显示出来,之后判断温度是不是超过了40℃,如果满足,则打开继电器,此时继电器模块上的绿色LED灯亮起模仿打开空调,反之关闭继电器,模块上的绿色LED灭,模仿关闭空调,如图4.3所示。

 

图4.3 温湿度监测功能流程图

传感器DHT11是单通道数字传感器,它一下子会传输5个字节的数据,数据是高位先出。在读取温湿度数据时,先复位一下传感器,然后监测传感器是否存在,存在的话,读取数据。

这五个字节,第一个字节是湿度的整数部分,第二字节是湿度小数部分,第三个字节是温度的整数部分,第四字节是温度小数部分,第五个字节是一个校验数据,当前四个字节逻辑加的值等于第五个字节的值时,说明读取的数据是正确的。才能将数据传回温湿度监测函数使用。下面代码段就是在判断数据的准确性,其中,buf[0]中的值是湿度的整数部分,buf[1]中的值是湿度的小数部分,buf[2]中的值是温度的整数部分,buf[3]中的值是温度的小数部分,buf[4]中的值是校验字节,*sd是传回湿度的指针型变量,*wd是传回温度的指针型变量。

if(buf[0]+buf[1]+buf[2]+buf[3]==buf[4])

        {

            *sd=buf[0];

            *wd=buf[2];

            return 0;

        }

 

图4.4 温湿度读取流程图

继电器的开与关一行语句就可以实现,下面的代码中就是在判断温度的阈值,这里设定的阈值是40。大于40就让PB11输出低电平让继电器打开,反之则让PB11输出高电平关闭继电器。GPIO_ResetBits和GPIO_SetBits两个函数是使用STM32固件库开发方式,固件文件封装的一些对GPIO引脚进行控制的函数,可以直接拿来调用,GPIO_ResetBits是令规定的引脚输出低电平,它的两个形参就是引脚的具体端口和引脚数,GPIO_SetBits同理是让引脚输出高电平。

if(wd>40)

{

GPIO_ResetBits(GPIOB,GPIO_Pin_11);//打开继电器

}

else

{

GPIO_SetBits(GPIOB,GPIO_Pin_11);//关闭继电器

}

4.4 烟雾监测设计

 

图4.5 烟雾监测流程图

烟雾传感器使用的是模拟输出模式,单片机要读取数据要先开启ADC功能,将模拟信号转换成数字信号。下面的代码是在为让读取的数据更加准确,连续读取30次数据,之后将这30个数据相加的总和除以30算出一个平均值,这样的数据更加准确。

这时得到的数据只是单片机引脚读取到的数字信号的一个值,并不是直接的电压值,所以还需要将这个数字数据转换成我们能理解的电压值,从而进一步去判断室内环境的烟雾浓度大小是不是需要打开蜂鸣器报警。

for(i=0;i<30;i++)

    {

        ADC_SoftwareStartConvCmd(ADC1,ENABLE);

  while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));

  adc_temp=adc_temp+ADC_GetConversionValue(ADC1);

        delay_ms(1);

    }

下面的代码就是在判断当电压值大于2.5时去打开蜂鸣器,反之关闭蜂鸣器。有源蜂鸣器的开与关和继电器一样,一行语句就可以实现,下面的代码中就是在判断电压的阈值,这里设定的阈值是2.5。大于2.5说明烟雾浓度过高,室内环境有危险,不适合居住,就让PB12输出低电平让蜂鸣器打开,反之则让PB12输出高电平关闭蜂鸣器。GPIO_ResetBits和GPIO_SetBits两个函数是使用STM32固件库开发方式,固件文件封装的一些对GPIO引脚进行控制的函数,可以直接拿来调用,GPIO_ResetBits是令规定的引脚输出低电平,它的两个形参就是引脚的具体端口和引脚数,GPIO_SetBits同理是让引脚输出高电平。

if(dy>2.5)

{

GPIO_ResetBits(GPIOB,GPIO_Pin_12);

}

else

   GPIO_SetBits(GPIOB,GPIO_Pin_12);

4.5 光照监测设计

 

图4.6 光照监测流程图

光敏电阻传感器使用的数字输出模式,在读取光照强度时只要读取传感器控制引脚的电平状态就能知道有无光照。这里的光照监测只能监测光照大致的情况,就有和无两种情况,有光照的时候屏幕上显示内容OK,反之显示内容NO。

下面的代码就是在读取当前光敏传感器数字信号输出引脚的电平状态,当电平状态为“0”低电平,说明此时的室内环境光照充足,当电平状态为“1”高电平,说明此时的室内环境光照昏暗。光敏电阻传感器的电平状态读取语句和有源蜂鸣器继电器类似,一行语句就可以实现, GPIO_ReadInputDataBit函数是使用STM32固件库开发方式,固件文件封装的一些对GPIO引脚进行控制的函数,可以直接拿来调用,GPIO_ReadInputDataBit函数是用来读取引脚电平状态的,它的两个形参就是引脚的具体端口和引脚数。其中,RESET代表低电平。

if( RESET==GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6))

{printf("OK\n");//有光照

OLED_ShowString(60,4,stat1);}

    else

{

printf("NO\n");//无光照

OLED_ShowString(60,4,stat2);

}

4.6 屏幕显示设计

本设计中,OLED屏幕上显示的内容有主程序一开始调用的开机界面显示内容函数。这个函数在屏幕上显示了三行内容:“TEMP:”、“HUMI:”、“illum:”代表着温度、湿度、光照的监测分别在这三行上显示。OLED屏幕的显示过程就是先告诉屏幕你要在屏幕的哪里显示什么内容,例如以下代码:OLED_ShowString函数就是在显示字符串类型的内容,这个函数有三个形参,前两个是坐标,第一个数代表列的坐标,第二个数代表行的坐标。最后一个形参就是要显示的内容。

OLED_ShowString(0,0,"TEMP:");

OLED_ShowString(0,2,"HUMI:");

OLED_ShowString(0,4,"illum:");

 

图4.7 屏幕显示流程图

在温湿度监测函数中,也用到了OLED_ShowString函数显示监测到的温度和湿度。显示的位置与显示内容“TEMP:”、“HUMI:”的行的坐标一致,列的坐标比其列的坐标大,即在“TEMP:”、“HUMI:”后面显示。代码如下:例如第一行代码显示的是湿度,它显示的坐标是“60,2”,而湿度HUMI:”显示的坐标是“0,2”行坐标都是2,竖向的位置没有变化,列坐检标变成了60,大于2,横向的位置向后移了,即湿度的数值在“HUMI:”后面显示出来。

OLED_ShowString(60,2,hum);

OLED_ShowString(60,0,temp);

还有一个显示的内容是光照的情况,当有光照的时候,在“illum:”内容的后面显示“OK”,没有光照的时候显示“NO”。

5 系统的实现与测试

本系统制作选用的软件平台为:Keil uVision5和Altium Designer,其中Keil uVision5注意安装的时候是以管理员身份运行,示图5.1。

 

图5.1 Keil uVision5安装图

安装完成,进行程序的编写和调试后,将编写完成的程序进行编译和运行的测试,根据错误和警告的提示修改程序,到无程序语法错误。程序生成十六进制文件,通过st-link下载到单片机,运行整个系统,并根据实际运行情况进行程序调试。

Altium Designer的安装注意的是选择中文版如图5.2所示。

 

图5.2 Altium Designer安装图

5.1系统的实现

将各个硬件组装到系统板上,首先需要将各个传感器硬件的管脚通过杜邦线连接到主系统和子系统板上,DHT11一共有三个管脚需要和系统板相连接,主系统板接线,主系统板上DHT11数据管脚连接PG11,子系统板上DHT11数据管脚连接PB1,其余两个管脚连接在系统板上的电源正极和负极上,子系统板接线,蜂鸣器也有三个管脚,电源正负极和I/O管脚,I/O管脚连接在主系统板上的PB8管脚,由于主系统板上集成的NRF24L01无线模块的管脚,所以直接将NRF24L01无线模块插在集成的管脚上,子系统板上连接线需要八根,具体连线为,CE连接PB10,CSN连接PB11,SCK连接PB13,MOSI连接PB15,IRQ连接PB12,MISO连接PB14,电源正负极。所有器件连接好后,如下图5.3所示:

 

图5.3硬件组装图

5.2系统的测试

上电测试,由于屏幕需要刷新时间,有适当的延迟时间才能正常显示出数值变化,屏幕显示会随着传感器检测到的值得变化而变化显示,实时的将数据直接显示出来方便我们查看,至此系统设计完成。

 

图5.4系统测试图

如图5.4,接电后能够正确的显示出室内环境的参数,屏幕显示的三个数据依次为:温度、湿度、是否有光照。

表5.1 传感器测试表

6:00

8:00

10:00

12:00

14:00

温度(℃)

18

23

28

29

30

湿度(%)

67

63

59

56

56

为了测试系统的准确性,我选择对屏幕显示的数据进行一天内五个时间段的测试和记录,记录图表如下表5.1,从表中反应了五个时间段温度和湿度的实时变化情况。

6 结论

本设计说明介绍了设计的软硬件细节,软件各部分的分析,硬件选材和系统的测试等。软件设计完成的一些功能模块:温湿度监测功能模块、烟雾监测功能模块、光照监测功能模块、屏幕显示功能模块和主程序中是如何调用这些功能模块完成整体系统运行的。每个功能模块都有一张功能流程图,配合流程图说明了其功能的运行流程,并选择了部分重要的代码段进行了分析讲解。

从软件方面实现了本系统最初的想法。做到了实现监测室内温度湿度、光照情况、烟雾情况的反馈,硬件各个传感器不停地监测着室内环境的温度、湿度、烟雾浓度、光照情况,并将监测到的各个情况显示在显示屏上,以温度、湿度、烟雾浓度、是否有光照的值来排序显示。由温湿度传感器监测温湿度,当超过预设值,控制蜂鸣器报警。使用光敏传感器监测光线强度,控制LED灯的开关。用火焰传感器监测当前环境是否有火焰,蜂鸣器报警,用屏幕显示各项数据。本设计还有一些不完善的地方,目前市场上的产品,可以通过蓝牙、互联网连接,但是由于我的知识储备量不足,还无法做到将其完善。我在嵌入式这个专业的学习还是很短暂的,还有很多需要我所学习的地方。

致谢

三年好长,岁月交替要整整三年春秋。三年好短,岁月倏逝转眼便人散杯空。在南工职大匆匆三载,19年的我懵懂的踏入大学这扇门,至此我执笔写下了这篇收尾的致谢。我将回忆在脑海里缓慢铺陈,吉光片羽般的青春,一旦落幕便要被长久封存。

    桃李不言,下自成蹊。在这里,我要感谢我遇到的老师们对我的耐心指导和帮助,歌颂师德的诗词也都有了附丽。白顺科老师也是我的毕设指导老师,他学识渊博、循循善诱,对待学生平易近人,激励着我们不断奋进,有幸成为白老师的学生,真的很幸运,在此向您致以诚挚的感谢和至高的敬意!

    平生知己,感谢相逢,平生逢知己,方寸岂悠悠,感谢大学期间一直帮助我、陪伴我每一程的同学和朋友们,衷心的感谢嵌设1913班的同学们,感谢海棠苑2栋306的小可爱们,你们满足了我对同窗之情的所有渴望和想象,我们途径对方最美好的年华,见证彼此的成长,分享对未来的规划和远大理想,三年转瞬即逝,我们即将各奔前程,那些温馨的点滴,都会凝结成青春里最宝贵的回忆。

    初见乍惊欢,久处亦怦然。感谢我的男朋友,他阳光、帅气、正直、善良,是我遇见的特别的人,感谢他一路以来的陪伴和包容,感谢他对我无微不至的照顾,对我迷茫时候的鼓励,他就像一束光出现在我的大学时期,是他的责任与担当,给予我足够的安全感,很幸运与他相识相知相恋。愿我们在未来的日子里,携手前行,用热爱抵御岁月漫长。

    以梦为马,不负昭华。感谢一直不曾放弃的自己,纵使现在还没有看到胜利的曙光,但付出的都会留下足迹。会不断前行,不负青春,不负此生。

    我怀着沉重的心情,作别这一程的风景。书上说天下没有不散的宴席,但是书上还说,人生何处不相逢,不负相传,不负盛世,无愧自我,无愧时代。寥寥数语,难诉衷肠,致谢词穷,总之来日方长。祝各位一路顺风,让我们顶峰相见!

参考文献

[1]孙玉轩. 基于DDS和单片机技术的高频信号发生器设计[J]. 计算机产品与流通,2018(07):112+117.

[2]王立彪,李超凡.一种基于51单片机的智能室内温控系统设计[J].中国科技信息,2020(11):88-89+13.

[3]何流,谭文韬,张鹏琴,余建想.基于温度传感器的智能恒温空调系统设计[J].计算机产品与流通,2020(06):144.

[4]李成浩,刘显明,章鹏,雷小华,陈伟民.温度传感器时间常数测试技术发展现状与分析[J].宇航计测技术,2020,40(02):1-7+13.

[5]姜展翔,杨明冬,宋蓓莉,全本庆.用于光收发模块热性能测试温度传感器测量误差分析[J].现代机械,2020(02):36-40.

[6]茅阳. 单片机技术在电气传动控制系统中的应用与研究[J]. 中国高新区,2018(01):24.

[7]贾飞. 单片机技术课程中项目教学法的应用案例[J]. 张家口职业技术学院学报,2017,30(03):75-77.

[8]刘婷. 传感器设计中应用单片机技术的分析[J]. 数码设计,2017,6(09):85.

[9]黄海燕. SPOC教学模式在高职单片机技术课程教学中的实施探索[J]. 课程教育研究,2018(01):210-212.

[10]张承畅,吴孟林,张华誉,罗元,何丰. 面向学生工程能力达成的“单片机技术”实验案例设计[J]. 实验技术与管理,2018,35(05):178-182.

[11]黄海燕. 基于创客教学模式的高职生态课堂建设的实践研究——以单片机技术课程为例[J]. 佳木斯职业学院学报,2018(05):1-3.

物联沃分享整理
物联沃-IOTWORD物联网 » STM32技术驱动下的室内环境监测系统:构建、实施与性能分析

发表评论