APP下载

基于Android与单片机的雾霾监测运动系统

2018-11-26田丽新刘赏

电脑知识与技术 2018年22期
关键词:蓝牙心率单片机

田丽新 刘赏

摘要:针对地区性雾霾指数监控不够精确、不能够实时监控的缺点。本文利用Android系统与单片机实现蓝牙传输的雾霾与运动监测系统,能够实地实时分析运动路线的PM2.5、PM10等霾颗粒的状况。并根据雾霾实时监测数据,与个体用戶身体数据的个性化分析,给出最适合的运动方案推荐。系统硬件采用PM2.5采集模块、蓝牙传输模块,软件包括交互程序与传输程序设计。由PM2.5模块采集的数据经过单片机处理后,通过蓝牙的数据传输功能将数据发送到Android设备,经过交互处理,可在屏幕上直接显示PM2.5信息。且同时具备调用多种接口实现运动记录、天气记录及心率检测的功能。本系统具有功能多样,交互简洁,操作简单的特点。

关键词:PM2.5采集模块;运动方案推荐;心率采集

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)22-0215-04

Abstract: The shortcomings of local haze index are not accurate enough to be monitored in real time.This paper USES the Android system and single-chip microcomputer to realize the haze and motion monitoring system of bluetooth transmission, and can analyze the situation of PM2.5, PM10 and other haze particles in real time.According to the real-time monitoring data of the haze and the individualized analysis of the individual user's body data, the most suitable motion plan recommendation is given.

The system hardware adopts PM2.5 collection module and bluetooth transmission module, and the software includes interactive program and transmission program design.Data from the data of PM2.5 module after dealing with the single chip microcomputer, data transfer via bluetooth function sends the data to the Android device, through interactive processing, can be directly on the screen display PM2.5 information.At the same time, it has the function of calling multiple interfaces to realize movement record, weather record, and heart rate detection.The system has many functions, simple interaction and simple operation.

Key words: PM2.5 collection module; Sports programme recommendation; Heart rate collection

近年来,雾霾呈现全国大范围的趋势,在全国大范围地区PM2.5严重干扰人们日常生活出行,并且危害人体健康。“防霾治霾”一直是政府重视的问题。在此背景下,人们按照传统的方法接受到的雾霾信息是由环境监测总站发布的雾霾数据,这种雾霾信息的发布方式虽解决了人们对雾霾监测数据的了解需求,但是存在数据不精准,误差范围大的问题以及对监测到的雾霾数据所带来的相关问题并没有得到解决,“了解雾霾,防护雾霾”并不能做到。

传统的雾霾监测的不足之处在于:会受到城市建筑、工厂、绿化等的布局影响,且风向、气温、地形、时间差等都是使数据产生误差的原因。所以说传统的监测结果会不同于个人实际位置的霾数据。并且传统霾监测仅仅产生结果数据,并不能对霾数据进行处理,给出具体防护和出行方案。

针对以上问题,迫切需要找到一种精确且推广性强的方法来解决雾霾监测与出行之间所衍生出来的诸多实际问题。进一步解决雾霾问题,提升出行品质的同时,减少人们未知的恐慌或者毫不在意的误区,更好地监管雾霾,监管个人的身体素质。

本文针对传统的雾霾监测发展过程中所引发的诸多现实问题,给出一种行之有效的解决方案。提出基于Android系统与单片机技术的雾霾监测系统,这种系统使用软硬件结合的方式使得雾霾监测数据结果与强身健体的运动方案管理相结合,同时引入心率监测,可以改正一些运动人群对雾霾的错误认识,加强运动时对雾霾的监测管理,使得人们安全高效运动与出行。

1 雾霾采集硬件系统设计

根据“雾霾监测运动系统”的功能需求和设计方案分析[1],我们不能仅依靠程序的运行实现,需要与硬件相结合,实现数据的采集与传输。从数据可靠、经济成本与用户方便可携带三个要素为主进行考虑,决定将大多数的功能如数据分析、定位、心率采集、交互都通过程序的方式呈现于Android手机系统平台,对硬件的设计用于系统的核心功能,这样有利于成本控制、体积控制,且硬件设计简单化。

智能是手机终端通过蓝牙与单片机建立传输通信,单片机通过程序去控制雾霾检测模块,模块检测到雾霾数据后,将数据又通过蓝牙传送回手机终端。系统框图如图1所示。

