<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <title></title> </head> <body> <form name="js"> <input type="button" value="接続" onclick="connect();"/> <input type="button" value="切断" onclick="disconnect();" /> </form> <script> var uart_device; //micro:bit BLE UUID var uuid={}; uuid["UART_SERVICE"] ='6e400001-b5a3-f393-e0a9-e50e24dcca9e'; uuid["UART_SERVICE_CHARACTERISTICS"] ='6e400002-b5a3-f393-e0a9-e50e24dcca9e'; function connect(){ navigator.bluetooth.requestDevice({ filters: [{ namePrefix: 'BBC micro:bit', }], optionalServices: [uuid["UART_SERVICE"]] }) .then(device => { uart_device=device; return device.gatt.connect(); }) .then(server => { return server.getPrimaryService(uuid["UART_SERVICE"]); }) .then(service => { return service.getCharacteristic(uuid["UART_SERVICE_CHARACTERISTICS"]); }) .then(chara => { alert("BLE connected"); characteristic=chara; characteristic.startNotifications(); characteristic.addEventListener('characteristicvaluechanged',onCharacteristicValueChanged); }) .catch(error => { alert("BLE error"); }); } function onCharacteristicValueChanged(e) { var str_arr=[]; for(var i=0;i<this.value.byteLength;i++){ str_arr[i]=this.value.getUint8(i); } var str=String.fromCharCode.apply(null,str_arr); alert("msg:"+str); } function disconnect() { if((!accelerometer_device)||(!accelerometer_device.gatt.connected)){ return; }else{ accelerometer_device.gatt.disconnect(); alert("BLE disconnected"); } } </script> </body> </html>