基于STM32的环境监测系统 (esp8266)
本设计以单片机为核心控制器件结合温湿度传感器、空气质量传感器和光敏电阻传感器等进行一个环境检测系统的设计。该设计可通过温湿度传感器、空气质量传感器和光敏电阻传感器实时检测所处的环境情况,主控模块会连接蜂鸣器电路,若空气质量过高,可通过WiFi上传到上位机,使其将信息传送到云平台,并使蜂鸣器及时发送报警信息,能够及时获取所处的环境信息,便于及时针对处理。
Notice:需要源码或相关资料实物的友友请关注、点赞,私信吧!!!!
对应源码及所有文件下载:源码及所有文件
基于STM32的环境监测系统
1、研究背景与意义
随着互联网通信和电子科技的飞速发展,人们的生活方式也发生了革命性变化。科学技术的进步带来了新时代的产品,这些产品在人们的生活中发挥着越来越重要的作用。
在现实中,运用单片机控制的系统已经在人们的生活中有所普及,比如交通信号灯或者心率健康检测等。若没有专业环境参数的监测,人们的日常生活将会受到很大的影响,环境也是诸多病症的组成因素之一,而这种环境的过渡变化人体很难第一时间进行察觉,但潜移默化中会对身体造成或多或少的影响。总的来说,环境检测可以统计环境变化趋势、预测可能出现的环境问题,提供有用的环境资源,早一步避免人力、财力的损失,达到趋利避害的效果。
因此,设计一个环境检测系统具有重要的实际意义。与此同时,良好的室内空气质量有助于调动员工的积极性,提高工作效率百分之十左右。总的来说,实时准确地获得气体浓度数据并进行检测操作对于舒适的居住环境和良好的工作氛围等都有着重要意义。
2、国内外研究现状及发展趋势
早期,一些发达国家如美国、日本、欧洲等国相继推出自己的环境检测方案并付诸实际措施。长期发展历程中可以概括为两个阶段,化学仪器和现场检测。追溯到二十世纪,模拟集成温度传感器横空出世,运用集成工艺将所需模块集成到一块芯片上,功能实用性上大大提高,正向更高端更智能的方向不断发展。
我国相对于外国来说,开始环境质量检测的时期较晚,发展也相对更慢。纵观整个发展史,大致分为三个阶段:人工检测、有线和无线检测,其中有线检测是自动化的,并针对不同地区侧重不同,如北方以大气检测为主,采用烟气实时检测系统;南方则侧重水污染,主要采用技术为COD在线实时自动检测技术。主要检测方面针对空气质量和烟尘量以及水污染为主体,而且当时的产品只能测定一个环境变量,具有很强的局限性。
3、主要研究内容
本次研究设计的主要内容是设计一个基于STM32单片机的环境检测系统。主要采用硬件与软件相互结合的设计方式,拥有可在室外使用、成本低、功耗小、采集数据准确度高、方便快捷的优势,对人体健康保护具有重要作用。
- 第一章先是对课题的研究背景与意义作了阐述,然后对国内外现状关于环境检测的指标进行介绍,以及运用了什么技术进行了简要的叙述。
- 第二章通过对系统总体设计方案的确定,明确了主控芯片和各硬件模块的选型,并对各个模块作了细致的描述。
- 第三章完成软件部分设计,包含各个环境检测模块,代码逻辑用流程图表示出来,使其实现对应的功能。
- 第四章对完成品进行功能测试,检查硬件焊接标准,对各个传感器进行控制变量记录显示数据,比较是否符合预期标准。
4、控制系统设计方案
本设计以单片机为核心控制器件结合温湿度传感器、空气质量传感器和光敏电阻传感器等进行一个环境检测系统的设计。该设计可通过温湿度传感器、空气质量传感器和光敏电阻传感器实时检测所处的环境情况,主控模块会连接蜂鸣器电路,若空气质量过高,可通过WiFi上传到上位机,使其将信息传送到云平台,并使蜂鸣器及时发送报警信息,能够及时获取所处的环境信息,便于及时针对处理。进行理论复习学习后,需运用所学知识进行电路图的绘制,完成电路板的制作,编写程序进行系统调试,最终完成具有要求功能的环境检测系统。
5、电路系统设计方案
本系统设计主要分为三个部分,分别是:环境检测数据的采集,OLED显示检测到的数据,数据上传到上位机并显示数据。主控芯片选择STM32单片机,其接收指令对环境光照强度、温湿度、空气质量数据进行收集,同时将参数信息反馈到OLED显示屏和云平台上,通过串口连接到WiFi通信模块,实现二者之间的数据传递。蜂鸣器模块是由单片机发出高电平即可发出警报,当空气质量大于设定的阈值时,发出报警声音。
6、系统控制芯片选择
系统主控芯片是整个系统控制的核心部分,主要职责是进行数据接收、分析、处理与执行,在设计中具有举足轻重的作用。
在单片机的开发和工程实践上,STM32的设计初衷就是针对于全面的功能以及低功耗的前提,与51单片机对比,存在很大差异。STM32单片机性能要比C51的性能高出几倍,这就意味着就可以实现更多的功能,同时价格低廉,换言之即为可以用更便宜的价格实现更高的性能和更多的功能,这不仅大大增强了系统的性能,而且为开发者提供了经济上的支持。目前,越来越多的用户开始选用STM32单片机作为主控芯片。
7、传感器电路设计
7.1 光照强度监测模块
在检测光照强度模块的选择上,本次设计选用光敏电阻传感器。光敏电阻是一种特殊的电阻器,是基于一种材料对不同的光照强度有着不同的导电率的原理设计的,而材料选用一般都为半导体(常见的有硫化镉或者硒化镉等),一点微弱的光照变化就可以使材料的导电率发生变化,使得其对环境光线十分敏感,一般用来检测所处环境的光线亮度,其光线亮度与电阻值成反比。当阻值发生变化时,就可以对变化的幅度进行分析,再根据变化幅度的范围,按照一定的规则来转换为光照强度的数值。
可通过旋钮改变它的阈值,本设计通过AO口来输出模拟信号从而进行光照强度数值的转换,换言之,就是光敏电阻传感器将采集的光线强度变成一个连续的模拟信号,然后从AO引脚输出出来,经转换后就能得到一个光照强度数值。
本设计选择此光敏电阻传感器作为光照强度检测模块,是因为它对光照强度的变化所传递的数值非常精准,而且具有体积小,重量轻等优点,便于嵌入在各种小型设备上。系统中的光照强度检测模块还具有以下特点:
(1)其模块核心采用高灵敏型光敏电阻传感器。
(2)工作的电压范围为3.3V-5V。
(3)使用宽电压LM393比较器。
(4)输出为比较器,信息完整,波形明显,输出方式为DO数字开关量输出(0和1)和AO模拟电压输出。
(5)PCB为小板尺寸,便于嵌入在各种小型产品上。
7.2 温湿度监测模块
随着科技日新月异的发展,温湿度传感器已不再局限为最初的湿敏元器件,也开始向集成化、多样化进行发展。在检测温湿度模块的选择上,并没有分开去选择温度传感器和湿度传感器,而是合二为一,本设计系统决定选用DHT11温湿度传感器,此款复合传感器可以同时感知环境中的温湿度,在功能上更加强大,自带数据校准,稳定性有保障,而且在准确性方面不输于传统的分离式传感器。
DHT11温湿度传感器模块是市面上很常见的传感器模块,它的体积非常小而且设计精巧,每个模块的重量仅有8克,非常适合用于空间较小、产品体积较小的设计,性价比极高。在设计中可以很方便的嵌入到实体设备中,可以使实体设备更加精巧。它是一种在输出时直接输出数字信号的传感器,使得在单片机处理数据时不需要在进行转换,处理速率得到了很大的提高。其工作形式是:首先需要感应到连接单片机接口的电平变化才会开始检测,即若单片机不发出信号,就不会检测温湿度,也不会把采集到的所处环境的温湿度参数以数字信号的形式串行传输到单片机。
DHT11数字湿温度传感器采用单总线数据格式。即,单个数据引脚端口完成输入输出双向传输。其数据包由5Byte( 40Bit)组成。数据分小数部分和整数部分,具体格式在下面说明。一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和校验和数据为前四个字节相加。
7.3 空气质量监测模块
空气质量检测模块用于检测所处环境的空气质量,实现对空气质量的检测。空气质量检测传感器原理上是利用一些气敏材料,这种材料在不同空气质量下的电阻率不同,主要质地是二氧化锡。当环境中存在有害污染气体时,模块中的气敏材料的导电性能就会发生改变,电导率会随着空气质量增加而逐渐增大。换言之,空气质量越高,其模拟量的输出电压越高,由于其输出为模拟信号,那么就需要将其进行AD转换,转变成单片机可以处理的数字信号,最终使其在OLED上显示。最终本设计选用MQ-135传感器,它是一种可靠性高、适合多种应用、成本低、应用技术先进的检测空气质量的传感器。它可以检测多种有害气体,例如:氨气、硫化物和苯系蒸汽等。
工作原理:MQ135传感器采用二氧化锡(SnO2)作为气敏材料。在清洁空气中,该材料的电导率较低。当传感器所处的环境中存在污染气体时,传感器的电导率会随着空气中污染气体浓度的增加而增大。通过简单的电路,可以将电导率的变化转换为与该气体浓度相对应的输出信号。
7.4 OLED显示屏模块
在显示模块的选择上,一般常见的是OLED和LCD两种,本系统选用0.96寸的OLED显示屏将检测的环境数据显示出来。
OLED显示屏驱动电流小,可以自己发亮,不像LCD屏需要背光灯,其响应速度也比同类型的LCD快;能耗方面,同等亮度下,虽然LCD能耗低一些,但是背光源长亮的条件下,LCD的能耗会超过OLED,从侧面说明在此等的状态下,OLED的能耗要优于LCD;
OLED裸屏总共种接口包括:6800、8080两种并行接口方式、3线或4线的串行SPI接口方式、IIC接口方式(只需要2根线就可以控制OLED),本次实验的OLED采用的就是IIC接口方式。
IIC主从通信过程
主设备往从设备写入数据需要有下面的过程:
1.主设备发送一个起始信号(START)。
2.主设备在数据线上广播从设备地址。
3.确定数据传输方向(R/W)。
4.等待从设备应答信号(ACK)。
5.主设备发送数据到从设备,从设备接收到后,会返回给主设备一个应答信号,直到主设备发送完数据,或者从设备返回一个NACK信号,表示从设备不再接收数据。
6.数据发送完毕,主设备发送终止信号(STOP)。
目前,OLED显示屏技术被看作是下一代屏幕科技的创新领域,同时也是下一代平面屏幕的强力应用技术,而且作为新兴技术产品,无论是在价格优势还是性能方面,都要强于过去传统的LCD显示屏。0.96寸的OLED显示屏实物图
本系统中OLED显示屏有四个引脚,分别是引脚1是接地的引脚,和STM32F103最小系统板的GND相连;引脚2为VCC,是OLED显示屏的供电引脚,其工作电压的范围为3.3V-5V;引脚3为SCL时钟线与STM32F103最小系统板的PB6端口相连接;引脚4为SDL数据线与STM32F103最小系统板的PB7相连接。
7.5 WIFI通信模块
在数据传输方面,采用下位机上传至上位机。本系统决定采用ESP8266作为WiFi通信模块。ESP8266是一款非常受欢迎的低成本、高性能Wi-Fi模块。它集成了Wi-Fi功能和TCP/IP协议栈,并可以通过串口与主控制器进行通信。
以下是对ESP8266模块的详细讲解:
- 架构和功能:ESP8266模块采用了32位的Tensilica处理器架构,通常是ESP8266EX芯片。它集成了Wi-Fi无线网络连接功能和TCP/IP协议栈,具有可靠的数据传输能力。ESP8266还包含用于控制、调度和管理网络连接的固件。
- Wi-Fi功能:ESP8266支持802.11 b/g/n无线标准,并且可以作为Wi-Fi客户端或者Wi-Fi接入点(AP)运行。作为客户端,ESP8266可以连接到现有的Wi-Fi网络,实现与互联网的通信。作为AP,它可以创建自己的Wi-Fi网络,允许其他设备连接到它并进行数据交换。
- 通信接口:ESP8266模块通常通过串口(UART)与主控制器进行通信,使用AT指令集作为通信协议。主控制器可以通过发送AT指令给ESP8266来控制Wi-Fi连接、数据传输和网络配置。除了串口,ESP8266还可以通过SPI和I2C等接口与其他外部设备进行通信。
(1)具有三种工作模式:Station:用于连接热点的模式;AP:用于作为热点的模式;Station+AP:两个功能可以同时打开。
(2)支持无线802.11b/g/n标准。
(3)在该系统内设置有CTP/IP协议线,并支持多路TCP Client连接。
(4)在其内部的控制单元位32位,可兼做应用MCU。
(5)此模块功耗非常低,适合外部电源供电使用。
(6)ESP8266模块是市面上常见的数据传输的模块。它的体积非常小而且设计精巧,面积与一元硬币相仿,可以很容易将其装进到各种系统中。
7.6 蜂鸣器报警模块
环境检测系统在检测到空气质量超出某一特定的阈值后,便会由单片机控制蜂鸣器开和关,起到报警通知到相关人员的用处。
蜂鸣器一般分为无源和有源两种,无源蜂鸣器的内部结构中没有振荡器与源,需要加一个音频信号去进行驱动,这个音频信号一般为2K-5K的方波,通过控制音频信号的频率,能够达到“哆瑞咪发”的效果;而有源蜂鸣器则自带振荡器,通上直流电后,当I/O口输入对应电平时,才会发声报警。
本系统中使用的蜂鸣器模块引脚连接说明如下:在输入端引脚1为I/O口与单片机的PA5端口相连接,单片机的输出高低电平,来控制蜂鸣器是否鸣叫;引脚2是接地的引脚,与单片机的GND相连;引脚3为VCC,是蜂鸣器模块的供电引脚,其工作电压为5V。
8、软件主程序设计
主程序负责实现设计的所有功能,从总体系统结构上看,是以STM32单片机为核心,对各个模块进行初始化,引入各个子程序模块的头文件,从而实现各个模块的调用,各个模块互相统筹合作,通过网络将数据上传到上位机,并且展示给用户,从而实现整体的功能逻辑。结合环境的功能需求,对环境检测系统所需求的软件架构进行了设计。
9、云台的使用(ONENET)
本次设计的上位机采用的是onenet云平台。onenet云平台是由中国移动打造的物联网开放的平台,可以快速的完成设备开发部署,能够轻松的帮助用户实现产品的接入与产品的连接,为智能系统和智能产品提供了方便可靠的物联网连接方案。onenet云平台适配各种网络协议和网络环境,同时还支持大量的传感器设备和智能设备的接入,而且简单易学,功能强大,可以让初学者轻易上手。onenet云平台满足了本设计的需求。针对其使用,首先要完成的准备工作有以下几个步骤:
(1)创建onenet云平台账号并登录。
(2)点击控制后台,找到产品开发。
(3)添加产品,填写添加产品的信息。
(4)添加设备,在详情里面可以看到设备ID、创建时间、授权信息、接入方式等需要用到的信息。
配置完成后的服务器界面如下图所示。
使用原理:各个模块分别作用,将感知到的环境数据传输到STM32单片机中,进行处理,通过ESP8266WiFi模块传输到上位机即onenet云平台,此时在onenet云平台可以详细的看到各个模块检测的数据。其工作流程为:模块先将数据传入到STM32单片机中,接着 STM32F103单片机控制WiFi模块进行与上位机的通信,将数据上传到onenet云平台。至此,设计完成了上位机与下位机的通信。
10、功能测试
将程序烧录进STM32单片机后,对系统供电,首先观察OLED显示器是否显示正常,若正常,则说明电路没有问题,接着观察所出现的数据是否符合预期设想变化,之后观察其他的传感器是否都在正常进行工作,每个传感器模块在显示屏上是否有数值输出,若一切正常,则表示没有问题。用上位机可以验证WiFi模块功能是否正常,即上位机的数据是否同步准确。若是单个数据没显示,则检查代码是否有错误,或者观察对应的传感器是否有损坏现象。检查完毕后,对各个传感器进行不同环境下测试。
(1)开机动画显示。系统上电后,首先ESP8266进行联网配置,同时OLED屏幕上显示ESP8266初始化,同时在下方还有进度条显示,若成功,则进度条正常读条完成,若不成功,则进度条卡住等待,观察上电状态,符合设想目标,测试完毕。
(2)在ESP8266完成正常初始化后,系统各模块工作正常,符合设想目标,测试温湿度模块读取数据。观察OLED屏幕,在OLED第一行显示获取环境的温度,第二行显示获取环境的湿度,第三行显示获取环境的光照值,第四行显示获取环境的空气质量,观察上电状态,各模块读取数据状态正常,符合设想目标,测试完毕。
(3)温湿度检测模块,DHT11温湿度传感器的测试比较容易,在自然条件下对数据进行记录,然后对着DHT11温湿度传感器哈几口气,观察数值变化情况,若前后数据均在合理范围之内的情况下,如温度变化范围是0到40摄氏度,湿度为百分之0到100,哈气后的温度对应缓慢上升,湿度对应有所增加,则认为DHT11温湿度传感器的测试通过。
(3)光照强度监测,针对环境光照值,利用光敏监测模块,在自然条件下,用手轻轻捏住光敏探头,并观察OLED上的光照值是否发生明显下降变化,并检验小于阈值20时,灯是否会打开。若均符合实验预想,则测试通过。
(4)空气质量检测,针对MQ-135空气质量传感器模块,它可以检测多种有害气体,例如:氨气、硫化物和烟雾等。测试选用燃烧后的木棍作为道具,燃烧后的木棍气体中包含烷类气体及石油液化气,操作是将木棍点燃,随后使木棍变成熄灭状态,然后使其缓缓靠近MQ-135传感器,观察OLED显示数值变化,并检验大于阈值180时,蜂鸣器能否正常报警鸣叫,风扇是否打开转动。若均符合实验预想,则测试通过。
(5)上位机检测,在完成上述的各个模块功能检测后,检查在onenet云平台上是否能实时监测系统获取的环境数据,检查数据接收的最新时间,若均符合实验预想,则测试通过。
至此,所有工作的模块都已经检测完毕,当所有的模块都能正常工作时,意味着环境检测系统设计成功。
11、总结
本设计是基于STM32F103C8T6单片机来实现的,核心主控芯片连接光照强度检测模块、温湿度检测模块、空气质量检测模块;OLED显示屏;电源稳压降压模块;WiFi通信模块和蜂鸣器报警模块,并通过WiFi通信模块把数据上传到onenet云平台,可在上位机上实时观看。当空气质量达到某一特定的阈值时,会自动控制蜂鸣器进行报警,便于及时做出措施改善,使所处的环境达到或接近一个最佳的程度。
本文所设计的环境检测系统,能够成功应用于户外的环境。经过实际运行的结果反馈表明,本系统可实现“全面采集温湿度、光照强度和空气质量的信息,正确的显示在OLED显示屏上,并将信息实时传至onenet云平台”的功能。本系统工作稳定、抗干扰能力强、操作起来简单便捷,满足了现代环境检测的设计要求。
12、附录(运行视频、实物图片)
图片展示:
视频展示:
基于stm32的环境监测(esp8266)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)