蓝牙模块智能灯控应用方案


第一

当今是信息高速发展的时代,经济、文化的流行与传播都离不开信息。信息的传递直接影响着人们生活的方方面面,信息的传递方式又各有不同,如有线传输、无线传输等;而无线传输还可按协议不同分为:蓝牙、WIFI、zigbee、LoRa等,这其中蓝牙通信技术凭借着优越的性能及安全性,已然在商业、工业及个人生活等得到了广泛应用,今天亿佰特为大家介绍下蓝牙模块智能灯控应用方案

–  I  –

那么,要使用蓝牙,就必不可少的需要用到蓝牙设备;在此,让我们先了解一下E104-BT01这款模块;并且本文提供一些基于E104-BT01的蓝牙数据透传、IO口控制输出等功能,所能实现的一些无线产品方案及思路。

蓝牙模块

E104-BT01是成都亿佰特设计生产的一款体积极小的无线蓝牙模块;模块采用美国德州仪器(TI)公司原装进口CC2541射频芯片,自带高性能PCB板载天线,并适用于BLE协议。模块可使用串口收发蓝牙数据,降低了蓝牙应用的门槛。模块引出单片机所有IO口,集成了透传功能、主从一体,即拿即用,可进行多方位的开发。支持串口指令配置模块参数和功能,广泛应用于穿戴设备、家庭自动化、家庭安防、个人保健、智能家电、配饰与遥控器、汽车、照明、工业互联网等领域。

–  II  –

无论是何种基于E104-BT01的产品方案,其前期都离不开蓝牙连接功能。

E104-BT01模块互连操作:

若开发的产品的蓝牙连接双方,都采用的E104-BT01,则上电后作为主机的E104-BT01会主动去连接,服务UUID为FFF0的E104-BT01从机。

但是若此时处于主机扫描范围内,存在多个服务UUID为FFF0的E104-BT01从机,则主机去连接的从机可能并不是应该连接的从机。所以这个时候,需要向E104-BT01发送“AT+BONDMAC”指令,绑定需要连接的E104-BT01的MAC地址;这样,主从机连接会变得更加稳定高效。

手机连接E104-BT01操作:

若开发的产品是使用手机与E104-BT01相连,那么产品开发者所开发的配套手机APP,需要具有一个选择蓝牙设备连接界面。其选择蓝牙设备界面可如下图所示:

蓝牙模块连接APP

图中名为“E104-BT01”的蓝牙设备,即为本蓝牙模块;然后点击这个设备进行连接。这些广播信息,都可通过主控MCU串口发送(或者手机发送空中配置令)“AT+ADVDAT”、“AT+NAME”、“AT+ADVINTV”等指令,对E104-BT01所广播的数据及名字等进行修改。当然,具体的蓝牙设备选择界面,是根据开发者设计的,此处仅提供一个参考。

注意:

无论何种产品方案,其蓝牙连接步骤都大同小异;本文以后的方案,都省略讲解此处连接操作。

具体的AT指令使用方法,请参考E104-BT01用户手册。

单独使用E104-BT01的简单应用方案及思路

蓝牙模块应用

由于E104-BT01自身集成了两路I/O输入采集口(IO0与IO1口),及两路I/O输出控制口(IO2与IO3口),可以通过相应的AT指令进行操作。利用E104-BT01的I/O控制功能,可以做一些小型且简单的无线设备。其中,最容易实现的即为无线灯控设备。E104-BT01使用者,可以做一个如下图的简单安卓灯控界面;只需在安卓程序中实现:按下界面中的按键,手机即在“CONFIG CHANNEL”通信通道发送相应的AT指令(如“AT+IO2=1”指令),即可控制E104-BT01的IO2端口输出高电平。该电平信号经相应的驱动电路,就可以控制小到3.3V的LED灯,大到220V的节能灯的亮灭。

–  III  –

当然,灯控的应用,做主机控制的不仅可以是手机,也可以是其他的蓝牙主机设备(如某种微型蓝牙遥控器),其原理都别无二致。因此,若使用者准备开发的产品,功能比较简单,则作为从机的E104-BT01无需再接多余的MCU,这样既可缩短开发周期,也节省了开发成本。

从上节可知,仅仅使用E104-BT01做开发,而不使用主控MCU;虽然可以实现一些功能,但功能过于单一,对E104-BT01的性能造成了一定的浪费。要想将E104-BT01物尽其用,则应将E104-BT01作为外设,被相连的主控MCU所控制。利用E104-BT01的透传功能与MCU结合,可以产生丰富多样的蓝牙无线产品。此节中,我们就其透传功能,介绍一些功能实际的蓝牙产品的实现方案及思路。

第二

–  I  –

