如何使用android原生BLE蓝牙进行 *** 作?

如何使用android原生BLE蓝牙进行 *** 作?,第1张

之前的涉及的物联网项目中使用的: BLE 低功耗蓝牙(蓝牙40), 支持android 43以上的手机
主从关系: BLE低功耗蓝牙只能做从端设备 ,一个蓝牙主端设备,可同时与7个蓝牙从端设备进行通讯

1)低功耗
低功耗的原理:
1\低功耗蓝牙仅使用了3个广播通道,传统蓝牙技术采用 16~32 个频道
2\每次广播开启时间也由传统的 225ms 减少到 06~12ms(毫秒)

2)传输距离极大提高
传统蓝牙传输距离为 2~10m,而蓝牙40的有效传输距离可达到 60~100m

3)安全性
使用AES-128 CCM加密算法进行数据包加密和认证。
更多BLE蓝牙的解析参考博客 : BLE40教程一 蓝牙协议连接过程与广播分析

添加权限
打开蓝牙
1先拿到BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(ContextBLUETOOTH_SERVICE);
2再拿到BluetoothAdapter bluetoothAdapter = bluetoothManagergetAdapter();
判断是否打开蓝牙
未打开d出 系统d框 ,除了 魅族手机 是打开系统设置

设备/手机都是蓝牙信号

在回调方法中:

一般在扫描的过程中,我们还会设置 设备过滤原则 (因为我只想要搜索到我们想要的设备,忽略无关设备)
如:从 scanRecord -- beacon -- beacontype == 0xFF代表Manufacture,通过与嵌入式软件定义 自己的 Manufacture值即可

用BluetoothDevice得到BluetoothGatt:

断连:

关键问题:连接后一般要做什么事

( 必须在刚连接成功后2秒内app写一个值给设备,否则会被设备断开连接)

主要是读写 characteristic
gattwirteCharacteristic(mCurrentcharacteristic);

gattreadCharacteristic(characteristic);

bluetoothGattsetCharacteristicNotification(data, true);

真实工作中使用的蓝牙库BlueToothKit请参考我的另一篇博客:
android蓝牙入门知识和优秀蓝牙第三方库BluetoothKit的使用

区别:

1、传输速度

蓝牙42通过提高Bluetooth Smart的封包容量,让数据传输更快速,比蓝牙41更快。

2、隐私安全

蓝牙42的隐私设置让Bluetooth Smart更智能,不仅功耗降低了,窃听者将难以通过蓝牙联机追踪设备。消费者可以更放心不会被Beacon和其他设备追踪,比蓝牙41更加安全。

3、IPv6

蓝牙42中IPSP为Bluetooth Smart添加了一个IPv6连接选项,是互联家庭和物联网应用的理想选择,比蓝牙41更人性化。

参考资料:

百度百科-蓝牙

1、功耗低,支持标准的蓝牙BLE协议

为了更好的在应用设备上使用蓝牙功能,BLE蓝牙模块支持BLE40/42协议,更有SKB369模块支持50(固件升级),蓝牙50相比旧版大大降低了蓝牙的功耗,使人们在使用蓝牙的过程中再也不用担心蓝牙耗电问题。

2、主从一体,快速切换

在建立连接和数据传输的过程中,既可以做主,也可以做从(在上面的透明传输就是做从机),模式切换随心而变!SKB369作主机时,模块最多可与8个蓝牙从机模块进行连接并进行数据传输!

3、多种配置方式,串口AT指令,透传AT指令

用户可以根据AT指令集对蓝牙透传模块进行设置 *** 作。

4、支持1对多广播模式,内置iBeacon协议

蓝牙模块支持广播模式,在这种模式下蓝牙模块可以一对多进行广播。用户可以通过AT指令设置蓝牙模块广播的数据,蓝牙模块可以在低功耗的模式下持续的进行广播,应用于极低功耗,小数据量,单向传输的应用场合,比如无线抄表,室内定位等功能。

