已刊登至《无线电》六月刊
早在1994年爱立信公司就创立了蓝牙技术,并制定了基本的技术规范,原意是创造一种设备间通讯的标准化协议,以解决设备间通讯不兼容的情况,规范公布后得到大量移动设备制造商的支持,并于1999年成立蓝牙技术联盟(Bluetooth Special Interest Group),该联盟制定并维护蓝牙无线规范,并对设备制造厂商提供Bluetooth认证与授权。
当前影响最广的版本应该是蓝牙4.0,本标准中增加了Bluetooth Smart和Bluetooth SmartReady标准。特别是Bluetooth Smart版本,作为低功耗蓝牙(Bluetooth Low Energy,简称BLE),相对历史版本有质的飞跃,主要表现在成本低,功耗低,峰值电流极小并可以非常快速的建立连接,使用一粒纽扣电池就可以连续工作数年之久。相较于Zigbee和传统蓝牙,协议标准化和低功耗的优势让BLE在智能家居和穿戴设备上的优势一目了然,如图1所示。
图1 常用无线协议比较
特别是2011年开始苹果iOS原生支持BLE之后,BLE得到大量iOS周边厂商和智能设备厂商的响应,基于BLE技术开发的智能硬件遍地开花,如:智能体重秤,智能手环,智能灯控,智能水杯,智能马桶,智能闹钟……
项目背景
近两年各种智能家居的产品层出不穷,而且众多“科技公司”“互联网企业”“资本投资公司”纷纷加入战团,看到做手机的A公司出了一个智能净化器,做空调的B公司出了一个智能手机,做手表的C公司出了一个智能手环,做马桶的D公司坐不住了,在马桶里面塞进去了一个温控+通讯模块,就诞生了智能马桶…智能设备市场好热闹啊。那么智能产业迅速发展的现在,我们在智能家居上还能有什么创意可以挑衅?灵感真的都源于生活,小熊有一天开门收快递,然后无情的风把万恶的门拍死了,只剩小熊穿着睡衣举着手机拿着包裹在风中凌乱,开锁小哥在小熊女友担保外加3张毛爷爷之后才高抬贵手开了门,懊恼啊…拍大腿的瞬间,当时小熊就萌发了一个念头,要是门锁换成智能控制的话,是不是钥匙就不再困扰我们了!!!只需要打开手机APP,就可以操纵智能门锁开门,或者像有强迫症的熊二,每次锁完门都要回头再看一次门有没有锁好,是不是有了门锁的手机APP,就可以随时看自家门锁的开关状态了!
想法出来了,回头就开始一步步落实。经过对场景设想,最终选用蓝牙+以太网网关的方案,正是因为蓝牙短距离+传输速度快的优势,其中以太网网关部分使用W5500硬件协议栈芯片实现。为了更加体现门锁的智能化,小熊设想了几个场景:其一是小熊出门收快递,门被无意中关上了,可以直接用手机开门;其二小熊不在家,小熊女朋友需要进门洗衣服做饭,小熊可以远程给女朋友开门;其三是熊二被女朋友赶出来了,需要临时借宿,小熊可以给熊二手机授予限时的开门权限(如2周)。看起来是不是很强大!图2就是小熊今天要为大家介绍的蓝牙智能门锁的实现示意图。
图2 蓝牙智能门锁示意图
本方案的组成主要分为三个部分:BLE门锁机构,BLE网关设计,门锁管理服务器。因为门锁管理服务器主要为数据库管理以及APP调用等内容,本文不做过多阐述,本文将主要讲述BLE门锁和BLE的以太网网关的实现等部分内容。
关于BLE的实现,我们选用的是目前市场上最常见的TI CC2541,CC2541是BLE单芯片解决方案,包含一个工业级的8051内核以及RF收发器,集成TI的BLE低功耗协议栈并拥有相对完善的低功耗外设;而以太网部分用的硬件协议栈芯片W5500,W5500芯片使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层(如:TCP, UDP, ICMP, IPv4, ARP, IGMP, PPPoE等协议),并集成了数据链路层,物理层,以及32K字节片上RAM作为数据收发缓存。不言而喻,W5500非常适合CC2541这种8051内核,而且片上资源不是很丰富的MCU,一切就这么愉快的决定了。
为了实现BLE通讯,我们需要使用两个CC2541模块,一个作为Central,另一个作为Peripheral;他们之间实现BLE通信,其中Peripheral作为门锁机构的控制,而Central则驱动W5500作为TCP Client实现网络通信,从而在网络端查询门锁状态以及实现网络控制开锁的功能。图3列出了需要准备的硬件设备。
图3 所需硬件设备
准备工作:
1. 安装编译环境IAR Embedded Workbench for 8051 8.10 Evaluation
2. 安装协议栈BLE-CC254x-1.3.2
3. 安装CC-Debugger模块调试下载器驱动
BLE以太网网关部分:
BLE以太网网关部分结构如图4:
图4 BLE以太网网关接线图
需要在CC2541的Central模式中集成W5500的驱动以及Socket处理部分,由于W5500的函数驱动库是分层次书写的,我们只需将SPI通信的硬件抽象层的函数重新编写即可。以下为CC2541的SPI1的初始化配置函数和数据收发函数的程序,以及复位管脚的控制程序
继续阅读:http://www.iwiznet.cn/blog/?p=7192
文章评论(0条评论)
登录后参与讨论