微信小程序之蓝牙开发(详细读数据、写数据、附源码)

更新时间:2023-07-25 17:25:05 阅读: 评论:0

微信⼩程序之蓝⽛开发(详细读数据、写数据、附源码)本⽂将详细介绍微信⼩程序的蓝⽛开发流程(附源码)
准备:
微信只⽀持低功耗蓝⽛也就是蓝⽛4.0,普通的蓝⽛模块是⽤不了的,⼀定要注意。
蓝⽛可以连TTL接到电脑上,再⽤XCOM调试
⼀开始定义的变量
var deviceId;
var i=0;
var rviceId=[];
var characteristicId=[];
蓝⽛开发流程:
1.打开蓝⽛适配器
2.搜索周围蓝⽛
新福尔摩斯第四季
3.获取搜索过程中所搜索到的设备信息
4.连接想要连接的设备
5.获取服务、特征值
usl6.写数据、读数据
具体实现:
1.打开蓝⽛适配器
wx.openBluetoothAdapter({
success: function(res) {
console.log(res,"success")
},
fail: function (res) {
console.log("fail")
},
})
2.适配器打开后可以开始搜索蓝⽛设备了
wx.startBluetoothDevicesDiscovery({
rvices: [],
success: function (res) {
console.log(res)
},
fail: function (res) {
console.log("fail")
},
})
vices⾥不要填参数,要不然只能搜索特定的设备
3.搜索⼀⼩段时间后可以查看搜索到的设备,⼀般时间很短,1s都不⽤,搜不到可以多等等
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.现在我们可以获取⼀个特定设备的所有服务了
deviceId: deviceId,
success: function(res) {
console.log(res.rvices);
i=0;
while(res.rvices[i]){
rviceId[i]=res.rvices[i].uuid;
console.log(rviceId[i]);
i++;
}
},
})
这⼀步我们获取YahBoom_BL的所有服务并储存到rviceId数组⾥去
5.现在我们可以针对⼀个特定服务查看这个服务所⽀持的操作
deviceId: deviceId,
rviceId: rviceId[1],
return的用法success: function (res) {
i=0;
while(res.characteristics[i]){
characteristicId[i]=res.characteristics[i].uuid;
console.log(characteristicId[i]);
i++;
}
}
})
在这⾥我们获取YahBoom_BL的第⼆个服务(第⼀个服务下标为0,选第⼆个因为我的设备的第⼆个服务的第⼀个特征值⽀持notif、read、write,可以把⼀个服务的所有特征值打印出来查看)的特征值,并将特征值ID存到characteristicId数组⾥去
6.开启notify并读取蓝⽛发过来的数据,开启这个后我们就能实时获取蓝⽛发过来的值了
state: true,
deviceId: deviceId,
rviceId: rviceId[1],
characteristicId: characteristicId[0],
success: function (res) {
console.log('notifyBLECharacteristicValueChange success', Msg)
}
})
function ab2hex(buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function(bit) {
return ('00' + String(16)).slice(-2)
}
)
return hexArr.join('');
}
console.log('characteristic value comed:', ab2hex(res.value))
})
这⾥第⼀个函数是开启notify服务,deviceId、rviceId、characteristicId都是之前我们获取的,第⼆个函数是将bufferArray类型转为string类型,因为buffer不能直接在console.log⾥输出,会显⽰null,第三个函数就是监听蓝⽛发送过来的值了,蓝⽛每次发送⼀个值,都会回调这个函数,res.value就是⼀个bufferArray类型,存的是发送过来的值
7.写数据到蓝⽛
let buffer = new ArrayBuffer(3)
let dataView = new DataView(buffer)
dataView.tUint8(1, 100)
wx.writeBLECharacteristicValue({
deviceId: deviceId,
rviceId: rviceId[1],
characteristicId: characteristicId[0],
value: buffer,
success: function (res) {
console.log('writeBLECharacteristicValue success', Msg)
}
sour的音标})
传数据给蓝⽛时只能⽤buffer类型,let buffer = new ArrayBuffer(3)这句话定义⼀个三个长度的buffer,
圣诞快乐英语怎么说dataView.tUint8(1, 100)这句话将第⼀个值设置为100,所以传递过去的值就是00 64 00 (⼗六进制)
附录(直接复制粘贴就能运⾏)
JS源码:
var app = getApp();
var deviceId;
var i=0;
var rviceId=[];
var characteristicId=[];
Page({
data: {
},
onLoad:function(){
})
},
openadapter:function(){
wx.openBluetoothAdapter({
success: function(res) {
console.log(res,"success")
},
fail: function (res) {
console.log(res,"fail")
},
establishes})
// wx.getBluetoothAdapterState({
// complete: function (res) {
// console.log("currentstate:",res)
// }
// })
},
cloadapter: function () {
wx.cloBluetoothAdapter({
success: function (res) {
console.log(res, "success")
},
fail: function (res) {
console.log(res, "fail")
},日语二级培训
})
// wx.getBluetoothAdapterState({
// complete: function (res) {
// console.log("currentstate:", res)
// }
// })
},
opendiscovery:function(){
wx.startBluetoothDevicesDiscovery({
rvices: [],
success: function (res) {
console.log(res)
},kiss是什么意思中文
fail: function (res) {
console.log(res, "fail")
},
})
},
clodiscovery:function(){
wx.stopBluetoothDevicesDiscovery({
success: function (res) {
console.log(res)
},
fail: function (res) {
console.log(res, "fail")
},
})
},
getdevice:function(){
function ab2hex(buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function (bit) {
return ('00' + String(16)).slice(-2)
}男英文名
)
return hexArr.join('');
}
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++;
}
allah
}
})
},
getconnecteddevice:function(){
//rvices:[],
success: function (res) {
console.log(res)
}
})

本文发布于:2023-07-25 17:25:05,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1116753.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:Oracle创建命令
标签:设备   搜索   服务   特征值   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图