不会android也能玩转SensorTile上位机开发(android 上位机)
写了一个配合SensorTile调试的android程序
可以实现接收SensorTile加速度传感器发来的数据并通过曲线显示
考虑到参加SensorTile大赛的网友有不会android开发的
可以拿这个app实现一些简单的功能
使用这个app不需要安装android开发环境
只需要安装编译好的apk到手机
jsble.apk (2.3 MB, 下载次数: 0)
然后把写好的html文件放到sd卡的int8目录下即可
例如读取SensorTile广播的mac地址,rssi和scan data并通过文本框显示
在手机sd卡目录下创建一个int8的文件夹
使用记事本创建一个html文件
复制下边的html代码到记事本
保存后将html文件放到sd卡的int8文件夹
<html>
<head>
<title>JsBLUE APP</title>
<scripttype=“text/javascript”>
function jsCallback(jsonStr){
if(jsonStr.cmd == ‘ON_LE_SCAN’)
{
var json = JSON.parse(jsonStr.prm);
document.getElementById(‘textarea’).value=‘mac:’ json.mac ‘rnrssi:’ json.rssi ‘rnscan data:’ json.scanData;
}
}
</script>
</head>
<body>
<p>JsBLUE 接收BLE设备广播数据</p>
<textareaid=“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, 下载次数: 0)
手机收到数据后会将数据转换成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, 下载次数: 0)
目前App只实现了接收BLE的广播功能
所以和SensorTile的通信只能是单向的
SensorTile发送数据,android 手机接收数据
完整的项目源码可以到https://github.com/int8cn/jsble下载
以上图文内容均是EEWORLD论坛网友:littleshrimp 原创,在此感谢。
欢迎微博@EEWORLD
如果你也写过此类原创干货请关注微信公众号:EEWORLD(电子工程世界)回复“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!
与更多行业内网友进行交流请登陆EEWORLD论坛。