环境参数监控系统,价格高,功耗较大,移动性较差,需要较高的硬件与软件支持,数据采集端与监控端需要通过很多很长的通信线进行连接,从而使得系统稳定性不高,对于多参数多点监控的场所,传统设备不能满足其节点数量的要求,可行度不高,空间占用率较大。鉴于以上不足之处,我们设计一种多节点组网一监控终端的智能环境参数监控系统,以方便和适应现代化的信息管理模式。该系统采用数字化数据采集,模块化处理,便于系统维护以及数据收集。
本系统设计是从低成本、低功耗、高效率等概念出发,采用32位单片机STM32F103C8T6为处理核心,在数据采集节点端控制一系列的传感器(如DS18B20、DHT11、MQ-135、光敏二极管、雨滴传感器、土壤水分传感器等)来采集环境参数,使用蜂鸣器与STM32F103C8T6连接做为系统的报警器,如有参数超标就发出声响进行警报,同时使用NRF24L01发送数据到监控终端。具有实时性、稳定性、高效性、操作简单等特点,这样便于解决环境参数的采集和监控。本文以STM32F103C8T6超低功耗单片机为核心,设计了多个环境数据采集节点和监控终端即环境参数智能监测站,重点介绍了该系统的设计任务、硬件、软件以及控制算法的设计与实现。硬件方面,介绍了系统各个部分的设计思想、原理电路以及系统总硬件原理图;另外,为了实现系统低成本和低功耗,满足设计要求的前提下,尽可能选用价格低廉和低功耗的元器件。软件方面,采用时间触发的混合调度器模式设计,对系统各个任务进行设计,并给出系统软件低功耗设计方法。
关键词 : STM32 ; 环境监测 ; 多采集节点 ; NRF组网
从国内现状看,环境参数监控系统,价格高,功耗较大,移动性较差,需要较高的硬件与软件支持,数据采集端与监控端需要通过很多很长的通信线进行连接,从而使得系统稳定性不高,对于多参数多点监控的场所,传统设备不能满足其节点数量的要求,可行度不高,空间占用率较大。一些传统设备对于传感器的更换极其不方便,更换完传感器后要对所有传感器进行重新编号,不便于维护,鉴于以上不足之处,我们拟采取一下措施:
1、设计一种多节点组网一监控终端的智能环境参数监控系统,以方便和适应现代化的信息管理模式。
2、该系统采用数字化数据采集,模块化处理,便于系统维护以及数据收集。
20世纪70年代,国外的温室生产开始以较快的速度发展,特别是欧美发达国家。当时由于水平的限制,对于生态环境因素采用单因子控制,即对温度、湿度、光照和二氧化碳浓度进行单独分别控制的方法。
随着电子技术的发展,市场上出现各种室内环境测量仪器,包括数字式的温湿度计、甲烷检测仪等。外早在20世纪80年代就开始对温湿度控制技术进行研究,其采用模拟式的组合仪表,采集温湿度信息并进行指标、记录以及控制。现在国外环境监测技术发展很快,正向完全自动化、无人化的方向发展。我国对环境监测技术起步较晚,国内传感器行业发展落后,国产化缺口巨大。
综上,环境参数智能监测站的研究和设计,具有重要意义及实用价值。
环境参数监控系统,价格高,功耗较大,移动性较差,需要较高的硬件与软件支持,数据采集端与监控端需要通过很多很长的通信线进行连接,从而使得系统稳定性不高,对于多参数多点监控的场所,传统设备不能满足其节点数量的要求,可行度不高,空间占用率较大。一些传统设备对于传感器的更换极其不方便,更换完传感器后要对所有传感器进行重新编号,不便于维护。
务描述:设计并制作一个智能型环境参数监测站,实现对站点温湿度、土壤水分、空气质量、雨情、光照等信息的探测。该装置由1个监测终端和多个探测节点组成(实际制作2个),探测节点与监测终端可实现远程通讯。
控制任务和要求:(1)探测节点。探测节点有编号预置功能,探测节点能够探测其环境温度、土壤水分、空气质量、雨情、光照等信息,获得的站点环境参数信息可本地临时存储或定时发送监测终点。探测节点采用电池供电方式,探测节点分布示意图如图1-1所示。
(2)监测终端。监测终端可远程通讯获得各探测节点的探测信息,并能本地显示,显示信息有探测节点编号、环境参数等,具体工作方式可通过键盘设定。
本系统具有对环境的温度、湿度、光照、空气质量、土壤水分、雨情的检测和控制等功能。系统运用STM32F103C8T6作为最小系统的中央处理器。整个系统主要从硬件电路设计和软件程序设计两部分来实现。可以将环境监控系统的硬件分为几大模块进行设计,分别为:信号采集模块、主控制模块、人机互动模块。本系统设计用DS18B20、DHT11、光敏二极管、MQ-135对温度、湿度、光照、环境质量等参数进行采集。再把采集的数据输送到STM32F103C8T6中进行处理。处理后的信息输送到OLED上进行显示。STM32F103C8T6根据键盘输入的设置参数值进行对比和判断是否有参数超过设置的范围,如有参数超标就发出声响进行警报,把环境参数通过NRF24L01模块发送到终端上。结构框图如2-1所示。
图2-1系统总体结构框图
环境参数采集端:
温度采集模块、湿度采集模块将数据以总线形式传输给单片机,土壤水分采集模块、空气质量检测模块、光照强度、雨情检测模块采集模拟信号,模数转换后,将数字信号传输给单片机。单片机通过NRF模块将采集数据发送给监测终端。
监控终端:
NRF模块接收到各采集节点数据,并传输给监控终端核心STM32单片机。单片机对数据进行简单处理,进而显示在OLED屏幕,若有环境指数超出设定指标,蜂鸣器发出警报。
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU)精简指令集高速8位单片机。 1997年,由Atmel公司挪威设计中心的A先生和V先生,利用Atmel公司的Flash新技术,共同研发出RISC精简指令集高速8位单片机,简称AVR。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
ARM单片机是以ARM处理器为核心的一种单片微型计算机,是近年来随着电子设备智能化和网络化程度不断提高而出现的新兴产物。ARM是一家微处理器设计公司的名称,ARM既不生产芯片也不销售芯片,是专业从事技术研发和授权转让的公司,世界知名的半导体电子公司都与ARM建立了合作伙伴关系,包括国内许多公司也从ARM购买芯核技术用于设计专用芯片。ARM单片机以其低功耗和高性价比的优势逐渐步入高端市场,成为了时下的主流产品。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。按内核架构分为不同产品:其中STM32F系列有:STM32F103“增强型”系列STM32F101“基本型”系列STM32F105、STM32F107“互联型”系列增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能,是32位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHz时,从闪存执行代码,STM32功耗36mA,相当于0.5mA/MHz。
STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。本产品使用高性能的 ARM® CortexTM-M3 为内核的 32 位微控制器,最高工作频率可达168MHZ,内置高速存储器,丰富的增强型 I/O 端口和外设连接到外部总线。本产品包含 1个 12 位的 ADC、2 个比较器、2 个 16 位通用定时器、2 个 32 位通用定时器、2 个 16 位基本定时器、2 个 16 位高级定时器。还包含标准的通信接口:2 个 I2C 接口、3 个 SPI 接口、1 个 USB 接口、1 个 CAN 接口、1 个 SDIO 接口和 8 个 UART 接口。本产品产品系列工作电压为 2.0V ~ 5.5V,工作温度范围包含-40◦C ~ +85◦C 常规型和-40◦C~ +105◦C 扩展型。多种省电工作模式保证低功耗应用的要求。本产品提供 LQFP100、LQFP64、LQFP48、LQFP32 和 QFN32 共 5 种封装形式;根据不同的封装形式,器件中的外设配置不尽相同。这些丰富的外设配置,使得本产品微控制器适合于多种应用场合:电机驱动和应用控制,医疗和手持设备,PC 游戏外设和 GPS 平台,工业应用:可编程控制器(PLC)、变频器、打印机和扫描仪,警报系统、视频对讲、和暖气通风空调系统等。
选择STM32F103C8T6单片机作为控制核心,接收传感器采集的环境信息,并做相应简单处理。
热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。阻值与温度的关系非线性严重,绝大多数热敏电阻仅适合0~150℃范围。
DS18B20是人们在日常中最经常使用的的测温传感器,具备体积小,生产成本低,精度高,抗干扰能力强的特性。能够在3V至5.5V的电压范围内工作,相对于其它同类别元件具有更宽的电压适用范围,可以通过寄生电源接入数据线完成硬件的供电;具有特殊的一线总线接口,DS18B20可以通过一线总线接口实现微处理器与DS18B20之间的双向通信;DS18B20不需要任何外部器件都可以将所有的传感器和转换电路集中到电路中的一个类似于晶体管的形状里。在零下55度到零上一百二十度内能正常工作,其精度为0.5℃;在可编程的分辨率9至12位中分别对应着0.5℃、0.25℃、0.125℃和0.0625℃可以分辨出数据的温度值,以此来提高对温度采集数据的精度值;DS18B20即使在电源接反的情况下芯片也不会由于过热而导致芯片的损坏,但在此种情况下原件是无法工作的。
湿敏电阻是利用湿敏材料吸收空气中的水分而导致本身电阻值发生变化这一原理而制成的。工业上流行的湿敏电阻主要有氯化锂湿敏电阻,有机高分子膜湿敏电阻。湿敏电阻只能用交流的,直流会导致湿敏失效,因为直流的电场会导致高分子材料中的带电粒子偏向两极,一定时间以后湿敏电阻就会失效。所以必须用交流维持其动态平衡,这也是为什么测湿敏电阻阻值要用电桥而不能用普通万用表的原因。
DHT11是一款有已校准数字信号输出的温湿度传感器。 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃。DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。
光照传感器一般由光敏层、玻璃基片与电阻组成的,它的主要器件是一个对光照敏感的电阻器。在光照不足的情况下,它的电阻为几十兆欧,反之电阻则为十到二十千欧。光敏电阻的灵敏度与人眼对0.4~0.76um范围的可见光的灵敏度很相近。光敏电阻的最大电压为100V,最大功耗为50mv,光谱峰值为540nm,正常工作的温度范围为-30℃~70℃。
MQ-135传感器对氨气、硫化物、苯系蒸汽等有较高的灵敏度。还具有长期的使用寿命和优异的稳定性。它由四个器件组成敏感元件。该传感器有四个管脚输出信号,两个为器件提供正常工作条件。封装内的A与B是互相短接的。MQ-135气体传感器采用二氧化锡(SnO2)作为敏感材料。他能随着环境中的有害气体的不同导电率也不同。使用简单的电路将导电率的变化转为其相应的输出信号。
这是一个简易的水分传感器可用于检测土壤的水分,当土壤缺水时,模块输出一个高电平,反之输出低电平。使用这个传感器制作一款自动浇花装置,让您的花园里的植物不用人去管理。灵敏度可调(图中蓝色数字电位器调节)工作电压3.3V-5V模块双输出模式,数字量输出简单,模拟量输出更精确。设有固定螺栓孔,方便安装小板PCB尺寸:3cm * 1.6cm电源指示灯(红色)和数字开关量输出指示灯(绿色)比较器采用LM393芯片,工作稳定。
传感器采用高品质FR-04双面材料,超大面积5.0*4.0CM,并用镀镍处理表面,具有对抗氧化,导电性,及寿命方面更优越的性能。小板PCB尺寸:50x40mm灵敏度可调(图中蓝色数字电位器调节)工作电压3.3V-5V模块双输出模式,数字量输出简单,模拟量输出更精确。电源指示灯(红色)和数字开关量输出指示灯(绿色)比较器采用LM393芯片,工作稳定。
带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192 个1616 点汉字,和128 个168 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4 行16×16 点 阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶 显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
OLED 屏幕作为一种新型的显示技术,其自身可以发光,亮度,对比度高,功耗低,在当下备受追捧。而在我们正常的显示调整参数过程中,我们越来越多的使用这种屏幕。我们使用的一般是分辨率为 128x64 ,屏幕尺寸为 0.96 寸。由于其较小的尺寸和比较高的分辨率,让它有着很好的显示效果和便携性。目前我们经常使用的 OLED 屏幕一般有两种接口,IIC 或者 SPI ,两者使用的通信协议稍有不同。OLED 还可以实现更多的显示功能,如描绘几何图形,实现动态波形显示。
输入模式,浮空输入:没有外界电压输入时,电压不确定。上拉输入:没有外界电压输入时,IO口经过一个上拉电阻接高电压Vcc,再经过施密特触发器转换成1信号,此时为高电平。(无输入,高电平) 有外界电压输入时,电压进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平是高电平还是低电平。下拉输入:没有外界电压输入时,IO口经过一个上拉电阻接低电压Vss,再经过施密特触发器转换成0信号,此时为低电平。(无输入,低电平)有外界电压输入时,电压进入芯片后加了一个下拉电阻,再经过施密特触发器转换成0、1信号,读取此时的引脚电平是高电平还是低电平。 模拟输入: 信号进入后不经过上拉电阻或者下拉电阻,关闭施密特触发器,经由另一线路把电压信号传送到片上外设模块。比如传送给ADC模块,由ADC采集电压信号。所以可以理解为模拟输入的信号是未经处理的信号,是原汁原味的信号。
ADC又称’模拟/数字转换器’,在STM32单片机中模拟/数字转换器(ADC)是一种提供可选择多通道输入,逐次逼近型的模数转换器。分辨率为12位,在一般的信号采集应用中已经算是很高的分辨率了。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。
土壤水分采集、雨情检测、空气质量检测等都需要AD采集,模拟信号转换成数字信号,进而单片机进行处理,分析。
蓝牙模块BT-HC05模块是一款高性能的蓝牙串口模块。 1、可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA、PSP等智能终端配对。 2、宽波特率范围4800~1382400,并且模块兼容单片机系统。 3、当主从模式两个蓝牙模块配对成功后,可以简单的,更改为无线的蓝牙,让您设备或者产品更高级,更时尚。
但是蓝牙模块BT-HC05模块传输距离有限,且不适用于环境监测站无线通信。
NRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
此模块传输距离远,有6个通道,可组网,适用于环境监测站的无线通信。
STM32F103C8T6最小系统由晶振电路,复位按键电路及SWD下载电路构成。具体原理图见图4-1所示。
图4-1 STM32F103最小系统
温度采集电路,输出端加4.7K电阻上拉,电路如图4-2-1所示。
图4-2-1 DS18B20电路
DHT11湿度检测电路,输出端加4.7K电阻上拉,电路如4-2-2所示。
土壤水分检测电路,使用土壤水分传感器,AD采集模拟电压,进而计算
土壤水分,电路如图4-2-3所示。
空气质量检测电路,使用MQ-135传感器,AD采集模拟电压,进而计算
有害气体浓度,反应空气质量,电路如图4-2-4所示。
光照强度检测电路,使用光敏电阻传感器,AD采集模拟电压,进而计算
有光照强度,电路如图4-2-5所示。
雨情检测电路,使用雨滴传感器,AD采集模拟电压,进而计算
雨情,电路如图4-2-6所示。
电源包括5V电源,3.3V单片机供电电源,3.3VNRF供电电源。电源如图4-3所示。
NRF模块电路如图4-4所示。
OLED模块电路如图4-5所示。
本系统采用单片机作为主控制部分,主程序是一个无限循环的程序,通过keil开发环境下载到单片机中工作。系统开始工作时,主程序运行,先对系统的硬件进行初始化,然后判断是否有键盘摁下,运用键盘进行环境参数的设置,然后通过传感器采集环境中的温度、湿度、光照、有害气体的参数。在OLED上显示采集到的环境参数。在与我们所设置的环境参数进行比较看是否有参数超标。总程序流程图如图5-1所示。
温度监控的子程序也是一个循环的程序。当单片机接上电之后,单片机向DS18B20传感器发出指令,DS18b20传感器采集环境中温度参数,把温度值传输到液晶显示屏上显示出来。同时在STM32中将采集的温度参数的实际值与我们设置的参数范围进行比较。如果实际的参数值在设置的范围内,则返回重新采集。如果不在范围之内就发出警报并把数值通过蓝牙传输到终端上,同时开启相应的设备控制温度,并返回重新采集数据。DS18b20程序流程图如图5-2-1所示。
湿度监控也是一个循环的子程序。当STM32通上电之后,STM32向DHT11发出采集指令,它就采集养殖舍内的湿度参数值,把该参数值传送到OLED上显示出来。同时在STM32中将采集的湿度参数的实际值与我们设置的参数范围进行比较。如果实际的参数值在设置的范围内,则返回重新采集。如果不在范围之内就发出警报并把数值通过蓝牙传输到终端上,同时开启相应的设备控制湿度,并返回重新采集数据。DHT11程序流程图如图5-2-2所示。
有害气体监控的子程序也是一个循环的程序。当单片机接上电之后,单片机向MQ-135传感器发出指令,MQ-135传感器采集环境中有害气体浓度,把有害气体浓度值传输到液晶显示屏上显示出来。同时有害气体浓度值在单片机中与我们设定的参数浓度值进行对比是否在设定的浓度范围之内。如果在设定的范围之内,则返回重新采集数据。如果不在范围之内发出警报把数值通过NRF传输到终端上,提醒管理人员进行人工处理降低有害气体浓度,并返回重新采集数据。
当STM32通上电之后,STM32向光照传感器发出工作指令,其通过光敏电阻采集养殖舍内的光照参数,并把该参数值传送到OLED上显示出来。同时实际的光照与系统内设定的光照范围进行比较,看实际值在哪个范围内,系统会对不同的范围开启不同的灯光数值,并返回重新采集数值。
将各传感器部分软件部分分别调试,NRF通信部分单独调试,最终将各部分结合,整个系统调试。先单节点调试即NRF一对一通信,进而实现NER多对一通信,NRF组网。
软件及硬件调试图片如图6-1所示
分别对宿舍,梦工厂,银杏林,田径场等地方进行数据采集,不同时间点,不同天气情况采集数据,使得采集数据有分析意义。采集数据表格如表6-2所示。
对采集的数据,运用MATLAB软件进行分析处理,拟合变化曲线,预测天气情况,具体处理如图6-3所示。
硬件部分及软件部分框图和流程图均在“软件篇”和“硬件篇”有介绍。
最后,大家有什么疑问或建议均可留言,感谢大家支持!!!
环境参数智能监测站设计(硬件篇) 链接: link.
环境参数智能监测站设计(软件篇)链接: link.