5、支持Mesh组网,实现蓝牙自组网络

基于Nordic nRF52832方案的BLE蓝牙模块SKB369支持蓝牙Mesh组网,并成功应用于蓝牙Mesh灯控方案中。

蓝牙Mesh灯控方案

6、支持UART接口

用户MCU直接使用串口通信方式与蓝牙模块通讯;蓝牙模块可以把所有来自用户MCU的串口透传数据通过BLE无线信道透明传输给另一端设备。另一端设备可以是智能手机(iOS/Android),也可以是其它BLE设备。

SKB369透明传输的基本架构

以上列举的功耗低、主从一体、多种配置方式、广播模式、支持Mesh组网、支持UART接口是BLE蓝牙模块的基本特征,目前蓝牙模块已经广泛应用于定位标签,资产跟踪,运动及健身传感器,医疗传感器,智能手表,遥控器,玩具等产品中。以上是我找到的有关BLE蓝牙模块的基本特征,希望能够帮助到您。

LoRa

LoRa(长 距离)是由Semtech公司开发的一种技术,典型工作频率在美国是915MHz,在欧洲是868MHz,在亚洲是433MHz。LoRa的物理层 (PHY)使用了一种独特形式的带前向纠错(FEC)的调频啁啾扩频技术。这种扩频调制允许多个无线电设备使用相同的频段,只要每台设备采用不同的啁啾和 数据速率就可以了。其典型范围是2km至5km,最长距离可达15km,具体取决于所处的位置和天线特性。

LoRa芯片在整个产业链中处于基础核心地位,重要性不言而喻。值得注意的是,目前美国Semtech公司是LoRa芯片的核心供应商,掌握着LoRa底层技术的核心专利。而Semtech的客户主要有两种,一是获得Semtech LoRa芯片IP授权的半导体公司;二是直接采用Semtech芯片做SIP级芯片的厂商,包括微芯 科技 (Microchip)等。

Wi-Fi

Wi-Fi被广泛用于许多物联网应用案例,最常见的是作为从网关到连接互联网的路由器的链路。然而,它也被用于要求高速和中距离的主要无线链路。

大多数Wi-Fi版本工作在24GHz免许可频段,传输距离长达100米,具体取决于应用环境。流行的80211n速度可达300Mb/s,而更新的、工作在5GHz ISM频段的80211ac,速度甚至可以超过13Gb/s。

一 种被称为HaLow的适合物联网应用的新版Wi-Fi即将推出。这个版本的代号是80211ah,在美国使用902MHz至928MHz的免许可频段, 其它国家使用1GHz以下的类似频段。虽然大多数Wi-Fi设备在理想条件下最大只能达到100米的覆盖范围,但HaLow在使用合适天线的情况下可以远达1km。

80211ah 的调制技术是OFDM,它在1MHz信道中使用24个子载波,在更大带宽的信道中使用52个子载波。它可以是BPSK、QPSK或QAM,因此可以提供宽 范围的数据速率。在大多数情况下100kb/s到数Mb/s的速率足够用了——真正的目标是低功耗。Wi-Fi联盟透露,它将在2018年前完成 80211ah的测试和认证计划。

针对物联网应用的另外一种新的Wi-Fi标准是80211af。它旨在使用从54MHz到698MHz范围内的电视空白频段或未使用的电视频道。这些频道 很适合长距离和非视距传输。调制技术是采用BPSK、QPSK或QAM的OFDM。每个6MHz信道的最大数据速率大约为24Mb/s,不过在更低的 VHF电视频段有望实现更长的距离。
ZigBee

ZigBee,也称紫蜂,是一种低速短距离传输的无线网上协议,底层是采用IEEE 802154标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网上节点、支持多种网上拓扑、低复杂度、快速、可靠、安全。ZigBee是物联网的理想选择之一。