系统的硬件主要设计围绕单片机的选型,PM2.5检测模块,蓝牙模块,电源,蜂鸣报警模块等。

1.1 STC89C52单片机

在单片机[2]的选型上考虑了主要未来在编程上的更改与完善,所以选用的单片机携带了8K字节闪烁可编程可擦除只读存储器,这样的单片机方便了我们对程序的调整。考虑到存储数据的相关问题,选用的微处理器采用ATMEL高密度非易失存储器制造技术制造。兼容了工业标准的MCS-51指令集和输出管脚相兼容。在单芯片上,选用拥有灵巧的8 位CPU 和在系统可编程Flash,可以为众多嵌入式控制应用系统提供超有效、高灵活的解决方案,无论是现在的应用还是今后的硬件调整都有适应性的效果。

在单片机的选型上STC89C51RC系列单片机刚好满足了我们的需求。它是单时钟/机器周期(1T)的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/精简指令集结构,内部集成MAX810 专用复位电路。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。引脚图如图2所示。

1.2 PM2.5传感器模块

在PM2.5传感器[3]的选择上,主要考虑了体积大小、数据检测功能的稳定性、以及数据的精确性,从成本的角度上也尽可能的控制,但不是占主要因素。考虑到的参数有:

灵敏度:0.5V/(0.1mg/m3)

输出电压: 0.9V(TYP)

消耗电流:11mA

工作温度:-10~65℃

存储温度:-20~80℃

这些参数都是关于测量数据和测量环境的相关基本要求,基于以上要求,我们选择了某公司开发的一款光学灰尘浓度检测传感器GP2Y1010AU0F(如图3所示)。这款粉尘传感器GP2Y1010AU通过对空气粉尘颗粒浓度的检测输出模拟电压。。我们考虑到此传感器内部成对脚分布的红外发光管和光电晶体管,利用光敏原理来工作。可用于检测特别细微的颗粒,如香烟颗粒、细微灰尘。且依靠输出脉冲的高度来判断颗粒浓度,从测量的精确與灵敏度都满足我们对硬件的要求。

1.3 HC-05蓝牙通信模块

对于蓝牙通信模块,从硬件上要求此模块传输数据稳定,兼容性,连接稳定。另外的额外因素有考虑到蓝牙模块的体积因素,这样更符合可便携带的需求。经过几种蓝牙模块的比对最终选择了HC-05 嵌入式蓝牙串口通讯模块(图4所示)。蓝牙通信单元采用工业级的HC-05蓝牙模块来完成,蓝牙模块在整个系统中负责蓝牙指令的接收和传输。

对于蓝牙通信模块的选择,我们考虑了HC-05蓝牙模块的以下特点:

(1) 采用的是CSR主流蓝牙芯片,蓝牙V2.0协议标准。

(2)输入电压为:3.6V- 6V,不允许超过7V。

(3)波特率用户可设置1200,2400,4800,9600,19200,38400,57600,115200。

(4)连接状态指示灯,LED闪光指示无蓝牙连接;LED慢闪光指示进入命令模式。

(5)3.3V稳压器芯片,输入电压DC 3.6V-6V;当未配对时,电流约为30mA(由于LED灯闪烁,电流处于变化状态);当配对成功时,电流大约是10mA。

(6)可与蓝牙笔记本电脑、电脑、蓝牙适配器等设备无缝连接。

(7)HC-05嵌入式蓝牙串口通信模块(以下简称模块)有两种工作模式:命令响应模式和自动连接模式。

2 基于Android平台的程序设计

此Android系统设计是应用于用户管理身体健康信息,解决实际出行与运动方案推荐的雾霾监测平台,因此在软件系统的功能上需要额外满足精准定位、健康数据管理、运动方案推荐等功能。下文主要从用户交互的角度具体介绍了该系统包含的各个功能。关于该系统的主要功能(雾霾检测功能、天气与定位功能、心率检测功能)在程序设计上是如何具体实现,从程序设计上主要依靠蓝牙通信、百度接口、摄像头检测心率三个方面去实现,下面将从各功能详细出发。

2.1 用户交互界面

