本文将详细介绍微信小程序的蓝牙开发流程(附源码)
准备:
微信只支持低功耗蓝牙也就是蓝牙4.0,普通的蓝牙模块是用不了的,一定要注意。
蓝牙可以连TTL接到电脑上,再用XCOM调试
一开始定义的变量
var deviceId;
var i=0;
var serviceId=[];
var characteristicId=[];
蓝牙开发流程:
1.打开蓝牙适配器
2.搜索周围蓝牙
3.获取搜索过程中所搜索到的设备信息
4.连接想要连接的设备
5.获取服务、特征值
6.写数据、读数据
具体实现:
1.打开蓝牙适配器
wx.openBluetoothAdapter({
success: function(res) {
console.log(res,"success")
},
fail: function (res) {
console.log("fail")
},
})
2.适配器打开后可以开始搜索蓝牙设备了
wx.startBluetoothDevicesDiscovery({
services: [],
success: function (res) {
console.log(res)
},
fail: function (res) {
console.log("fail")
},
})
sevices里不要填参数,要不然只能搜索特定的设备
3.搜索一小段时间后可以查看搜索到的设备,一般时间很短,1s都不用,搜不到可以多等等
wx.getBluetoothDevices({
success: function (res) {
console.log(res)
i=0;
while (res.devices[i]) {
console.log(i);
console.log(res.devices[i].name,res.devices[i].deviceId);
if(res.devices[i].name=='YahBoom_BL'){
deviceId=res.devices[i].deviceId;
console.log(deviceId);
}
i++;
}
}
})
这一步将所有搜索到的设备的名字和ID输出,并将名字为'YahBoom_BL'的设备的Id存到deviceId里去,这个设备就是我所需要使用的
4.现在我们可以获取一个特定设备的所有服务了
wx.getBLEDeviceServices({
deviceId: deviceId,
success: function(res) {
console.log(res.services);
i=0;
while(res.services[i]){
serviceId[i]=res.services[i].uuid;
console.log(serviceId[i]);
i++;
}
},
})
这一步我们获取YahBoom_BL的所有服务并储存到serviceId数组里去
5.现在我们可以针对一个特定服务查看这个服务所支持的操作
wx.getBLEDeviceCharacteristics({
deviceId: deviceId,
servi