写了一个配合SensorTile调试的android程序
可以实现接收SensorTile加速度传感器发来的数据并通过曲线显示
考虑到参加SensorTile大赛的网友有不会android开发的
可以拿这个app实现一些简单的功能
使用这个app不需要安装android开发环境
只需要安装编译好的apk到手机
jsble.apk
(2.3 MB, 下载次数: 11)
然后把写好的html文件放到sd卡的int8目录下即可
例如读取SensorTile广播的mac地址,rssi和scan data并通过文本框显示
在手机sd卡目录下创建一个int8的文件夹
使用记事本创建一个html文件
复制下边的html代码到记事本
保存后将html文件放到sd卡的int8文件夹
<html> <head> <title>JsBLUE APP</title> <script type="text/javascript"> function jsCallback(jsonStr){ if(jsonStr.cmd == 'ON_LE_SCAN') { var json = JSON.parse(jsonStr.prm); document.getElementById('textarea').value='mac:'+json.mac+'\r\nrssi:'+json.rssi+'\r\nscan data:'+json.scanData; } } </script> </head> <body> <p>JsBLUE 接收BLE设备广播数据</p> <textarea id="textarea" rows="10" cols="50"></textarea> </body> <html> |
运行app就会看到下边的效果
为了更好的利用SensorTile的广播数据
收到的scan data使用了16进制字符显示
例如想显示SensorTile加速度的x,y,z轴数据
可以在SensorTile例程里把读取到的x,y,z轴数据添加到广播数据
buf[0] = acceleration.AXIS_X >> 8; buf[1] = acceleration.AXIS_X & 0xff; buf[2] = acceleration.AXIS_Y >> 8; buf[3] = acceleration.AXIS_Y & 0xff; buf[4] = acceleration.AXIS_Z >> 8; buf[5] = acceleration.AXIS_Z & 0xff; UpdateAdvStr(buf); |
SensorTile 三轴加速度的发送程序
Project.bin
(21.08 KB, 下载次数: 17)
手机收到数据后会将数据转换成16进制字符并调用html文件里的jsCallback函数
在jsCallback里处理数据并显示
function jsCallback(jsonStr){ if(jsonStr.cmd == 'ON_LE_SCAN') { var json = JSON.parse(jsonStr.prm); if(json.mac != 'FF:FF:FF:FF:FF:FF') { return; } var x = json.scanData.substr(4,4); var y = json.scanData.substr(8,4); var z = json.scanData.substr(12,4); x = hex2signedDec(x); y = hex2signedDec(y); z = hex2signedDec(z); $("#info_label").text('x:'+x+' y:'+y+' z:'+z); addData([x,y,z],100); } } |
解压文件到sd卡下的int8文件夹测试效果
html.rar
(698.26 KB, 下载次数: 14)
目前App只实现了接收BLE的广播功能
所以和SensorTile的通信只能是单向的
SensorTile发送数据,android 手机接收数据
完整的项目源码可以到https://github.com/int8cn/jsble下载