基于STM32的多参数传感及传输系统的设计

2016-05-14 01:12漆晶蒋成星程慧超孙童童
数字技术与应用 2016年8期
关键词:无线传输环境监测

漆晶 蒋成星 程慧超 孙童童

摘要:周末经济的发展,旅游景区的人流量越来越大,有些景区已经超负荷,环境污染问题凸显,同时也没有合适的景区环境质量监测平台。针对这些问题,设计了一种基于Cortex-M3内核的STM32低功耗控制器和无线射频传输网络的自供能多节点环境监测系统;以传感器、无线射频芯片、自供能模块和STM32控制器组成从机节点,完成环境参数采集和发送;主机端完成参数的接收与处理,并发送给PC端上位机;采用C#语言开发上位机软件,动态显示环境参数变化情况;实验系统测试结果表明本系统达到了预期的目的。

关键词:STM32 环境监测 无线传输 自供能

中图分类号:TP368.2 文献标识码:A 文章编号:1007-9416(2016)08-0194-02

随着社会经济的快速发展,社会环境质量却普遍下降,但人们的环保意识越来越强,越来越关心自己所居住地区的环境质量。学校校园及城市小区等地居住人口多,旅游景区人口流量大,以这些地区的环境参数实时监测需求为出发点,本文选择CO2浓度、PM2.5浓度、温湿度、光照强度及紫外线强度环境参数,开发了以PC端软件为上位机[1],传感器数据采集节点为下位机的环境参数监测传输系统,通过利尔达公司最新生产的高性能物联网无线收发器可方便地实现多节点多参数的实时传输。结合景区的拥挤现状和人给环境带去的二次污染问题及监测发布平台,提出研究背景。

1 环境监测系统总方案设计

环境监测系统主要分为3大部分:PC端上位机、主机端和传感器数据采集节点。环境监测系统的结构。数据采集节点作为下位机,主要功能是环境质量参数的采集和数据的初步处理及发送。主机端完成数据的接收及处理并通过USART接口发送给PC端上位机。PC端上位机完成USART接口数据的接收与处理,动态显示各个节点各种环境参数的变化情况,同时也完成下配控制命令的发送。3个部分协同工作,实现对环境质量的多节点多参数的监测传输任务。当环境质量有关指标超出设定的阈值时,能够在PC端正确显示报警信息,包括监测时间、监测节点和报警内容,同时,主机端也会通过蜂鸣器进行报警。相关管理人员只需在监测系统前就能方便地对方圆几百米区域的环境质量进行集中监测。

2 环境监测系统硬件设计

2.1 主控单元

主机端和下位机端主控单元均选择STM32F103C8T6,它是一款32位的基于Cortex-M3内核的ARM微控制器,集成了128kB的FLASH和20kB的RAM,工作频率可达72MHz,含有丰富的USART、SPI及12位ADC等片上资源,完全可以满足本系统的硬件需求。主控单元电路由复位电路、外部晶振电路、RTC时钟电路、BOOT电路(选择启动方式)和SWD电路(下载程序)组成[2]。

2.2 传感器模块

PM2.5传感器选择夏普公司生产的GP2Y1010AU0F,测量范围0-500ug/m3,5V供电,浓度大小以模拟电压的形式线性输出,范围为0.5V-3.7V。由于STM32内置ADC采样电压不能超过3.3V,所以在PM2.5传感器的模拟电压输出引脚串联两个10K的电阻分压之后再进行测量。CO2浓度传感器选择英国GSS生产的COZIR-A,3.3V供电,串口驱动,量程为0-99999PPM。紫外线强度传感器选择UVM-30,线性电压信号输出0-1V(对应UV 指数0-10),直接用单片机内置ADC采样。温湿度DHT11模块使用单总线[3]驱动,需接一个4.7k的上拉电阻。光照强度传感器选择ROHM公司的BH1750FVI,它是一款数字光照强度传感IC,测量范围1-65536LX,I2C总线接口,时钟线和数据线引脚均需接一个4.7k的上拉电阻。

2.3 无线射频通信模块

本系统所用的无线射频通信模块是利尔达科技公司最新生产的LSD4RF-2X717N10无线模块,是一款高性能的物联网无线收发器,基于Semtech公司的射频集成芯片SX1208[4]设计而成。SX1208芯片使用SPI通信接口(FSCK最大10MHz),本系统采用STM32硬件SPI驱动,SCK频率设定为9MHz,DIO0输出电平上升沿触发STM32进入中断,表示无线模块接收到数据。NSS为片选,NRST为复位引脚(高电平有效),均通过I/O口控制。RF为模块天线接口,与用户底板上的天线接口间需要加入π型匹配电路。

2.4 带自供能的电源模块

