我在android上使用了幸福照明软件,我试着制作一个简单的web应用程序来控制led的颜色,但是我想不出该怎么做,而女巫‘关健’我不得不要求,我真的对蓝牙技术很陌生。
通过android嗅探器,我知道服务是可用的。
const service = "0000ffd5-0000-1000-8000-00805f9b34fb"
const characteristic = "0000ffd9-0000-1000-8000-00805f9b34fb"
function onRequestBluetoothDeviceButtonClick() {
navigator.bluetooth.requestDevice({
filters: [{name:"QHM-0A0B"}],
optionalServices: [service],
})
.then(device => {
return device.gatt.connect()
}).then(server =>{
return server.getPrimaryService(service);
}).then(service =>{
return service.getCharacteristics(characteristic);
}).then(characteristic=>{
let colorArray = Uint8Array.from([86, 0, 255, 0, 25, 240, 170]);
return characteristic[0].writeValue(colorArray);
}).then(()=>{
console.log("Send")
})
.catch(error => {
console.log('Argh! ' + error);
});
}但我不知道接下来要发送什么数据,以及git中提到的字节数组是什么
这里是图像:我们console.log的特点


发布于 2022-01-25 06:20:19
您已经有了要从您在评论中发布的github存储库中写入的特性的相关UUID。存储库还告诉我们如何使用我们想要的颜色组合数据以发送。
以下是相关的内容:
print("RED: ")
red = int(input())
print("GREEN: ")
green = int(input())
print("BLUE: ")
blue = int(input())
lista = [86, red, green, blue, (int(10 * 255 / 100) & 0xFF), 256-16, 256-86]
values = bytearray(lista)然后将values写到设备上。因此,如果我们想设置颜色为绿色,我们的lista将包含值red = 0、green = 255和blue = 0,如下所示:
[86, 0, 255, 0, 25, 240, 170]或5600FF0019F0AA用十六进制表示。
事实上,只有第二个、第三个和第四个数字需要更改为0到255之间的值,如果我们想要不同的颜色。
现在,要开始设置您的LED设备的颜色,请始终开始使用通用的BLE扫描仪工具,如nRF连接,以测试连接之前,试图自己写东西。使用该工具进行扫描时,您应该能够找到您的led设备并连接到它。在扫描服务之后,您应该会发现UUID 0000ffd9-0000-1000-8000-00805f9b34fb的一个特性。将值5600FF0019F0AA写到它,看看你的设备是否变成绿色。
既然这是可行的,并且您了解了如何编写数据,那么您就可以开始处理自己的代码了。
https://stackoverflow.com/questions/70824955
复制相似问题