虽然ZigBee一般工作在24GHz ISM频段,但它也可以在902MHz到928MHz和868MHz频段中使用。在24GHz频段中数据速率是250kb/s。它可以用在点到点、星形和网格配置中,支持多达254个节点。与其它技术一样,安全性是通过AES-128加密来保证的。ZigBee的一个主要优势是有预先开发好的软件应用配 置文件供具体应用(包括物联网)使用。最终产品必须得到许可。

ZigBee技术所采用的自组织网是怎么回事?举一个简单的例子就可以说明这个问题,当一队伞兵空降后,每人持有一个ZigBee网络模块终端,降落到地面后,只要他们彼此间在网络模块的通信范围内,通过彼此自动寻找,很快就可以形成一个互联互通的ZigBee网络。而且,由于人员的移动,彼此间的联络还会发生变化。因而,模块还可以通过重新寻找通信对象,确定彼此间的联络,对原有网络进行刷新。这就是自组织网。

NB-IoT

窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络,只消耗大约180KHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。

NB-IoT是IoT领域一个新兴的技术,支持低功耗设备在广域网的蜂窝数据连接,也被叫作低功耗广域网(LPWAN)。NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接。据说NB-IoT设备电池寿命可以提高至少10年,同时还能提供非常全面的室内蜂窝数据连接覆盖。

蓝牙50

蓝牙是一种无线传输技术,理论上能够在最远 100 米左右的设备之间进行短距离连线,但实际使用时大约只有 10 米。其最大特色在于能让轻易携带的移动通讯设备和电脑,在不借助电缆的情况下联网,并传输资料和讯息,目前普遍被应用在智能手机和智慧穿戴设备的连结以及智慧家庭、车用物联网等领域中。新到来的蓝牙 50 不仅可以向下相容旧版本产品,且能带来更高速、更远传输距离的优势。

很久很久以前,一个维京海盗狠人,丹麦的国王( Harald Blåtand Gormsen),可能像图上一样又壮又狠。

这个海贼王大佬统一了散乱的北欧,海贼王大佬的绰号是 蓝牙。

有这个绰号是因为, 这个狠人有一颗坏牙,好像吃蓝莓吃成蓝色的了,大家就喊他蓝牙。

很多年后,巨头爱立信搞了一个无线协议,就用这个海贼王的绰号做了协议的名字。也可以看出爱立信当时野心不小,蛋糕就那么大,他想都吃了。

放到中国,可能就叫 秦牙,不,叫嬴政了。

视频演示: >1什么是蓝牙40,蓝牙其它标准又是什么?

详细描述:低功耗蓝牙(Low Energy; LE),又视为Bluetooth Smart或蓝牙核心规格40版本。其特点具备节能、便于采用,是蓝牙技术专为物联网(Internet of Things; IOT)开发的技术版本。所以它最主要的特点是低功耗,普及率高。现在所说的蓝牙设备,大部分都是在说40设备,ble也特指40设备。 在40之前重要的版本有 21版本-基本速率/增强数据率(BR/EDR) 和 30 高速蓝牙 版本,这些统称为经典蓝牙。40还有41和42的小版本,其中42版本对传输速率做了进一步他提升,提高了25倍,苹果从iphone6开始使用42,最新的蓝牙标准为蓝牙50,其中最大的特点连接范围扩大了4倍,速度又提高了2倍,无连接数据广播能力提高了8倍,增加了蓝牙组网的能力。

2蓝牙开发必须知道的概念。

211 central和peripheral:
蓝牙应用开发中,存在两种角色,分别是central和peripheral(pə’rɪfərəl) ,中文就是中心和外设。比如手机去连接智能设备,那手机就是central,智能设备就是peripheral。大多时候都是central去连接peripheral的场景。
212 广播和连接:
peripheral会发出广播,central扫描到广播后,可以对设备进行连接,发出connect请求,peripheral接收到请求后,同意连接后,central和peripheral就建立了连接。
213 连接后的 *** 作:

write,read,notify,indecate, response or not …
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
214 协议:

