在物联网时代,蓝牙技术因其低功耗、短距离通信的特性,被广泛应用于各种设备中。JavaScript(JS)作为前端开发的主流语言,也能与蓝牙设备进行交互。本文将带你深入了解JS原生蓝牙调用,轻松实现设备配对与数据交互。
蓝牙基础知识
在开始之前,我们需要了解一些蓝牙基础知识。
蓝牙协议
蓝牙协议分为四层:物理层、链路层、网络层和应用层。其中,应用层负责与具体应用相关的数据传输。
蓝牙设备类型
蓝牙设备主要分为三类:中央设备(Central)、外围设备(Peripheral)和桥接设备(Bridge)。
- 中央设备:负责发起配对、连接和通信。
- 外围设备:被中央设备发现、配对和连接,提供数据服务。
- 桥接设备:连接多个外围设备,实现设备间的通信。
蓝牙Web API
JavaScript通过蓝牙Web API与蓝牙设备进行交互。该API提供了丰富的功能,包括扫描设备、连接、配对、发送和接收数据等。
1. 获取蓝牙适配器
navigator.bluetooth.requestDevice({
filters: [{services: ['heart_rate']}], // 指定服务类型
optionalServices: ['battery_service'] // 可选服务类型
}).then(device => {
// 处理设备
});
2. 连接设备
device.gatt.connect().then(server => {
// 处理连接成功的服务器
});
3. 发现服务
server.getPrimaryService('heart_rate').then(service => {
// 处理发现的服务
});
4. 发现特征
service.getCharacteristic('heart_rate_measurement').then(characteristic => {
// 处理发现的特征
});
5. 写入数据
characteristic.writeValue(new Uint8Array([0x01, 0x02, 0x03])).then(() => {
// 处理写入数据
});
6. 读取数据
characteristic.readValue().then(value => {
// 处理读取数据
});
7. 监听数据变化
characteristic.startNotifications().then(() => {
// 处理数据变化
});
设备配对与数据交互
1. 设备配对
在连接蓝牙设备之前,需要先进行配对。以下是配对的基本步骤:
- 获取蓝牙适配器。
- 指定配对参数,如PIN码。
- 使用适配器配对设备。
navigator.bluetooth.requestDevice({
filters: [{services: ['heart_rate']}],
optionalServices: ['battery_service'],
confirmDelay: 0,
confirm: false
}).then(device => {
return device.gatt.connect();
}).then(server => {
return server.getPrimaryService('heart_rate');
}).then(service => {
return service.getCharacteristic('heart_rate_measurement');
}).then(characteristic => {
return characteristic.writeValue(new Uint8Array([0x01, 0x02, 0x03]));
}).then(() => {
// 处理配对成功
});
2. 数据交互
在设备配对成功后,可以进行数据交互。以下是数据交互的基本步骤:
- 发送数据:使用
characteristic.writeValue()方法发送数据。 - 读取数据:使用
characteristic.readValue()方法读取数据。 - 监听数据变化:使用
characteristic.startNotifications()方法监听数据变化。
总结
通过本文的介绍,相信你已经掌握了JS原生蓝牙调用的方法。在实际应用中,可以根据需求调整代码,实现设备配对与数据交互。希望这篇文章能帮助你轻松实现蓝牙设备交互。
