基于蓝牙的环境数据采集系统研究与实现

2020-03-18 11:04佳,周
江苏科技信息 2020年4期
关键词:安卓温湿度蓝牙

李 佳,周 峰

(北京信息科技大学仪器科学与光电工程学院,北京 100192)

0 引言

随着经济的发展,人们的生活质量越来越高,人们对自己生活环境的了解需求也日益迫切。但是人们了解环境数据的方式比较简单,仅依靠传统的天气预报方式了解未来一两天环境预测的状况。因为环境状况具有变化快、不稳定的特点,随着时间和空间的改变,环境状况会有显著的差异。而传统的基于天气预报得到的预测数据,实时性显然不够精确。如果具体到个人居住的小范围环境数据,其准确性更是大幅度降低。智能手机改变人类的生活[1],对于环境信息的获取,人们也越来越依靠智能手持终端设备。但是,基于智能手持终端内置传感器的环境采集系统所测的温度、湿度、PM2.5等数据受到智能设备小型化以及本身运作发热的影响,导致周围环境数据难以准确地被测量。然而基于蓝牙4.0无线传输的环境采集系统,不仅可以通过外置的传感器准确地检测周围环境的信息,还可以通过无线蓝牙技术将数据传输到智能设备上显示。

王宏志等[2]设计了基于蓝牙4.0的温湿度的监测,用于采集外界温湿度。方天恩等[3]研究基于Android的智能蓝牙温度计,结合Android智能手机和蓝牙设备。本文基于蓝牙4.0无线传输的环境数据数据采集系统结合蓝牙4.0和智能传感技术,可对温度、湿度和雾霾等环境数据进行采集,并通过蓝牙4.0无线技术将数据传输到安卓手机接收端显,满足了人们的客观需求,具有实际应用的价值。

1 系统设计

1.1 模块化总体设计

模块化设计具有高效、灵活、可操作等特点,可以使整个系统层次清晰。系统总体设计如图1所示,将其分成传感器采集模块、主控芯片模块、安卓设备端块,各个模块既相互独立又通过相关接口协议连接在一起,组成一个可靠的、稳定的系统设计。

图1 模块化总体设计

首先外部环境因子被传感器读取并转化为数字信号,分别通过外围接口传输到蓝牙CC2540主控芯片处理,蓝牙主控芯片将处理完成的数据加载到2.4 GHz的蓝牙无线信道发送到安卓设备。安卓设备通过编写的应用程序读取并显示。

1.2 硬件电路设计

本文的硬件设计采用由德州仪器公司的CC2540射频单片机作为核心主控芯片,该芯片是一款兼容8051内核指令集和蓝牙4.0低功耗(Bluetooth Low Energy,BLE)协议的芯片。硬件系统的整体结构如图2所示,主要设计有主控芯片外围电路、电源电路、接口电路,并制作成印刷电路板。CC2540核心主控芯片分别通过SPI和URAT接口读取DHT11温湿度传感器和DSL-03激光式PM2.5传感器的数据,同时将处理后的数据通过天线发送并显示到LCD液晶屏。

如图3所示,将硬件电路分为CC2540主控芯片模块和传感器模块两部分,分别制作为两张PCB电路板。CC2540主控芯片的PCB板通过插针与搭载传感器和电源的PCB板电路连接。

图3 硬件电路

2 蓝牙原理及软件设计

蓝牙通信采用协议的方式进行规范,协议栈是用代码实现的函数库,包含通信协议的具体内容,主要有通信所需要的连接流程、通信频率、通信信道等。蓝牙4.0 BLE协议栈将具体的操作以函数库形式封装,并向开发者提供基于协议栈应用的函数接口,包括硬件调用、数据传输、数据属性配置等。协议栈的构成如图4所示[4-5]。

BLE协议栈使用一种小型的操作管理系统,该系统被称为操作系统抽象层(Operating System Abstraction Layer,OSAL),其目的是管理协议栈的函数库,合理地分配CPU宝贵的硬件资源。虽然名为操作系统,但是严格来说,OSAL不能称为真正意义上的操作系统。从字面上来说OSAL只是抽象的操作系统,所以它只能模拟一些操作系统的简单功能,比如系统资源分配、任务消息交换、中断服务等,OSAL的机理描述如图5所示。