每个具体的智能设备,都约定了一组数据格式,这个就是数据协议,例如手环中获取到数据0X001023,其中第2位到第5位表示步数,那么就2310就是步数的16进制的数据,转换成10进制就是8976步,需要注意的是,设备端都是小端模式,所以取4位时候,高字节在前低字节在后。
3 iOS蓝牙应用的一般开发流程。
4 蓝牙的数据交互。

write,read,notify,indecate, response or not … 都是容易理解的,indecate和notify对应的是长连接,建立indecate后,peripheral可以随时往central发送数据。
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
对于一个charateristic,他的读写订阅的权限是peripheral决定的,熟悉可以被同时设置,一般会根据外设的功能来决定。
5蓝牙ota DFU。

蓝牙ota,DFU(Device Firmware Update)指的是蓝牙设备的固件升级,其实是一整套流程,不同的蓝牙芯片,ota的流程有不同之处,我这里用ti的芯片举例。步骤为:切系统(bootloader mode),重启,传输数据,验证数据,切系统,重启,完成。
其中数据传输也会分成很多节去发送,没法送一段数据,做一次数据校验。

6ota存在的问题。

每个智能设备的速率,功耗,存储都会有很多限制,导致很多设备会自己去实现ota的功能,自定义流程和数据传输方式,导致许多设备都是有自己私有的ota模式和协议,所以在做开发的时候,要仔细阅读设备协议中对ota的描述。
7如何做自动重连。

只需要在设备断开连接的委托方法中,重新调用gattconnet或者是centralManagerconnet方法就可以了,无论当时设备是否有点,是否在周围,当设备再次开会或者连接到可连接范围内,都会自动被连上。
8连接失败处理。

分两个平台来说,iOS端也有连接失败的委托,但是好像几乎不会发生这种情况,而对于同款设备,android常常会出现连接失败的情况,status != BluetoothGattGATT_SUCCESS,android端开发请不要把连接失败和断开连接放在一块处理,因为断开连接可以直接尝试重新连接,而连接失败后尝试重新连接,需要加一些延时,并且需要gattclose,清空一下状态,否则会把gatt阻塞导致手机不重启蓝牙就再也无法连接任何设备的情况 。
9后台运行。

iOS后来运行,需要设备中infoPlist权限,key:Required background modes ,value: bluetooth-central(手机作为central) , bluetooth-peripheral。
10同时连接多个设备。

使用同一个CBCentralManager,通过进入委托的peripheral的identifier区分不同的设备,进行不同的 *** 作和处理。
11扫描广播包。

所有外设,只有在发出广播包的情况下,才能被central发现,绝大多数情况下,外设被连接后就不会发出广播(也有例外),很多人遇到无法找到设备的问题,大多属于这种情况。
12提高蓝牙连接速度。

无论是iOS,还是android,都可以通过已绑定的设备,在不开启扫描的情况下进行快速连接,iOS需要的参数是peripheral的identifier,android需要mac地址。但android和iOS还是有一些区别的,比如iOS不能拿到已绑定的设备list,但是可以通过UUID去拿到peripheral的实例。而android可以拿到已绑定的设备list。android绑定过程需要手动调用createBond的方法,而iOS在连接成功一次后会自动绑定。 android在处理createBond时,常常会应为不同手机平台,不同设备,会产生兼容性的问题,这点需要注意。
13定向扫描。

在扫描时候可以传入serviceUUID,这样可以扫描到特定条件的设备,提高扫描的速度,排除干扰。
14如何获取mac地址。

而iOS出于苹果的安全策略问题,无法直接获得mac地址,只能得到一个mac地址换算出来的identifier。

在蓝牙模块选型前期,一定要了解应用场景以及需要实现的功能(应用框图),以及功能实现过程中所能提供调用的接口(主从设备,功能),考虑模块供电,尺寸,接收灵敏度,发射功率,Flash,RAM,功耗(广播,连续传输,深度睡眠,待机状态),连接距离,接口,天线,性价比等。