举一个简单的小例子,就如上一节所谈的灯控,若是接入一个具有大量I/O端口的主控MCU,那么可控灯的数目就变得十分可观了。我们可以利用E104-BT01做从机时的透传特性,结合主控MCU,做成一款“蓝牙灯控处理器”;再用手机作为蓝牙主机,来发送自定义的灯控指令,来控制“蓝牙灯控处理器”。这样,一款家庭灯光蓝牙遥控系统就大概实现了。

–  II  –

那么举一个简单的例子,手机灯控APP可以做成如下操作界面。至于相应的程序实现思路也并不复杂。在该灯控产品开发时,应该对每个灯控端口进行编号,如LED0~LED9。那么较简单的方案思路:在用户初次使用时,直接在手机界面上先显示“LED0”~“LED9”这种默认名字,然后由用户自己去每一个灯都操作一番。我们只需要再给用户提供,下图图一所示的照明灯分组命名的功能,由用户自己判断LED0~LED9对应的照明灯即可。

蓝牙模块应用2

这样即能形成如下图二界面,用户即可在图二界面中,通过点击图标来控制各个房间的灯。

蓝牙模块应用3

点击各照明灯图标后,应用程序只需要执行,发送固定格式的对应蓝牙数据包动作,比如:点击图二中的“客厅灯”,这个灯其实际上是对应的LED6端口,只是被用户重命名了,这时手机就会在“MAST CHANNEL”通道发送“LED6:1”。当E104-BT01收到此数据包后,会将接收到的数据通过串口,发送给相连的MCU;主控MCU将收到的数据包进行解析后,将会执行LED6端口输出高电平,此时“客厅灯”被点亮。

上面这种方案,是采用手机作为主机,向作为从机的“E104-BT01+MCU”设备,发送相应的控制数据包。其实,也可以用另一个“E104-BT01+MCU”设备,设置为主机,加上相应的各个按键,即做成一个灯光遥控器,也可方便的控制各LED灯;至于程序的实现的思路也与方案一相同。但是这种方案,不能让用户自由分组和命名,缺少了一点灵活性,操作也不够直观,而且用户还得购买配套的遥控器,增加了用户的成本。所以,这种方案实现虽然更加简单,但并不十分推荐。

–  III  –

其实,利用E104-BT01的透传特性,不仅仅只是能控制灯光,对于控制门锁、遥控可运动设备等都具有很好的控制效果。拿控制门锁开关来说,由于蓝牙优秀的加密及跳频特性,可以很好的做到抗干扰,及对加密设备有效的安全控制。

在这里我们可以浅谈一下,利用E104-BT01的透传特性实现蓝牙门锁的方案及思路。还是拿手机作为主机为例,用户手机首次与蓝牙门锁连接时,需要在如下图一的界面中填入设置的开锁密码;在此操作中手机程序将填入的密码,按照一定的格式发送到E104-BT01,数据包经E104-BT01串口输入到门锁主控MCU中,并被保存在MCU的FLASH区中。

蓝牙模块应用4

自此,用户开关锁页面默认为下图界面。用户每次需要开关锁时,只需要打开“蓝牙门锁APP”,点击图二相应图标即可开关锁。而这个开关锁的过程就牵扯到安全性的问题,那么手机就不能仅仅发送“ON”或“OFF”开关锁。为了增加安全性,应在手机发送的数据包中添加密码;比如,密码若为“123456”,则发送“123456ON”;这样,只有同时密码正确的指令数据包,才是有效的。

蓝牙模块应用5

如果想继续提高加密等级,还可以将密码“123456”,经一套双方相同的加密算法进行再次加密,将新算出的密码结合“ON”或“OFF”后再发送给E104-BT01。蓝牙门锁的MCU,将从E104-BT01接收的数据,进行解密后再执行相关操作。若想修改原密码,只需点击图二左上角“菜单”图标,进入图一的输入密码界面。在该界面先后输入旧新密码,其手机也应该先后发送旧新密码数据包,如“123456OLD”、“654321NEW”。前者旧密码蓝牙数据包发送过去后,是令门锁MCU开启密码权限,进入密码修改模式;紧接的新密码蓝牙数据包,就可以更新到门锁MCU的密码FLASH存储区了。若是再将此蓝牙门锁方案,结合上一小结的灯控方案,则可以做到一个手机作为多个蓝牙门锁的钥匙,使之蓝牙门锁系统更为方便且贴合实际,省去了金属钥匙的携带烦恼。

–  IV  –

对于这种蓝牙门锁的应用,并不推荐使用“E104-BT01+MCU”来制作蓝牙钥匙的方案。因为,用手机作为钥匙,不仅操作更加直观,其修改密码也十分方便;更主要的原因是蓝牙电子钥匙模块方案,携带并不比实际的金属钥匙方便。终上所述,我们更推荐将蓝牙钥匙开发成APP,集成到手机上的方案。


三分PK拾