基于Android实现用户交互界面[4]。(1)Activity:Activity 类是一个系统的核心组成部分,实现应用程序的入口与界面的显示、界面跳转,程序中所设计的与用户交互的主要界面(如图5所示)。(2)BroadcastReceiver :注册和接收系统广播的事件。(3)Service :一个在后台运行的独立进程。(4)ContentProvider :提供数据库查询接口。

启动Android程序系统进入:

1) 主界面:交互的主界面,根据用户选择进入以下各模块功能界面。

2) 雾霾监测:通过提供蓝牙连接,进行数据与设备间的交互,实现雾霾数据返回与保存记录。

3) 运动搭配:主要提供的功能有测试记录心率的变化、记录与查询运动数据。

4) 饮食搭配:提供饮食计划设置与查询,计算能量摄入。

5) 用户管理界面:主要对用户基本信息的设置与管理。首次登陆填写用户年龄、性别、脂肪水平,心率。将用户身体信息存储数据库中,以便下次调用。

6) 数据查询:可查询与导出历史运动数据,供打印成表。

7) 健康控制:此模块提供使用摄像头测量心率的功能。据霾数据、心率、运动、饮食,估测建议修改运动与饮食方案,控制健康,返回估测的健康结果。

2.2 蓝牙通信数据传输

系统需要实现智能Android手机与硬件之间的数据通信功能。实现这种功能需要通过蓝牙模块,建立PM2.5检测模块与Android应用程序之间的连接,接收数据传输。Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的 API, 应用程序通过这些 API 扫描蓝牙设备、查询 services、读写设备的 characteristics(属性特征)等操作。

智能手机终端通过查询蓝牙是否可以被调用,获得手机设备权限过后,打开蓝牙。查询附近设备,如果未曾进行配对,就开始配对,已经配对的则可以直接进行连接。连接过后可以获得输入流和输出流,这样就建立好了设备间的通信,可以进行数据间的传递和操作。(如图6所示)

2.3 GPS定位及天气功能

关于如何实现运动方案推荐与预测,且记录运动路线。我们需要通过天气数据的分析推荐适宜的运动方案,且使用GPS定位功能实时监控与记录运动出行路线图。如何开发GPS定位功能及天气提示。经过考虑,重新开发与维护定位与天气预报完整功能显然是不太实际。在已有的科技成绩上发展自己的功能才是经济成本低且更可靠的。

通过程序去实现已有的定位接口和天气接口的调用,实现我们需要的功能。在选择上,我们选择了提供许多丰富功能的百度接口,可以使用这些接口轻松访问百度服务和数据,构建功能丰富、交互性强的应用程序。我们选择了百度地图 Android SDK与天气预报查询接口API,选择原因是:(1)百度地图 Android SDK是一套基于Android 4.0及以上版本设备的应用程序接口。可使用该套 SDK开发适用于Android系统移动设备的地图应用。并且百度地图 Android SDK还具有精度高、覆盖广、流量小、速度快的特点(如图7所示)。(2)百度提供天气预报查询接口API,可以根据經纬度/城市名查询天气情况。

调用百度地图接口前,我们需要做如下准备工作:

第一步,注册和获取密钥。使用百度地图提供的API接口,首先需要获得密钥。获取AK的流程大致可分为如下四个步骤:(1)登录API控制台;(2)创建自己的应用;(3)配置SHA1和包名;(4)提交生成即可获得AK。

第二步:Android Studio配置:配置android studio环境,以供开发。配置的方法是(1)打开/创建一个Android工程;(2)添加SDK(jar + so);(3)配置build.gradle文件;(4)添加AK;(5)添加定位权限

需要注意的是使用定位SDK,我们还需在Application标签中声明service组件,每个App拥有自己单独的定位service。

除添加service组件外,为了完善我们的系统功能,使用定位SDK还需添加如下权限:

用于进行网络定位;

这个权限用于访问GPS定位;

用于访问wifi网络信息,wifi信息会用于进行网络定位;

获取运营商信息,用于支持提供运营商信息相关的接口;

这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位;

用于读取手机当前的状态;

写入扩展存储,向扩展卡写入数据,用于写入离线定位数据;

访问网络,网络定位需要上网;

SD卡读取权限,用户写入离线定位数据。

最后,通过程序实现地理位置的获取。获取地址的方法:先初始化LocationClient类,然后配置定位SDK参数,再实现BDAbstractLocationListener接口,最后就可以获取定位地址信息。

