nRF Connect是一个强大的通用工具,它允许你扫描和探索你的蓝牙低功耗(以后的蓝牙LE,也称为蓝牙4.0+版本的蓝牙规范)设备,并与它们通信。
nRF连接还允许您的iOS设备广告作为一个外围设备,充分支持许多蓝牙SIG采用的配置文件。
此外,nRF Connect支持北欧半导体的设备固件更新配置文件(DFU)功能,允许您更新兼容的外接设备!
特点:
•在所有北欧半导体供电设备上支持DFU。
•支持来自北欧半导体的北欧Thingy™。
•扫描并发现附近的蓝牙LE外设。
•根据名称,制造商,服务(广告和连接)和RSSI级别筛选扫描外设。
•解析蓝牙LE广告数据的多种格式。
•蓝牙LE外设扫描实时RSSI图。
•完全支持iPad,包括13.4版本的多任务处理和鼠标支持。
•日志:包括BLE Function调用、Export Function为CSV和Text格式。
•面向隐私:完全公开nRF Connect持有的扫描数据、广告数据和用户执行的操作。
•可连接任意可连接的蓝牙LE智能设备。
•发现服务、特征和描述符。
•读写特性和描述符。
•启用和禁用通知和指示。
•作为蓝牙LE外围设备的广告。
•设置蓝牙LE(外围设备)服务器,并通知/指示连接的中心。
该APP可以实现SCANER和ADVERTER两种角色
手机上打开nRF Connect,点击“SCAN”按钮启动扫描,这时会扫描到名为“BLET emplate”的设备,如下图所示。
点击设备名称,展开广播信息
在广播信息中我们可以看到如下信息,这些信息也正是我们在广播初始化中配置的广播信息。
Device Type::LE only。仅LE。
Flags:GeneralDiscoverable,BrEdrNotSupported。一般可发现模式,不支持BR/EDR。
Appearance:[O]Unknown。外观的编码为O,即未知设备。
Complete Local Name:BLE Templete。本地设备名称。
如果我们需要查看具体的,点击“RAW”打开数据窗口,如下图所示。
将广播数据取出,整理如下表所示,从中可以很方便地看到广播各个字段的含义以及广播数据长度。其中类型是由SG定义,可以在SIG网站上查到,网址如下:
https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile
点击“CONNECT”按钮,连接设备,连接成功后,nRF Connect上可以看到本文BLE工程模板中只包含了2个必须包含的服务:GAP服务和GATT服务。
点击服务名称即可展开服务,展开后可以看到服务中包含了哪些特征以及这些特征的属性。
下图是展开后的GAP服务,GAP服务包含了4个特征,
特征名称右边的向上的箭头是“写”按钮,点击后可以写从机的特征值,向下的箭头是“读”按钮,点击后可以读出从机的特征值。下图中GAP的4个特征已经全部读出,可以看到读出的数值和我
们在程序中配置的数值是一致的。
设备名
设备名称仅起识别设备的作用,在用户界面显示为“Bluetooth Device Name”。
设备名最长可达248个字节,但是对端设备可能并不能显示这么长的名称。
设备名支持UTF-8编码,因此设备名可以使用中文。
设备外观
设备外观仅起识辅助别设备的作用,在用户界面显示为一个图标或一个字符串。
设备外观为一个2字节数,扫描设备可以通过设备外观值为设备分配一个合适的图标或描述。
点击nRF Connect上的“DISCONNECT”按钮即可断开连接,断开后,系统重新进入广播模式。
• 数据从从设备端发送到APP端
• 点击图标”↓↓↓“后,APP后台自动监听从设备notify上来的数据,右滑界面,可以看到接收到的每条数据
设备BLE_UARTAPP发布了服务UUID=0x000a,特征值UUID=0x000c为可写操作(点击图标”↑“),特征值UUID=0x000b为可监听操作(点击图标”↓↓↓“),特征值UUID=0x2902为可读操作(点击图标”↓“)
如下所示:
这里的“GAP”,跟我们蓝牙协议栈框架里面的GAP可不是一回事,这里的GAP是一个service,而蓝牙协议栈里面的GAP是一个子协议;GATT也是同样的道理。为了不引起混淆,nRF connect把这里的GAP服务称为“Generic Access”服务,把这里的GATT服务称为“Generic Attribute”服务。“Generic Access” 服务包含Device name,Appearance,PPCP以及CAR等characteristic。 “Generic Attribute”服务包含Service Change等characteristic。