欢迎关注燚智能头条号↗
燚智能硬件开发网
用简单的语言,讲复杂的技术!
前面我们讲了蓝牙的几个冷知识
链接在此:经典蓝牙和BLE蓝牙,在应用上的4个冷知识,产品经理必看!
总结下来,就是:蓝牙BLE,是物联网低功耗近距离传输的最佳手段之一。
本文主要讲:蓝牙BLE协议的那些事
主机和从机的关系
BLE系统中,有主机(Central)和从机(Peripheral)。
从机负责发送广播,主机负责收听广播并发起连接。
主机不发广播,从机无法主动连接主机,只能由主机主动连接从机。
一个主机能够连接多个从机,一个从机只能被一个主机连接。
因此在各种物联网和智能硬件应用中,主要是以手机作为主机,外围设备做为从机。一般都是1主对1从或1主对多从的使用。例如一台手机挂了好几个手环。
反面案例:我们以前遇到一个特殊场景,充分体现了BLE连接的局限性:有一款智能锁,要求用手环能开锁,用手机也能开锁,但要求手环也能连接手机。
只实现前两个功能很容易,智能锁作为从机,手机作为主机,手环也作为主机。但是要实现手环连手机,双主机是无法连接的,就需要其中一个作为从机,这种情况下只能让手环的BLE做成双模的。最终因为不靠谱,放弃掉了这套设计方案。
广播,也能传数据蓝牙BLE,主机和从机不连接,也能够发数据。这就是iBeacon、微信摇一摇蓝牙基站。
从机发送广播,广播内容中可以包含31字节的数据。这些数据可以被从机周围所有的BLE主机接收到。
BLE室内定位标签,用的也是这种方式,标签不断的发送广播,BLE基站收到广播信息,并根据信号强度判断所处的位置。
广播,可以理解为不断的向外发射电磁波,感觉是比较耗电的。但是BLE本身发射功率很低,每次广播只需要1mS的时间,广播间隔可以调大到10秒以上,所以实际上耗电量非常小。一个iBeacon的基站,靠纽扣电池都可以工作大半年。
连接
广播,只能做到从机到主机的单向小数据传输。
BLE连接之后,就可以做到双向传输了。虽然速度只有几K,但也足够传输控制指令和传感器信息这些简单数据了。
从机一旦被连接,就无法发送广播,也无法被其他设备连接。
从机这么容易被抢占,岂不是设备也很容易被入侵?从机可以和主机约定一个自己做的“握手协议”,如果握手不成功,就把主机给踢出去,然后继续广播等待其他主机。
像很多ofo和摩拜的共享单车,可以用BLE软件连上去,并且发送数据过去。只不过发了数据过去单车不会理你的。
BLE的安全性
从上面讲的特性来看,BLE的胜在低功耗和方便使用,但安全性不太好。
未加密的BLE数据,就是公开数据。如果要加密,必须对BLE上传输的明文做加密才行。BLE的智能锁,都需要在密钥算法上加密, 不能直接就发明文了。也要做到动态密钥,防止被截获之后仿造的密钥。
欢迎关注燚智能头条号↗
燚智能开发大讲堂
物联网开发实战派!
前期精彩内容回顾:
一种NB-IOT和BLE双模的蓝牙智能锁解决方案
物联网产品设计,选不选蓝牙?选经典蓝牙还是BLE?一文看懂
低功耗蓝牙Ble的详细使用流程
中心设备 :判断蓝牙是否可用->打开蓝牙->开始扫描->获取禅派郑被扫描到的设备->连接设备->发现服务->获取到指定特征->写入特征值贺颂外围设备 :判断蓝牙是否可用->打开蓝牙->创建广播数据->发送广播->添加服务至广播->根据监听获取写入的数据
下图是中心设备的使用流程羡灶图 来源
不是任何设备都支持BLE,最开始要确定设备是否支持,还要确定蓝牙已经打开。
02 01 06 是一个AD Structure:Data的长度是02;Data是01 06;AD Type是01(Flags);AD Data是06,表明支持General Discoverable Mode、不支持BR/EDR。
03 03 aa fe 是一个AD Structure:Data的长度是03;Data是03 aa fe;AD Type是03(16 bits的Service UUID);AD Data是aa fe,是Eddystone profile的Service UUID。 AD Type查询
什么是蓝牙低功耗(BLE)功能?
蓝牙低功耗(BLE)功能,是利用蓝牙低功耗宏神盯特性新发展的技术。
手机上要利用蓝牙低功耗技术,一般是通过 BLE 配件产商发布的 BLE 配件和其配套 APP,配合使用。
比如:BLE 运动手环、运动手表、体重计、计步器、智能腕带等蔽和。