如何调用百度天气API接口,分为以下几个步骤:

(1)首先我们需要调用百度地图给的API,获得自己所在的当前城市。

(2)然后发送jsonp跨域请求(这样就获得了当前自己所在城市的天气,在src里面传递了两个函数,分别是getWeather_week和 getTodayWeather,去获得今天的天气和这周的天气。)

(3)接着解析json数据,写入DOM。

(4)最后,我们需要为查询天气按钮添加事件,就可以获得任意城市的天气。

2.4 基于摄像头图形处理获取心率值

本系统通过对心率检测的结果分析来进行用户的健康管理。本文所采用的心率检测[5-6]的主要原理是通过用户用食指触摸摄像头,通过闪光灯照射来捕捉图像,由于人体充氧与缺氧时呈现的血液的颜色不同,根据颜色的明暗变化不同计算出心率值。此项技术早在许多智能手机app已得到相应的运用。

借助光电容积脉搏波描记法(PPG)的检测方法,通过光电手段在活体组织中检测血液容积变化的一种无创。每当心脏循环一次,血液通过心脏输送到周围。即使这种压力脉冲在到达皮肤的时候会有所减弱,但它已经足以使皮下组织的动脉和小动脉扩张。若脉搏血氧计是附着在没有压迫皮肤的情况下,我们可以从静脉丛中看到压力脉冲,作为一个小的二次峰。

压力脉冲产生的体积变化是通过发光二极管(发光二极管)的光照射皮肤来检测的,然后测量光发射或反射到光电二极管的光量。每一个峰值都表示了一个心动周期。由于血液流向皮肤可以被其他多种生理系统调节,PPG同时也可以用来监测呼吸,低血容量和其他循环条件。另外,PPG波形的形状与主体不同,跟着脉氧仪附着的位置和方式而变化。

运用此原理我们可以使用摄像头获取心率的过程如下:(如图8)

(1)首先,我们通过调用Android手机摄像头权限,使用AVCapture去采集视频流。

(2)然后对每一帧图像计算出一个相应的特征值并保存到数组中,考虑取红色分量或转换为HSV的算法对特征值进行处理。HSV(Hue, Saturation, Value)是由A. R. Smith在1978年根据颜色的直观特性创建的一种颜色空间, 也可以叫作六角锥体模型(Hexcone Model)。

(3)对此时间段内的数据进行预处理,比如滤波处理(常用的滤波器有:空域滤波器,频域滤波器,形态学滤波器),分频处理等。

(4)紧接着,就可以进行心率计算,这一步可能涉及一些数字信号处理,比如说波峰检测,信号频率计算。

(5)最终求得到心率。

3 结语

该系统设计是针对全国大范围出现雾霾,人们无法通过肉眼识别PM2.5、数据不精确、位置差异化、不利运动出行等相关问题,设计的一款以android技术为基础、解决人们实际运动出行与雾霾关系的APP。系统[7]用于运动时对环境雾霾指数、心率变化、运动路线的监测记录,综合了天气、饮食等扩展功能。该系统若将蓝牙模块改为WiFi模块可使速度更快、距离更远,这是现在普遍使用的技术,还可利用云技术的发展,在功能上达到更大的突破。

参考文献:

[1] 李成祥.智能型室内空气质量检测与控制系统[D].北京交通大学,2011.

[2] 兰冰芯,谌海云,陈东,等.基于单片机的PM2.5测试仪的设计与实现[J].物联网技术,2014(11).

[3] 袁剑敏.一种PM2.5浓度检测装置、检测方法及空气质量检测仪,CN104067106A[P]. 2014.

[4] 赵亮,张维.基于Android技术的界面设计与研究[D].徐州:徐州建筑职业技术学院,2001.

[5] 唐弘玲.基于信号处理的Android手机心率监测软件设计与实现[D].东北大学,2013.

[6] 蔡承贤,王伟,基于人工智能的心率监测算法[J],中国医疗器杂志2010,34(1):1-3.

[7] 高巍.Android 操作系统软件自动化测试方案的设计与实施[D].北京:北京邮电大学,2012:440-479.

【通联编辑:梁书】

猜你喜欢

蓝牙心率单片机
蓝牙音箱的直线之美
心率多少才健康
离心率
离心率相关问题
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
探索圆锥曲线离心率的求解