基于Android平台上BLE的智能家居控制系统设计与实现

时间:2022-08-10 11:00:42

基于Android平台上BLE的智能家居控制系统设计与实现

摘 要:基于智能家居无线控制的市场需求,以集成了CSR1010低功耗蓝牙芯片的智能插座为例,在Android平台上设计了一套基于蓝牙4.0通信协议的智能家居控制系统,实现了对此智能插座的无线通断电控制等功能。实际测试证明,系统工作良好,反应灵敏、准确,可以达到使用要求。

关键词:Android;BLE;智能家居;蓝牙4.0通信协议

中图分类号:TP237 文献标识码:A 文章编号:2095-1302(2016)03-00-02

0 引 言

近年来,随着物联网技术的发展和生活水平的提高,人们对居住环境的要求越来越高,智能家居随之成为物联网技术领域的一个重要研究课题,而家居系统的智能控制是其中的一个重要研究方向。低功耗蓝牙(Bluetooth Low Energy, BLE)是2010年推出的最新蓝牙版本,BLE相对于传统蓝牙最大的特点是超低功耗,并且目前BLE的硬件成本已经降到一个合理水平,非常适合应用于智能家居系统控制领域,据Bluetooth SIG高级市场总监柯瑞德分析,2013年至2018年,BLE的最大市场增长空间将会出现在智能家居系统领域。笔者研究了Android手机BLE应用及智能家居控制,以智能插座为例,设计了一套基于Android智能手机的BLE智能家居控制系统,实现对智能设备的实时控制功能。

1 Android系统中的BLE

Bluetooth SIG于2010年6月了蓝牙4.0技术标准,而Android智能手机全面支持BLE是在2013年7月Android4.3系统后。相较于传统蓝牙,BLE运行和待机功耗极低,一颗标准纽扣电池可以使其连续工作一年到几年时间。BLE与传统蓝牙协议及开发差别较大,以下对BLE通信协议及Android中的BLE开发做简单介绍。

1.1 BLE通信协议

低功耗蓝牙协议栈由控制器(Controller),主机(Host)和应用程序(Apps)组成,其协议栈如图1所示。各层的各种规范都基于GATT制定,它规定了发送和接收设备的各种属性值的方法。BLE通信把各种属性表示为服务(Service)的集合,而每个Service都由多个特征值(Characteristic)组成,Characteristic可以理解为一个数据类型,它包括一个value和0至多个对此value的描述(Descriptor)。BLE在连接建立过程中可以分为中心设备(Central)和设备(Peripheral)两个角色,Central负责scan advertisement,而Peripheral负责make advertisement。在BLE连接建立后,两个连接的设备又可分为服务端(GATT server)和客户端(GATT client),发送数据的设备为Server,接收数据的设备为Client。

1.2 Android中BLE的开发

Android平台的BLE开发常用类如表1所列,开发主要包括以下步骤:

(1) BLE授权,为使应用能使用手机BLE功能,需要在AndroidManifest.xml中进行授权。

(2) 检查并启动BLE功能,验证手机是否支持BLE。如果支持,通过蓝牙适配器BluetoothAdapter来查看蓝牙是否已经开启,也可以通过Intent传递ACTION_REQUEST_ENABLE参数调出蓝牙开启界面。

(3) 搜索BLE设备,使用BluetoothAdapter的startLeScan方法配合BluetoothAdapter.LeScanCallback回调参数进行BLE广播搜索,搜索需要设置时间上限并在发现设备后停止搜索以减少电量消耗。如果只想搜索某些设备,可以加入一个UUID数组参数。

(4) 建立GATT连接,当搜索到设备之后,可以使用BluetoothAdapter的getRemoteDevice方法根据UUID获得目标device,并通过BluetoothDevice的connectGatt方法进行BLE连接,之后即可进行数据交换。

2 系统设计

Android智能手机作为智能家居控制系统中BLE通信的主设备,负责搜索智能插座设备、发起连接、发送控制指令、断开连接等操作。软件整体运行流程如图2所示。

Android客户端主界面如图3所示,通过智能插座控制功能模块可以检查并打开手机蓝牙,添加设备,即开启BLE设备搜索,设置搜索时间上限为180 s,发现插座设备后发起连接请求并进行密码配对验证,建立连接后把设备信息保存到Sqlite数据库并添加到列表实现界面显示,之后可以点击开关按钮对插座通断电进行控制,即通过发送封装好的指定Service代表通断电Characteristic值。为实现多设备控制,在每次发送指令后断开GATT连接,当再次点击开关按钮时则先连接设备再发送相应指令。

3 实验结果及分析

3.1 功能测试

多次实验测试发现,在理想情况下系统实现了对集成CSR1010低功耗蓝牙芯片的智能插座通断控制功能。

3.2 性能测试

通过室内有障碍物及室外空旷环境下的实验测试发现,系统在室内障碍物环境下有效控制距离为13~15米,室外空旷环境下有效控制距离则达到30米以上,性能良好。

3.3 遇到的问题及解决方法

Android智能手机BLE在建立GATT连接之后马上进行Characteristic值传输有一定传输失败的概率。经研究实验,在连接建立成功后延时0.2秒进行数据传输能使控制成功率达到99%以上,使用效果良好。

4 结 语

本文介绍了一种Android平台上基于BLE的智能家居控制系统,通过Android App控制集成了蓝牙芯片的智能插座,整个系统结构明了、操作简单,经实验测试,系统对智能插座通断控制准确、反应灵敏、控制距离优秀,完全能够满足在室内复杂环境下工作的要求。

参考文献

[1]李侠,沈峰,李德胜.基于Android系统的低功耗蓝牙应用程序开发[J].重庆科技学院学报(自然科学版),2014,16(5):133-136.

[2]张少华,魏志远.基于蓝牙4.0技术智能灯泡的设计与实现[J].物联网技术,2015,5(4):90-93.

[3]黄强国,孙先松,陈燃,等.基于android蓝牙无线通信系统的实现[J].电子质量,2015(4):9-13.

[4]熊小军,万辉勇,陈泓屹.基于Android的低功耗蓝牙通讯研究与实现[J].科技广场,2015(7):122-127.

[5]常敏,梅晓敏,崔永进,等.基于BLE与Android的牧场温湿度智能监控系统设计[J].通信电源技术,2015(5):134-137.

[6]余文琦,邓建国,张鹏辉,等.基于Android的低功耗移动心电监控系统设计与实现[J].电子世界,2013(21):130-131.

上一篇:专业硕士培养质量保障措施的探索 下一篇:基于嵌入式Linux及MJPG―streamer的双目立体视...