首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙网络控制引导条

蓝牙网络控制引导条
EN

Stack Overflow用户
提问于 2022-01-23 17:52:51
回答 1查看 161关注 0票数 1

我在android上使用了幸福照明软件,我试着制作一个简单的web应用程序来控制led的颜色,但是我想不出该怎么做,而女巫‘关健’我不得不要求,我真的对蓝牙技术很陌生。

通过android嗅探器,我知道服务是可用的。

代码语言:javascript
复制
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的特点

EN

回答 1

Stack Overflow用户

发布于 2022-01-25 06:20:19

您已经有了要从您在评论中发布的github存储库中写入的特性的相关UUID。存储库还告诉我们如何使用我们想要的颜色组合数据以发送。

以下是相关的内容:

代码语言:javascript
复制
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 = 0green = 255blue = 0,如下所示:

[86, 0, 255, 0, 25, 240, 170]5600FF0019F0AA用十六进制表示。

事实上,只有第二个、第三个和第四个数字需要更改为0到255之间的值,如果我们想要不同的颜色。

现在,要开始设置您的LED设备的颜色,请始终开始使用通用的BLE扫描仪工具,如nRF连接,以测试连接之前,试图自己写东西。使用该工具进行扫描时,您应该能够找到您的led设备并连接到它。在扫描服务之后,您应该会发现UUID 0000ffd9-0000-1000-8000-00805f9b34fb的一个特性。将值5600FF0019F0AA写到它,看看你的设备是否变成绿色。

既然这是可行的,并且您了解了如何编写数据,那么您就可以开始处理自己的代码了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70824955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档