-
ble-simulator.js
微信运动,微信蓝牙设备发现模拟器。可模拟微信运动步数上报,设备发现逻辑。 -
zb-simulator.js
摇一摇周边模拟器。可模拟真实的iBeacon设备,在微信摇一摇周边中出现。
ble-simulator.js
基于对微信AirSync蓝牙协议的理解写的模拟器,主要用于演示BLE设备与微信的通讯原理,方便其它开发者快速了解和上手。
微信有专属的蓝牙Service UUID
,同时还有指定的特征值要实现才能被微信识别和发现。如果是开发微信运动精简协议,还需要多两个特征值。
// 微信蓝牙服务和特征值专属UUID
var WX_SERVICE_UUID = 'FEE7';
var WX_CHARC_UUID_WRITE = 'FEC7';
var WX_CHARC_UUID_INDICATE = 'FEC8';
var WX_CHARC_UUID_READ = 'FEC9';
// 微信运动精简协议专属UUID
var WERUN_PEDOMETER_UUID = 'FEA1';
var WERUN_TARGET_UUID = 'FEA2';
微信运动
- 支持模拟微信运动精简协议
设备发现
- 支持模拟微信蓝牙近场发现
$ sudo node ble-simulator.js
打开AirSyncDebugger工具点击扫描
蓝牙设备, 点击精简协议
, 点击记步器测试
。测试通过后设备即可被微信发现,同时也支持了微信运动的接入。
如果只是调试蓝牙协议的话Step 1和Step 2即可。Step 3和Step 4也可以预先完成,此两步主要在微信硬件平台登记产品型号,和获得接口授权。Step 4会消耗授权配额
,微信针对每个型号都有授权配额,认证前默认只有100个,需要后续免费申请才可获得更多。
要让微信运动可以添加该设备为数据源,还需要在微信硬件平台中录入该设备基本信息,图标,默认显示名称等。在申请到的公众号后台开通“设备功能”插件,即可以添加一款新设备。
公众号需要做过微信认证,如果只是临时开发调试用,也可以使用公众号测试账号:
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
添加设备时,需要指明接入方案:
- 微信硬件云标准接入方案
- 设备直连微信硬件云通道
- 厂商云连接微信硬件云通道
- 平台基础接入方案
接入微信运动精简协议,选平台基础接入方案
即可。
登记成功后会得到一个微信硬件的型号编码
即PRODUCT_ID
,准备好公众号的appid
,access_token
,设备MAC
地址列表等。
1.通过调用微信的设备编号API接口,得到设备编号。请求参数中PRODUCT_ID
即型号编码
。
https://api.weixin.qq.com/device/getqrcode?access_token=ACCESS_TOKEN&product_id=PRODUCT_ID
2.通过调用微信的授权接口将设备MAC
更新到设备编号上。
https://api.weixin.qq.com/device/authorize_device?access_token=ACCESS_TOKEN
zb-simulator.js
快速模拟一个标准的iBeacon设备,运行时可以在微信摇一摇>周边
中出现。需要在微信摇一摇网站注册设备,并得到UUID
,Major
,Minor
等参数才可以被微信识别。
微信摇一摇
- 支持微信摇一摇周边
在微信摇一摇周边网站注册新的iBeacon设备,等待审核。
https://zb.weixin.qq.com/
审核通过后得到UUID
,Major
,Minor
等参数,在zb-simulator.js中更新对应的三个参数。
var uuid = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
var major = XXXXX; // 0x0000 - 0xffff
var minor = XXXX; // 0x0000 - 0xffff
$ sudo node zb-simulator.js
打开微信进入摇一摇
, 等待周边
页面出现后摇一摇手机。即可摇出模拟的设备。
推荐在Linux环境下运行,系统需要有蓝牙适配器和bluez蓝牙工具包。bleno库主要完成BLE设备的服务与特征值构建,在非Linux环境下运行时需要满足bleno的依赖条件。
Linux
- bluez
- libbluetooth-dev
- nodejs
Node.js modules
- bleno
- bleadvertise
代码已经在以下环境运行测试通过
- bluez 版本 4.101
- nodejs 版本 4.4.5
- bleno 版本 0.4.0
- bleadvertise 版本 0.1.1
项目 | 参数 |
---|---|
平台 | Raspberry Pi 2 Model B |
OS | Ubuntu 14.04.4 |
内核 | 3.18.0-20-rpi2 |
蓝牙模块 | CSR Bluetooth 4.0 USB module |
AirSyncDebugger是微信提供的蓝牙协议调试工具。