我一直在尝试各种设置以通过Web蓝牙连接到我的微比特,但没有成功。
首先,我可以在mac / chrome和iOS / nRF连接上成功配对。据我了解,您应该首先与微比特配对(将微比特与a + b + reset置于配对模式,然后在按住a + b的同时释放复位)。在这种模式下,我可以同时连接mac / chrome和iOS / nRF。
但是,在这种模式下,我在代码中设置的所有服务(我已经尝试了makecode块和mbed c ++代码)都无法从iOS / nRF Connect中看到。我在chrome浏览器中的javascript代码崩溃了,但是没有任何信息。
因此,据此,我认为您应该设置一次配对,然后重置微比特,然后重新连接您实际编写的代码(而不是在配对模式下运行的代码)。
遗憾的是,我无法在配对模式之外进行连接。在iOS / nRF中,连接设备为灰色,连接永远等待。在mac / chrome中,“选择设备”对话框长时间保持空白。之后,我可以突然选择微比特,但是代码没有连接。
如果未处于配对模式,我应该如何连接到该设备?还是配对模式应该在成功配对后开始运行我的程序,但不是吗?
我使用了https://makecode.microbit.org/v0/51291-94272-66943-05638程序,该程序从这里链接:https://support.microbit.org/support/solutions/articles/19000026073-how-to-re-instate-bluetooth-after-previously-using-micropython。但是我自己的程序都不起作用。
我一直试图在mac / chrome中运行的javascript代码是这样的:
<html>
<head>
<script>
const buttonService = 'E95D9882-251D-470A-A062-FA1922DFA9A8'.toLowerCase();
const eventService = 'e95d93af-251d-470a-a062-fa1922dfa9a8';
const buttonACharacteristic = 'E95DDA90-251D-470A-A062-FA1922DFA9A8'.toLowerCase();
function scanBluetooth() {
navigator.bluetooth.requestDevice({
// acceptAllDevices: true,
filters: [{
name: 'BBC micro:bit [zazet]'
}],
// optionalServices: ['battery_service']
optionalServices: [buttonService]
// optionalServices: [eventService]
})
.then(device => {
console.log(device);
return device.gatt.connect();
})
.then(server => {
console.log("server");
console.log(server);
return server.getPrimaryService(buttonService);
// return server.getPrimaryService(eventService);
// return server.getPrimaryServices();
})
.then(service => {
console.log("service");
console.log(service);
// return service.getCharacteristic('E95DDA90-251D-470A-A062-FA1922DFA9A8'.toLowerCase());
return service.getCharacteristic(buttonACharacteristic);
})
.then(characteristic => {
console.log('characteristic');
setInterval(() => {
characteristic.readValue()
.then(value => console.log('value', value))
}, 500);
})
.catch(error => { console.log(error); });
}
</script>
</head>
<body>
</body>
</html>
编辑:找到了解决方法
好吧,由于配对问题无法解决,我尝试完全禁用配对(makecode界面中的设置,也请检查https://support.microbit.org/support/solutions/articles/19000080745-what-are-the-different-bluetooth-pairing-modes-)。
结果:我的网络蓝牙代码正常工作。
问题仍然存在:启用配对后应该如何工作?如果配对模式没有退出,您的代码应该何时运行?
哦,我想我永远都不应该在这里问这个问题。请改为访问support.microbit.org。