软件的设计是在硬件设计的基础之上,给相应硬件合理的程序,使之高效地工作,完成整个设计的目标功能。本文软件设计主要有环境数据传感器采集模块驱动程序、CC2540主控芯片上的协议栈通信软设计和安卓智能设备上的APP。其中传感器程序和CC2540主控芯片的程序是在IAR开发环境下采用C语言编写,而安卓智能设备则在Eclipse环境下用Jave语言编写。

图4 BLE协议栈的构成

图5 OSAL的机理

根据蓝牙协议栈提供的应用接口,在TI公司提供的从机工程之上将传感器驱动程序放入BLE协议栈的OSAL任务中,并通过通用配置文件(Generic Attribute Profile,GATT)特征值的方式发送到安卓智能设备,流程如图6所示。

图6 程序流程

安卓系统从4.3版本以上全面支持BLE协议栈技术[6-7]。本文基于该版本通过BLE技术实现搜索CC2540主控芯片并与之建立连接,再通过GATT层实现环境数据的传输。安卓手机与CC2540主控芯片之间通信有4个步骤:开启蓝牙设备、扫描蓝牙设备、发现蓝牙设备、连接蓝牙设备并进行通信。流程如图7所示。

安卓APP设计中主要调用Devicescan Activity用来管理蓝牙设备的服务,包括搜索、匹配和连接。如图8(a)所示,通过蓝牙4.0连接到CC2540核心板,在UI界面读取CC2540的地址,用户名以及RSSI信号等信息。然后点击列表的用户名为“lijiable”的蓝牙设备,获取来至CC2540的服务,包括温湿度数据,以及PM2.5细微颗粒浓度数据的读取服务,如图8(b)所示。

3 功能测试

3.1 温湿度采集实验

测试条件:空旷无人的实验室,每两小时测量环境数据并记录,同时与温湿度计进行比较,实验结果如图9所示。

对比温度计与本设计的温度数据,数据误差小,但是总高于温度计所测量的值。误差原因分析如下。

图7 蓝牙连接流程

图8 安卓数据端

(1)温湿度传感器自身发热读取数据产生影响;

(2)受周围元器件发热的影响;

(3)局部小区域环境之间的差异。

3.2 PM2.5传感器采集数据实验

实验环境与条件:空旷而且通风的室内,将采集系统放在窗边,点燃烟放置在PM2.5传感器的进风口一次,观察PM2.5数据的读数,每隔1秒记录,如图10所示。

通过上述数据显示,PM2.5传感器可以检测到小环境的细微颗粒浓度并显示。在没有点烟之前传感器测到的是环境的初始PM2.5数据,在点烟时,数据值开始上升,达到最高点时,随着空气流动,小环境的细微颗粒浓度开始下降,最后和初始环境数据基本一致。

图9 温湿度实验

图10 PM2.5实验

4 结语

本设计基于蓝牙4.0实现环境数据的采集,可对温度、湿度和雾霾等环境数据进行采集,并可通过蓝牙无线技术将数据传输到安装数据中心的安卓手机接收端。实测表明,多传感器的环境数据能够实时准确地被采集,并正确地显示到LED液晶屏上;通过蓝牙输出到数据中心,在安卓智能设备上也可以同步显示环境数据。此外,该环境系统具有体积小、测试数据准确和使用方便等特点,具有一定实用性。

猜你喜欢
安卓温湿度蓝牙
iPhone不卡的秘密曝光:安卓也能享受
蓝牙音箱的直线之美
基于AT89C51的数字型蚕用温湿度计的设计
基于DSP的多路温湿度监测系统
文物表情包
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
基于温湿度控制的天气预测装置
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
蒸发冷却温湿度独立控制空调系统的应用
一种基于安卓系统的手机侧抓包分析方法