基于AndroidPN技术的Zigbee无线网络的物联网数据采集
2014-12-16郑先海吕海华杨弘平
郑先海,吕海华,杨弘平
(沈阳工程学院信息学院,辽宁沈阳110136)
1 系统结构
1.1 系统组成及功能
研制的基于AndroidPN技术的Zigbee无线网络的物联网数据采集实时监测设备主要以便携的方式实现温度和脉搏数据的长时间监测,实时显示数据并生成动态图表将数据上传到云端(目前仅支持百度云)。温度和脉搏的监测依靠设备自身的传感器,可以连续长时间的采集温度和脉搏信息。数据与手机客户端的交互通过蓝牙模块或通过AndroidPN消息推送服务实现,数据的显示和实时动态图表的生成依靠手机客户端软件来完成,数据的上传与下载依靠手机GSM等网络功能模块实现,数据上传到云端而不占用本地资源。温度、脉搏数据采集及检测的结构图如图1所示。
温度数据采样频率可以达到1次/s,采集到的数据暂存于硬件的缓存区,然后通过蓝牙连接到手机客户端,将数据送到手机,或者通过PC上的AndroidPN服务将数据发送到手机上,然后在屏幕上显示并通过手机的上网模块将数据上传到云端,达到数据的显示和存储的目的。设备连接实物图如图2所示。
图2中,最左边为CZ-HC-05的蓝牙设备,中间为DS18B20温度传感器,最右边为PulseSeneor(反射式光电脉搏传感器)脉搏传感器,终端设备采用的是友善之臂的Micro2440开发板,处理器是三星S3C2440,系统采用5V直流电源供电。
图1 数据采集及检测原理
1.2 数据采集
采用集成了温度传感器的采集电路进行温度采集。热电偶的响应时间很快,该设备具有采样虚损,分辨率高,误差小等特点。脉搏数据的采集采用Pulse-Seneor反射式光电脉搏传感器,该设备响应时间短,误差小,体积小便于携带。
终端温度和脉搏采集的核心代码如下。
图2 硬件终端实物
static ssize_t ds18b20_read(struct file*filp,char__user* buf,size_t count,loff_t* f_pos)
{
int flag;
unsigned long err;
unsigned char result[2] ={0x00,0x00};
flag=ds18b20_init();//初始化
if(flag&0x01)
{
printk(KERN_WARNING“ds18b20 init failed ”);
return-1;
}
write_byte(0xcc);//跳过 ROM
write_byte(0x44);//开始转换温度
flag=ds18b20_init();
if(flag&0x01)
return-1;
write_byte(0xcc);//跳过 ROM
write_byte(0xbe);//读暂存器
result[0] =read_byte();//温度低八位
result[1] =read_byte();//温度高八位
err=copy_to_user(buf,&result,sizeof(result));
return err?-EFAULT:min(sizeof(result),count);
}
1.3 数据存储和传输
由于缓存和本地存储空间有限,为了保存采集到的数据,需要拓展存储空间。将数据存储到云端的,既解决了存储空间有限的问题,又方便了用户可以随时随地查看自己身体状况的监测信息,云存储的方式彻底摆脱了对硬件存储的依赖,使用户能够更加安全便捷地存储自己的数据。
数据传输采用了比较常用的蓝牙和网络传输机制。硬件终端通过蓝牙将采集到的温度和脉搏数据传输到手机客户端,手机通过软件将由硬件终端传来的数据进行显示并自动生成动态图表。数据传到手机后,由手机客户端通过GSM等上网模块将数据上传到云端。数据传输机制的原理图如图3所示。
Android客户端从蓝牙接收数据的核心代码如下。
Thread ReadThread=new Thread()
num=is.read(buffer);//读入数据
n=0;
String s0=new String(buffer,0,num);
fmsg+=s0;//保存收到数据
for(i=0;i<num;i++){
if((buffer[i]==0x0d)&&(buffer[i+1]==0x0a)){
buffer_new[n] =0x0a;
i++;
}else{
buffer_new[n] =buffer[i];
}
n++;
}
String s=new String(buffer_new,0,n);
smsg+=s;//写入接收缓存
if(is.available()==0)break;
2 系统实现
2.1 硬件终端实现
硬件终端信息采集系统的实现主要采用了Linux内核的剪裁和移植、DS18B20驱动的实现、QT移植、sqlite数据路的移植等技术。将采集到的信息转换为数字信息由蓝牙发送给手机客户端。硬件终端的显示图如图4所示。
2.2 手机客户端实现
手机客户端主要展现的功能包括:百度登录、百度退出、百度状态、百度用户信息以及信息的云存储等操作功能。本系统的手机客户端操作方法简单,用户只需要将客户端软件安装包安装到手机上即可开始使用。程序启动后的界面如图5所示。实现的具体功能如下。
图3 数据传输原理
图4 硬件终端
图5 手机客户端实现
1)用户权限
用户需要首先登录自己的百度云账号,与云端建立连接,用户可以通过“百度状态”来查看是否登录成功,“百度用户信息”会显示用户百度账号上的信息。
2)显示云信息
用户可以通过点击“显示云信息”按钮来查看通过本软件上传到百度云上的数据。
3)实时信息
用户还可以通过点击“开启蓝牙服务”按钮来启动蓝牙与终端建立连接查看实时数据,并且可以通过点击“打开体温实时图”查看自己体温实时变化的动态曲线,通过点击“打开脉搏实时图”按钮查看自己脉搏实时变化的动态曲线。
基于AndroidPN技术的Zigbee无线网络的物联网数据采集监测设备的应用软件采用Java语言编写,目前只支持Android操作系统的手机。软件实现蓝牙连接或在PC上配置AndroidPN服务,将数据发送到客户端,完成温度和脉搏数据的显示,自动生成实时的动态图表以及将实时数据上传到云端。通过实际测试,该软件在手机中运行正常,可以稳定地接收来自硬件终端蓝牙发送的信息,并能生成实时的动态图表,将数据同步到云端。
3 应用情况
所使用的蓝牙模块通信距离为10 m,AndroidPN服务的范围要求在局域网范围之内。建立通信后,手机客户端软件可以同步显示传感器测量的温度和脉搏数据,绘制实时动态曲线,并将数据上传到云端。经过实验测试,该设备硬件终端盒软件客户端均运行正常,蓝牙无线通信设备已经可以满足短距离传输数据的需要。该设备还具有可拓展性和实用性的特点,能完全满足日常及医疗的应用,实现便捷的实时人体温度和脉搏监测。
4 结语
所设计的系统实现了基于蓝牙及手机的温度、脉搏的无线监测并实现了传感器采集数据在手机客户端的显示、动态图表的生成和数据的云端上传。阐述了各部件的设计方法,实现并验证了蓝牙通信功能的实现和手机终端的数据显示和上传。与已有的温度和脉搏测量方式相比较,新型器件具有硬件结构简单、体积小、成本低、便于携带等特点,特别是硬件终端和手机客户端系统运行流畅稳定,占用资源小,可以很好地实现实时监测,在许多应用场合具有很强的普适性。
[1]李喜军.基于GSM短消息接口的温度遥测系统设计[J].测控技术,2005,24(2):59-62.
[2]吕 勇,李友荣,王志刚.基于短消息的温度与振动实时监测系统[J].数采与监测,2007,23(4):97-98.
[3]江 和,田晓科.基于MAX6675的T型热电偶在电器温度测试中的应用[C]//中国电子科学技术学会低压电器专业委员会第十二届学术年会.北京,2004:277-288.
[4]吕海华.云安全在安全网关中的应用[J].沈阳工程学院学报:自然科学版,2011(1):72-74.
[5]徐广毅,张晓林,崔迎炜.Qt/Embedded在嵌入式Linux系统中的应用[J].单片机与嵌入式系统应用,2004(12):14-17.