根据蓝牙标准,SKYLAB的BLE蓝牙模块大致分为BLE42模块,BLE50模块,BLE52模块;如果蓝牙方案中需要的是支持主从一体的蓝牙模块,则可以选择BLE42模块SKB369,BLE50模块SKB501,BLE52模块SKB378,如果是想要找高性价比且做从的蓝牙模块,则优先考虑蓝牙42模块SKB376。

BLE蓝牙模块选型之参数:

传输速率:传输速率通常是设计人员首要考虑的,因为它关系到传送的信息类型。因此在进行蓝牙模块选型的时候务必要清楚蓝牙模块的应用,并以工作状态下所需要的数据传输速率为选型标准,毕竟把高质量音乐传送到耳机所需的数据速率,与心跳监护仪所需的数据速率有着很大的差别。

连接距离:根据距离的远近来选择,根据蓝牙方案的实际应用中的距离来确定哪个BLE蓝牙模块更能够满足数据传输需求。传输距离也是一个重要的考虑因素,当然距离越远越好,SKB369的传输距离可以达到30米,SKB501的传输距离可以达到50米,SKB378的传输距离可以达到50米+;

功耗:功耗主要由传输速率和距离来决定。一般蓝牙设备通过电池供电,功耗的高低直接决定着产品的续航能力。BLE蓝牙模块本身就是以低功耗著称,但是因为其拥有多种工作状态:广播(100ms间隔),连续传输(20ms间隔),深度睡眠(μA),待机状态(μA);各个状态下的功耗值也是有区别的,这个就需要工程师根据实际的蓝牙方案来确定了。BLE52蓝牙模块SKB378拥有极低功耗:TX 41mA@0dBm, RX 36mA@1Mbps, Sleep current<18uA);适合对于功耗有着严苛要求的产品,如智能手表、智能手环表等产品;

通讯接口:模块产品本身就是为了缩减产品上市周期了,为了方便蓝牙模块的使用,现有的BLE蓝牙模块都提供灵活的硬件接口,支持UART/SPI/GPIO/I²C/I²S/PWM接口,用户可以根据蓝牙方案的实际需求入手,如果只是数据传输,采用串行接口(TTL电平)就好了。

芯片方案:芯片决定着蓝牙模块的运算能力,没有一颗强劲的“ 芯 ”,蓝牙模块的性能无法保证。SKYLAB BLE42/50蓝牙模块都是基于Nordic方案研发推出,参数性能稳定可靠。SKYLAB BLE52蓝牙模块SKB378主频768MHz,32位ARM Cotex-M33处理器,同时内置32kB RAM和512kB Flash,支持模拟或者数字外设;

工作方式:BLE蓝牙一般分主、从机、主从一体/主从同连,一个主机目前最大可以与7个从机通讯,支持点对点通信;

目前市场中SKYLAB的BLE蓝牙模块主要是基于Nordic方案的蓝牙模块,分别是基于Nordic nRF52832芯片制作的SKB369和基于Nordic nRF52840芯片制作的SKB501,以及基于EFR32BG22蓝牙无线收发芯片的SKB378。可应用于互动娱乐设备:遥控、3D眼镜、游戏控制器;个人区域网络:健康/健身传感器和监护仪、医疗设备、钥匙扣+手表;遥控玩具;蓝牙信标;蓝牙网关;室内定位。

什么是蓝牙50,他有哪些特点?

蓝牙5核心规格自2016年12月份推出至今,为推动物联网告诉发展,显著提升了蓝牙的传输距离,速度和广播消息能力等方面,使得无线连接变得更加简单且安全。更高的宽带可以转化为更高的速度,不仅增强了数据传输速度,优化了蓝牙应用的响应时间,进一步提升了蓝牙产品的使用体验。

蓝牙5各个规格什么意思?

