美文网首页
Android IOT 蓝牙与传感器(一)

Android IOT 蓝牙与传感器(一)

作者: 古早味蛋糕 | 来源:发表于2023-02-23 15:58 被阅读0次

一、蓝牙简介
蓝牙是一种短距离无线通信技术,由爱立信公司于1994年创制。爱立信原本只是想用其替代连接电信设备的数据线,孰料后来发现它也能用于移动设备之间的数据传输,之后蓝牙技术在手机上获得了长足发展。
从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT)和低功耗蓝牙(Bluetooth Low Energy,简称BLE)
经典蓝牙是在之前的蓝牙1.0,1.2,2.0+EDR,2.1+EDR,3.0+EDR等基础上发展和完善起来的, 而低功耗蓝牙是Nokia的Wibree标准上发展起来的,是完全不同两个标准。
1.经典蓝牙模块(BT)
泛指蓝牙4.0以下的模块,一般用于数据量比较大的传输,如:语音、音乐、较高数据量传输等。
经典蓝牙模块可再细分为:传统蓝牙模块和高速蓝牙模块。
传统蓝牙模块在2004年推出,主要代表是支持蓝牙2.1协议的模块,在智能手机爆发的时期得到广泛支持。
高速蓝牙模块在2009年推出,速率提高到约24Mbps,是传统蓝牙模块的八倍。
传统蓝牙有3个功率级别,Class1,Class2,Class3,分别支持100m,10m,1m的传输距离

2.低功耗蓝牙模块(BLE)
泛指蓝牙4.0或更高的模块,蓝牙低功耗技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段。
因为BLE技术采用非常快速的连接方式,因此平时可以处于“非连接”状态(节省能源),
此时链路两端相互间只是知晓对方,只有在必要时才开启链路,然后在尽可能短的时间内关闭链路(每次最多传输20字节)。
低功耗蓝牙无功率级别,一般发送功率在7dBm,一般在空旷距离,达到20m应该是没有问题

Android手机蓝牙4.x都是双模蓝牙(既有经典蓝牙也有低功耗蓝牙),而某些蓝牙设备为了省电是单模(只支持低功耗蓝牙)

经典蓝牙:
1.传声音
如蓝牙耳机、蓝牙音箱。蓝牙设计的时候就是为了传声音的,所以是近距离的音频传输的不二选择。
现在也有基于WIFI的音频传输方案,例如Airplay等,但是WIFI功耗比蓝牙大很多,设备无法做到便携。
因此固定的音响有WIFI的,移动的如耳机、便携音箱清一色都是基于经典蓝牙协议的。

2.传大量数据
例如某些工控场景,使用Android或Linux主控,外挂蓝牙遥控设备的,
可以使用经典蓝牙里的SPP协议,当作一个无线串口使用。速度比BLE传输快多了。
这里要注意的是,iPhone没有开放

BLE蓝牙:
耗电低,数据量小,如遥控类(鼠标、键盘),传感设备(心跳带、血压计、温度传感器、共享单车锁、智能锁、防丢器、室内定位)
是目前手机和智能硬件通信的性价比最高的手段,直线距离约50米,一节5号电池能用一年,传输模组成本10块钱,远比WIFI、4G等大数据量的通信协议更实用。
虽然蓝牙距离近了点,但胜在直连手机,价格超便宜。以室内定位为例,商场每家门店挂个蓝牙beacon,
就可以对手机做到精度10米级的室内定位,一个beacon的价格也就几十块钱而已

双模蓝牙:
如智能电视遥控器、降噪耳机等。很多智能电视配的遥控器带有语音识别,需要用经典蓝牙才能传输声音。
而如果做复杂的按键,例如原本键盘表上没有的功能,经典蓝牙的HID按键协议就不行了,得用BLE做私有协议。
包括很多降噪耳机上通过APP来调节降噪效果,也是通过BLE来实现的私有通信协议。

二、传统蓝牙技术在App开发中的详细用法
内容包括如何发现周围的蓝牙设备并与之创建配对、如何通过A2DP技术把手机音频传给蓝牙音箱播放、如何在两部已经配对好的蓝牙手机之间建立连接并传输简单数据
1、蓝牙设备配对
因为手机内部一般同时集成了2G/3G/4G/5G、WiFi和蓝牙,所以蓝牙功能已经是智能手机的标配。若想进行蓝牙方面的开发,则需在App工程的AndroidManifest.xml中补充下面的权限配置:

<!-- 蓝牙 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission
    android:name="android.permission.BLUETOOTH_PRIVILEGED"
    tools:ignore="ProtectedPermissions" />
<!-- 如果Android6.0 蓝牙搜索不到设备,需要补充下面两个权限 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Android的蓝牙模块管理工具名叫BluetoothAdapter,虽然通常把BluetoothAdapter翻译为“蓝牙适配器”,其实它干的是管理器的活。下面是BluetoothAdapter类常用的方法:

相关文章

网友评论

      本文标题:Android IOT 蓝牙与传感器(一)

      本文链接:https://www.haomeiwen.com/subject/fnlokdtx.html