本系统室内、室外节点都使用锂电池升压至5V供电,室内节点可用手机电源线进行充电,室外节点利用太阳能板进行充电,实现自供能。充电电路选用TP4056作为电源管理芯片,充电限制电压4.2V,而充电电流可通过一个电阻进行外部设置。当充电电流在达到最终浮充电压之后降至设定值1/10时,TP4056 将自动终止充电循环。

3 环境监测系统软件设计

3.1 主机端软件设计

主机端程序开始之后先进行系统初始化配置,包括系统定时器时钟配置,硬件SPI配置,外部中断配置,串口初始化配置及RF模块初始化配置等。RF模块初始化完成之后,切换到接收模式,接收模式会打开外部中断。最后进入主循环,判断是否接收到PC端上位机发来的串口指令,如果接收到正确的命令,则会执行命令解析,执行相应的操作。RF模块在主机端的控制下在接收模式和发送模式之间切换,主机是通过进入外部中断来读取RF模块接收到的数据,这样可以提高程序的执行效率。在解析命令的过程中,主机往往是先进入发送模式向下位机发送一包命令数据,然后又切换回接收模式,准备接收下位机的返回数据。主机端程序流程图如图1所示。

3.2 下位机端软件设计

下位机端程序执行开始之后,同样先进行系统初始化配置,包括硬件SPI、串口、内置ADC及RF模块初始化等等,初始化完成之后切换RF模块进入接收模式,以便接收主机端发送来的指令。然后配置RTC实时时钟[5],因为我们需要知道节点环境参数采集的具体时间。然后再判断此节点是上电复位还是从睡眠模式唤醒而复位,若是唤醒复位,则向主机端发送唤醒提示信息。最后,进入主循环,判断此节点是否接收到“进入待机模式”命令,若接收到,则进入待机模式,等待主机唤醒,否则循环判断。STM32使用WFI命令进入停机模式后,程序停止执行,外部中断唤醒之后,程序从上次停止处继续执行,不用重新配置系统时钟。下位机端同样通过外部中断读取RF模块接收到的数据。下位机端程序流程图如图2所示。

3.3 PC端上位机软件设计

上位机软件通过串口向主机发送控制命令并获取主机返回的数据。上位机用C#语言在.NET环境下开发,软件通过串口连接主机。根据二者之间制定的协议进行数据发送与接收。向下发送控制命令时,在一定时间内应该接收到主机的反馈。如果未收到反馈,则会重新发送。多次发送失败则提示通信故障。一旦接收的环境参数数据超过设定的阈值,上位机会出现报警提示[6]。使用者可以通过上位机软件实时有效地监测各传感器节点的状况。

4 系统测试

系统软硬件设计完成之后,对整个系统进行测试,将主机通过USB转串口线连至笔记本电脑,打开上位机软件,控制主机与各个节点进行通信,确定其是否达到设计最初的目的和功能。以节点2为例,测试结果如图3所示。

上位机界面中,软件上边可以选择节点,左边是各种控制命令的发送按钮及参数配置,右边以柱状图动态显示参数值相对大小,下方有具体的数值(参数单位前文有叙述)以及采集时间。节点2无CO2传感器,所以其值为0。其它节点显示界面一样,均能正确监测传输环境参数。

5 结语

本系统设计完成后,功能全面,界面友好,控制简单,传输距离较远,功耗较低,无线射频通信芯片以及传感器选择恰当,能很好地满足系统需求。锂电池充电电路设计合理,所需元器件少,成本低,充电稳定。但是,本系统还有待继续优化改进。一方面射频芯片天线匹配设计需要改善来提高数据传输距离,另一方面锂电池升压板需要选择功耗较低的设计方案。本系统设计成产品时,应选择功耗更低的单片机来作为系统主控,从而整体降低系统功耗。

参考文献

[1]张卫星,张桂香,谭成午.基于STM32的环境多点监测系统设计[J].计算机测量与控制,2014,22(10):3141-3143.

[2]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.

[3]黎冠,马婕,卜祥丽.STM32单片机在室内环境监测系统中的应用[J].自动化仪表,2014,35(7):29-31.

[4]张祥,蔡景,林海彬,刁海飞.基于STM32的温湿度监测系统设计[J].中国仪器仪表,2013,(7):62-65.

[5]陈晓宇.基于 Cortex-M3的 多点温度监测系统设计[J].电子世界,2013,(12):75.

猜你喜欢
无线传输环境监测
环境监测系统的数据分析与处理
大气污染问题的环境监测
基于无线传输的LED灯远程控制系统设计
公路路面现场检测数据无线传输系统的设计
基于LABVIEW的温室管理系统的研究与设计
对环境监测数据造假必须零容忍
便携式GC-MS在环境监测中的应用