LE1M:对于蓝牙5,符号速率可以多个选择,单LE1M是必选项,是必须支持的,LE1M是蓝牙4中使用的PHY,在蓝牙5中也会使用到,并且蓝牙5和蓝牙42的数据包类型也是一样的,有效载荷均为255个字节,因此当蓝牙5使用LE1M的PHY时,吞吐量,功耗,传输距离等和蓝牙42是一样的。相对于蓝牙40,41的LE部分,数据包长度变为了8倍,可为mesh及其他网络协议传播更对的数据量,为面向非连接的应用提供了更对的灵活性。

LE2M PHY:是蓝牙5新增的PHY,在不改变数据包类型的情况下,将原来的传输包和接收包所需要的时间缩短为原来的一半,在不考虑数据包间隔时间的情况下,将蓝牙传输的理论音频,图像传输应用打下了坚速率变成了蓝牙4的两倍,为后续的高级提供了坚实的基础。

LE Coded PHY:可以来实现更远的传播距离,LE Coded PHY也是使用1M的符号速率,要想增加蓝牙的有效传输距离,就要保证在更远的距离可以实现和原来相同的可以容忍的误码率,但蓝牙5在增加有效传输距离的同事没有增加蓝牙的发射机功率,而是增加了新的处理错误和检测错误的机制,即在传输的数据包中添加FEC前向纠错编码,从而达到更远的有效距离。

蓝牙5的LE Coded PHY又分为LE Code S=2和LE Coded S=8两种编码方案。在S=2中,FEC编码简单总结:

蓝牙5的三个feature:

LE1M:LE1M是必选项,是必须支持的。LE1M是蓝牙4中使用的PHY,在蓝牙5中也会使用到,并且蓝牙5和蓝牙42的数据包类型也是一样的,有效载荷均为255字节,因此当蓝牙5使用LE1M的PHY时,吞吐量,功耗,传输距离等和蓝牙42是一样的。相对于蓝牙40,41的LE部分,数据包长度变为了8倍

LE2M PHY:LE2M PHY是蓝牙5新增的PHY,在不改变数据包类型的情况下,将原来的传输包和接收包所需要的时间缩短为原来的一半。

LE 1MLE2M,LE Coded:蓝牙5是依靠LE Coded PHY来实现更远的传播距离。

蓝牙50技术究竟有什么用处?

蓝牙5的技术革新将在需对领域产生重大影响,并且将继续定位于物联网的低功耗技术。通过蓝牙5新的HCI(主机控制器接口)命令,可以在传输和接受时选择不同的PHY,对于不同的应用场景,可以有更好的效果。更快的传输速率,可以给用户更好的体验,更远的传输距离,完全可以覆盖整个房间甚至整个商场的无线设备,为进一步的物联网带来了想象空间。

BQB认证蓝牙50的测试项目?

1传统蓝牙RF,TS,500(共24个测试项目,与原来的一致)

输出功率Output Power

功率控制Power Density

发射频谱-频率范围TX Output Spectrum-Frequency range

发射频谱-20dB快带TX Output Spectrum-20dB Bandwidth

发射频谱-邻近频道功率 TX Output Spectrum -Adjacent channel power

调制特性Modulation Characteristics

初始载波频率容限 Initial Carrier Frequency Tolerance

载波频率漂移 Carrier Frequency Drift EDR

相对发射功率 EDR Relative Transmit Power EDR

载波频率稳定度和调制准确度 EDR Carrier Frequency Stability and Modulation Accuracy EDR

差分相位编码 EDR Differential Phase Encoding EDR

带内杂散辐射 EDR In-band Spurious Emissions

增强功率控制 Enhanced Power Control

灵敏度-单隙数据包 Sensitivity-single slot packets

灵敏度-多隙数据包 Sensitivity-multi-slot Packets

载干比性能 C/I Performance

阻塞性能 Blocking performance

互调性能 Intermodulation Performance

最大输入电平 Maximum Input Level

EDR灵敏度 EDR Sensitivity

EDR BER平坦性能 EDR BER Floor Performance

EDR载干比性能 EDR Maximum Input Level

2:BLE蓝牙RF PHYTS500(共47测试项目,42:10测试项)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/13359059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存