基于蓝牙4.0技术智能灯泡的设计与实现
2015-04-27张少华魏志远
张少华 魏志远
摘 要:为了实现用户居室场景特殊情景灯光和依据个人的颜色喜好进行远程调节的目的,采用在传统LED灯泡基础上,加入蓝牙无线传输控制模块,并通过市面上配有蓝牙4.0的手机、平板电脑等移动终端向灯泡传输控制命令的方法,通过PWM实现对LED灯泡通断、亮度和颜色调节的控制。做了调色、波形和控制距离的实验。实际使用证明:该系统工作良好,响应及时,达到了设计要求。
关键词:远程调节;LED灯泡;蓝牙4.0;PWM
中图分类号:TP316 文献标识码:B 文章编号:2095-1302(2015)04-00-04
0 引 言
近年来,物联网成为全球关注的热点领域,被认为是继互联网之后最重大的科技创新。物联网的发展也为智能家居引入了新的概念及发展空间,智能家居可以被看作是物联网的一种重要应用。智能家居涉及土建装修、通信网络、信息系统集成、传感器件、家电、医疗、自动控制等多个领域[1]。
由于对物联网智能家居的家居应用需求日益增强,智能家居有着非常诱人的前景与巨大的市场,其中已经有不少产品占有了很大的市场。比如飞利浦推出的智能灯泡Hue Lights,通过手机或者平板电脑可以控制灯泡的通断和改变发光颜色。但Hue Lights需要一个中继设备,无法直接通过移动设备进行控制,且价格比较昂贵。目前蓝牙的硬件成本已经降到了一个合理的水平,而且应用广泛,几乎是目前市面上手机和平板电脑的标配。让蓝牙技术作为其中的控制手段为一个不错的选择。
低功耗蓝牙(Bluetooth Low Energy,BLE)是蓝牙技术的最新版本(也称蓝牙4.0),是一种低数据量、突发性通信需求定制的低功耗、短距离通信技术,主要针对低成本、低复杂度的无线体域网和无线个域网设计[2]。传统蓝牙最多允许一个主设备连接7个从设备,而低功耗蓝牙没有该限制,理论上支持无限个从设备进行连接,而且传输距离也能到达50~60 m[3]。
本文提出一种基于低功耗蓝牙4.0技术的智能灯泡系统设计,主要在传统LED灯泡基础上加上蓝牙控制模块,并把手机或者平板电脑等移动设备作为系统的中心出发点,通过无线短距离传输技术控制灯泡的通断状态、亮度和发光颜色。同时灯泡具有定时、渐变颜色等功能。
1 系统总体架构
本系统主要由两部分组成:智能灯泡硬件设备和移动终端(主要是其配套的APP应用软件)。其中移动终端作为控制端,控制灯泡相关的功能性操作,灯泡作为被控端,主要接收从控制端发送的命令,对命令进行解析作并及时做出相应的动作。在控制端和被控端之间作为桥梁角色的蓝牙通信技术,主要完成设备之间的互联、通信等操作。系统总体结构框如图1所示。
(1)移动终端
选取当前市面上主流的支持蓝牙4.0的移动设备充当人与设备之间的媒介。通过安装在移动终端设备上的APP控制智能灯泡相关功能。其中APP的主要功能是给用户一个简单易懂的界面和简化操作,并调用相关API函数完成蓝牙配对、链接、控制指令的组装、发送以及相关信息的写入与读取等功能。
(2)智能灯泡
主要通过蓝牙模块进行数据的传输、命令解析、调节灯泡的亮度和颜色。蓝牙模块主要采用CSR1010低功耗蓝牙芯片。该芯片具有32个引脚,可以同时提供4路PWM脉冲波,并支持E2PROM和FLASH进行程序的下载。
在智能灯泡端通过PWM脉冲波调节灯珠的电压,从而达到调色的功能。在LED灯珠方面,采用红、绿、蓝、白四色共七颗灯珠。其中红绿蓝灯珠各一颗用于混色,白色三颗用于提供照明。
LED 作为照明设备与传统的白炽灯和荧光灯比较,在同等的流明度下,其用电量仅为白炽灯的10%,荧光灯管的50%[4]。由于灯泡是220 V直接供电,同时需要两个电压转换模块,一个220 V转18 V,为灯珠供电。一个为18 V转3.3 V,为蓝牙芯片供电。
2 智能灯泡系统总体设计
2.1 智能灯泡设备
主要分为两个部分:智能灯泡硬件以及智能灯泡固件程序。其中硬件包括电压转换模块、蓝牙控制模块和LED发光模块。
2.1.1硬件设计
(1)电压转换模块
由于LED灯珠需要的电压为18 V,而蓝牙模块需要的电压为3.3 V,所以需要将220 V的输入电压进行两次转换:220V转18 V和18 V转3.3 V。其中220 V AC转18 V DC模块实现交流的220 V转成直流18 V供电,为整个系统供电。
在18 V转3.3 V模块中的电压转换芯片采用Holtek公司生产的HT7533-1,LDO将18 V DC转成3.3 V,主要为蓝牙模块供电。
(2)蓝牙控制模块
蓝牙控制模块电路主要有系统指示灯、复位电路、SPI程序下载接口、PWM电路等几部分组成。模块电路如图2所示。
系统采用16 MHz晶振作为时钟源。在存储设备方面主要采用E2PROM,在就需要在固件代码中定义一个NVM_TYPE_EEPROM的宏。固件程序通过SPI串行外设接口的方式进行下载与调试。在蓝牙芯片引出4个引脚,设置为PWM模式,分别用于控制红、绿、兰、白光四路脉冲,用于调节灯泡的发光颜色。
(3)LED发光模块
LED发光模块采用六个灯珠布局方式:白色灯珠三个,红、绿、蓝灯珠各一个。其中三个白色灯珠为串联的方式。灯珠整体布局如图3所示。2.1.2智能灯泡固件设计
CSR 1010芯片支持蓝牙4.0协议栈,该协议栈主要包括ATT、GATT、SMP、L2CAP、GAP等规范。
通用访问规范(Generic Access Profile,GAP)规定了4种角色:广播者(Broadcaster)、观察者(Observice)、外设(Peripheral)和中央(Central)角色。所以在智能插座系统中,灯泡作为外设设备,控制器支持从设备(Slave)角色,移动终端作为中央角色,是所有外设连接的发起者,控制器支持主设备(Master)角色。
GATT规范位于协议的最顶层,由一个或者多个服务构成规范用来实现某个应用。在系统中,灯泡作为一个Server向移动终端(Client)暴露一个调色服务,用于控制灯泡的亮度、色彩和通断。调色服务中包含两个特征值,特征值1用于控制灯泡的通断,长度为1个字节。规定命令值0x00为关,0x01为通。特征值2用于控制灯泡的色彩和亮度,长度为4个字节,前三个字节用于控制灯泡的颜色,最后一个字节用于控制灯泡的亮度。前三字节只当最后字节为0有效。
硬件上电后,主要进行系统的初始化工作,包括GATT、SMP、GAP、硬件等模块的初始化。初始化完成后,再读取系统时间和规则,然后灯泡开始广播。
在实际应用中,用户不会一直长时间需要控制灯泡,所以出于节约能耗的考虑,将广播状态中将广播设置为三种模式:快播,中播,慢播。其中快播持续时间为1 min,广播时间间隔为60 ms,中播持续时间为5 min,广播时间间隔为1280ms,其余时间为慢播时间,广播间隔为5 s。该设计可以有效降低能耗,并能有效保证设备能及时被发现和连接。
调色的实现方式为自定义一个函数用于控制占空比:
2.2 APP软件设计
移动终端设备端作为主设备,主要有扫描设备、发现设备、发起连接、发送控制指令、断开连接等操作。开启软件后,进行相关数据初始化,然后系统进入轮训扫描设备阶段。连接设备后,按照上文规定的格式发送指令,控制相关操作。APP软件主要基于Android平台[8]。软件流程图如图4所示。
理论上一个主设备可以同时连接无数个从设备,但一个从设备同时只能被一个主设备控制。采用控制完立即释放连接的方式,这样可以释放资源给别的用户使用。同时,利用4.0协议最短可以在3 ms内完成连接并传输数据的特性,实现一个时间段内多个移动终端同时控制一个灯泡的功能。
涉及到需要对多个灯泡信息进行管理,设计了基于Sqlite数据库[9,10]的设备管理模块,用于存储和管理灯泡的相关信息。
3 实验结果及分析
基于系统的设计要求是移动终端设备能正确控制灯泡的开关、调节亮度和色彩、定时等功能,同时满足室内有障碍物的情况下10~20 m的通信需求。为检测系统是否达到设计要求,所以对系统进行功能和性能测试。
3.1 灯泡组装
由于灯泡模具外壳的因素,暂时先组装成实验原型机。连接排线,检查各部件,各模块。一个完整的原型机如图5所示。
3.2 测试
(1)调色测试
由于原型机有线路、元器件暴露在外,直接使用220 V供电可能会发生触电危险。所以在测试中,去除220 V转18 V电源模块,改用电源箱输出18 V DC供电。
利用Android手机的蓝牙功能,通过其上APP与灯泡建立连接,并分别向调色服务特征值写入十六进制代码0xFF000000,0x00FF0000,0x0000FF00。目的是使灯泡发出红光,绿光和蓝光。为了显示效果,采用大灯罩。实验结果如图6所示。
(2)距离测试
在通信距离测试中,分别选择比较空旷的走廊和有障碍物的实验室。测试结果显示在室外到达了35 m左右通信距离,实验室有障碍物的环境下达到15 m左右的通信距离。
3.3 出现问题及解决方案
(1)灯泡不能实现0~255的全范围调色。
在实验中发现,在调色的过程中,有一个调色的上限和下限。当低于下限或者高于上限时,颜色只会保持在下限或者上限所对应的颜色。经研究发现LED灯珠有一个电流的最大值和最小值,当控制电压小于某个值时,无电流。同样,当控制电压高于某个值时,电流保持最大值不变。所以如果要显示0~255全范围变色,必须要选择一个合适的范围。图7为实测电流与电压的关系。
(2)通信距离短
在距离测试中发现,蓝牙的通信距离过短。在空旷地区只有30米,室内10米。经过排查后发现,在天线下方的PCB板有覆铜,干扰了信号。将覆铜去掉后,通信距离几乎提升了一倍。室外达到了60 米,室内达到25米左右。
4 结 语
本文介绍一种基于蓝牙4.0为控制核心,通过手机、平板电脑等移动终端作为载体来控制智能灯泡的技术方案。整个系统主要由移动终端控制端和智能灯泡被控制端组成。其中智能插座端主要由电源模块、蓝牙控制模块、配套固件和LED发光模块等组成。系统经过试验测试,可以满足实际需求。
参考文献
[1]童晓渝.物联网智能家居发展分析[J]. 移动通信,2010(9):16-20.
[2] Robin Heydon. Bluetooth Low Energy The Developer,s Handbook[M].Pearson Education,2013.
[3]陈灿峰.低功耗蓝牙技术原理与应用[M]. 北京:北京航空航天大学出版社,2013.
[4]徐光宪,陆伟,高峰.基于M2M技术的智能灯泡系统设计与实现[J]. 计算机应用与软件,2014(5):323-333.
[5]可荣硕,马晓军,张思博.基于RGB色彩空间的颜色识别系统设计[J]. 微计算机信息,2010(5):36-47.
[6]江世明.脉宽调制控制技术中PWM波形程序设计方法[J]. 邵阳学院学报,2006(4):45-47.
[7]李薇,刘方.情景照明系统的LED混色技术研究(下)[J]. 中国照明电器,2009(11):10-13.
[8]李黎国,张辉,程号. 基于Android健康服务终端蓝牙传输软件的设计[J]. 电子科技,2012,25(5):115-118.
[9]刘阳.基于Sqlite数据库的智能粮情监测Android客户端设计[D]. 安徽:安徽大学,2014.
[10]张媛媛.嵌入式数据库管理系统的研究与实现[D].上海:华东师范大学,2007.