Tengo algunos problemas con la API web de Bluetooth. el problema es que tengo un dispositivo Bluetooth registrador de temperatura y humedad, el cual grababa datos de temperatura y humedad a través del sensor. Quiero obtener esos datos en mi aplicación web usando Bluetooth web en javascript. Entonces, ¿cómo puedo realizar esta tarea?
Probé el Bluetooth web, pero solo obtengo el nombre del dispositivo y el nivel de la batería, pero no puedo obtener datos de temperatura y humedad.
Si el dispositivo Bluetooth utiliza el servicio de detección ambiental GATT (Número asignado GATT 0x181A ), debería poder leer y recibir notificaciones de las características GATT de temperatura ( 0x2A6E ) y humedad ( 0x2A6F ).
Aquí hay un código que debería* funcionar.
const serviceUuid = 0x181A; // Requesting Bluetooth Device assuming it advertises // the GATT Environmental Sensing Service... const device = await navigator.bluetooth.requestDevice({ filters: [{services: [serviceUuid]}]}); // Connecting to GATT Server... const server = await device.gatt.connect(); // Getting Environmental Sensing Service... const service = await server.getPrimaryService(serviceUuid); // Getting Humidity Characteristic... const characteristic = await service.getCharacteristic(0x2A6F); // Reading Humidity... const value = await characteristic.readValue(); console.log(value);La muestra en https://googlechrome.github.io/samples/web-bluetooth/notifications.html?characteristic=humidity&service=environmental_sensing también puede ayudarlo a comenzar.
Necesita saber qué servicio Bluetooth GATT proporciona los datos de temperatura y humedad. Las aplicaciones como "nRF Connect" y la página about://bluetooth-internals integrada en su navegador pueden ayudarlo a explorar los servicios proporcionados por el dispositivo.
Web Bluetooth requiere que pase los UUID de los servicios a los que desea acceder a la función navigator.bluetooth.requestDevice() , por lo que debe averiguar a qué servicios GATT desea acceder antes de que sean visibles en el objeto BluetoothRemoteGATTServer proporcionado por la API.
Si publica la información del fabricante y el modelo del dispositivo como parte de la pregunta, es posible que alguien pueda dirigirlo a la documentación del fabricante para los servicios GATT que brinda el dispositivo o alguien que ya haya realizado ingeniería inversa sobre cómo acceder a los datos que está buscando. por.