微信小程序蓝牙开发蓝牙协议是什么,如何在我的APP中使用

微信摇一摇周边+iBeacon开通试玩全指南
阅读量:180738
微信摇一摇已经到达风口,它将成为一个比微信扫一扫更新的更火爆的入口。基于位置推送周边商铺信息、弹送广告、发送红包,你能想到的一切,都能通过iBeacon来实现。
????继“微信连wifi”后,微信又放大招,开放了“摇一摇·周边”接口。商家可以通过http://zb.weixin.qq.com/进行自助接入。 那么问题来了,究竟什么样的商户可以接入?流程会不会很麻烦?iBeacon硬件又该怎么使用……今天,小物君就为大家全面科普微信摇一摇·周边接入开通的全流程,以及iBeacon可以实现的功能及应用。&什么是iBeacon?iBeacon是物联网中的诸多传感器之一,它是苹果公司结合蓝牙超低功耗无线技术(Bluetooth Low Energy)所开发的一套开放性协议。2013年起,绝大部分智能机开始搭载支持BLE的蓝牙模块。iBeacon通过低功耗蓝牙技术(Bluetooth Low Energy,BLE,即蓝牙4.0)发射广播信号,在iBeacon基站附近可以创建一个信号区域,当接收设备(智能手机、平板电脑等移动终端)进入该区域时,通过能够安置在任何物体中的iBeacon低功耗蓝牙基站,用户便能使用具有iBeacon功能的移动设备与应用方进行互动。基于iBeacon可以实现的功能有:基于用户当前所在位置的优惠或信息推送。精度能达到0.5m;室内定位和引导。比GPS更精准,且可以应用在室内等GPS无法发挥作用的场馆;智能互动。提升和用户的互动体验;精准营销大数据分析。&什么是微信摇一摇·周边?“摇一摇·周边”是微信提供的一种新的基于位置的连接方式&用户通过“摇一摇”的“周边”页卡,可以与线下商户进行互动,获得商户提供的个性化的服务商户申请该功能后,需要在门店自主铺设支持iBeacon协议的蓝牙硬件,并在商户后台设置硬件和对应服务的关联是否所有拥有微信公众号的商户/个人都可以申请微信摇一摇·周边?已经通过“微信认证”的服务号或者订阅号已经开通“门店管理”,并且已开通至少一家门店微信摇一摇·周边申请流程麻烦吗?怎样部署iBeacon硬件?第一步. 服务提供者向微信后台申请服务,微信后台生成一个IBeaconId,并将其映射到服务提供者提供的服务,再将IBeaconId告诉服务提供者;第二步. 服务提供者把第一步拿到的IBeaconId设置到IBeacon设备上,让IBeacon设备广播该IBeaconId;第三步. 用户在该IBeacon设备的信号范围内打开微信摇一摇周边,微信App拿到该IBeaconId;第四步. 微信通过第三步拿到的IBeaconId,向微信后台拉取相应的服务,展示在摇出来的结果上。第五步. 用户点击摇出来结果,在微信内嵌的浏览器上,会带上用户信息跳转到服务提供者在第一步申请服务时填的url,进入应用页面。&小物说:iBeacon就像多年前刚刚横空出世的二维码,“扫一扫”的用户习惯培养使它几乎成为僵尸一样的存在,只在极少数场合才被人们接受使用。iBeacon技术自苹果2013年发布以来,由于其必须搭配独立App使用的局限,使其依然在艰难的推进。微信摇一摇周边的开放将成为iBeacon落地的重要突破点。国内领先的iBeacon硬件及综合解决方案提供商iBeacon CS预测分析“微信摇一摇已经到达风口,它将成为一个比微信扫一扫更新的更火爆的入口。基于位置推送周边商铺信息、弹送广告、发送红包,你能想到的一切,都能通过iBeacon来实现。”????
要评论?请先或者
Ta的其他文章 >>
近日,在美的2018经营管理年会上,美的集团董事长...
新闻发布会
00:00:00 浙江
09:00:00 上海
09:00:00 湖北
14:00:00 北京
09:00:00 北京
00:00:00 北京
09:00:00 上海
09:00:00 四川
09:00:00 北京
13:00:00 天津
09:00:00 浙江
09:00:00 浙江
09:00:00 上海
09:00:00 北京
09:00:00 北京
09:00:00 北京
09:00:00 浙江
13:00:00 湖北
09:00:00 北京
09:00:00 浙江
新闻排行榜
新闻时间轴
蓝鲸时间轴—清晰标明未来即将发生的事件。蓝鲸新闻时间轴—让你了解即将发生的事件
新闻线索通道
蓝鲸旗下蓝鲸TMT新闻线索通道
新闻发言人俱乐部
蓝鲸旗下蓝鲸TMT新闻发言人俱乐部
蓝鲸记者训练营
从新闻爆发源头开始复盘式演练,全程、深度的从每个细节回顾模拟,以及专业解释,对记者进行整体培训
蓝鲸记者猎头
最专业的传媒行业招聘平台。切实解决传媒行业“专业媒体人才难招,媒体人找工作更难”的长久问题。
在线新闻发布会系统
邀请进入发布会需要输入邀请账号和邀请密码,如您还没有您所要参与的发布会的账号密码请联系蓝鲸在线客服玩转BLE(3)_使用微信蓝牙精简协议伪造记步数据
在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了):
物联网中的IOT设备有两个主要特点:
1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置、控制等功能)。
2)数量和种类繁多(消费者面对的可是数量众多的不同厂家、不同类型的设备)。
基于这两个特点,手机等终端设备一般通过APP(或APK)对IOT设备进行控制,不同厂家的不同设备,通常需要不同的APP/APK。于是出现了这样的结果:
如果你家里有一个小米yeelight的床头灯,你需要安装一个yeelight的APP/APK;
如果你手上戴一个百度智能手环,你需要安装一个百度智能手环APP/APK;
如果你跑步时戴一个xxx运动蓝牙耳机,你需要安装一个xxx运动蓝牙耳机APP/APK;
如果你要骑摩拜单车,你需要安装一个摩拜单车APP/APK;
如果你也行骑一下优拜单车,你需要安装一个优拜单车APP/APK;
……(要列的话,我觉得永远都列不完,大家可以想象一下,这是不是一个灾难??)
既然有问题,肯定就有人试图解决,于是微信IoT、阿里小智、亚马逊IoT等等,互联网大佬们就各显神通了。最终谁能称霸天下,现在还不得而知,本文也不去讨论这些。
作为蓝牙BLE的介绍文章,本文将以微信IoT的“微信蓝牙精简协议”为例,通过“把一个蓝牙适配器模拟成微信计步器”,分别从BLE技术(怎样注册一个GATT service)和微信IoT(微信物联网平台的思路和想法)两个角度,窥一窥IoT江湖的冰山一角(权当开阔眼界了)。
2. 微信蓝牙精简协议简介
微信蓝牙精简协议的思路很简单(具体可参考““),如下图:
图片1 微信蓝牙精简协议框架
总结来说,就是:
通过微信(可以运行在手机、平板、电脑、等硬件上面)统一和IoT设备交互;
交互的介质是BLE协议(可以摇身变为其它无线协议);
交互的过程可由服务器协助完成(服务器可选择微信服务器或者第三方服务器)。
虽然思路简单,背后却有深深的“不怀好意”,因为:
1)IoT设备想要和微信(或者微信背后的服务器)交互,就必须遵守微信定义的协议;
2)IoT设备通过微信和服务的交互(无论是第三方服务器,还是微信服务器),都必须遵守微信定义的协议,并经由微信服务器转发。
基于上面两点,物联网中最重要的两个环节:设备和数据,都掌握在微信的手中了。恐怖!!
到目前为止,“微信蓝牙精简协议”有一个比较成熟的应用实例:微信计步器,其工作流程为:
1)在带有计步功能的BLE设备上,按照协议规定的方式,基于BLE GATT,实现相应的Profile、Service、Attribute。
2)在微信公众平台,为该设备申请一个唯一的设备ID,并和设备的MAC地址一起,在公众平台上注册、授权。
3)在微信的微信运动小程序中,扫描并添加该设备,即可通过BLE读取设备的计步信息。
4)微信运动读取计步信息后,可以进行后续的动作(例如在朋友圈刷排名等)。
以上步骤,后面章节将会使用一个蓝牙适配器(模拟蓝牙计步器),配合自己的手机微信,进行演示说明。
3. 将蓝牙适配器模拟成一个计步器
3.1 环境准备
后续实验基于如下的硬件、软件环境(其它环境也okay,不过我没有测试)。
运行Ubuntu为例的PC、笔记本(或者开发板),包含蓝牙4.0(及以上)功能(自带或者使用蓝牙适配器);
Ubuntu中安装有较新版本的Bluez协议栈及工具集,以及其它必须的软禁包(具体步骤略,碰到问题的时候可以一点点解决);
具有BLE功能的手机(上面有可以正常使用的微信);
3.2 搭建Golang开发环境
在包含Bluez(及相关工具集)的Linux OS中,使用Bluez的工具,可以完成大部分的BLE实验,例如:
hcitool、bluetoothctl等工具,可以进行BLE设备的扫描、连接、配对、广播等操作;
hcitool可以发送HCI command,设置BLE的广播数据;
gatttool可以在GATT层面,完成GATT profile的连接、service attribute的读写等操作;
但有一个功能点,不是很容易实现,就是如何自定义一个GATT profile(要知道,BLE 90%以上的功能都是通过GATT实现的,如果做到这一点,学习BLE就非常方便了)。当然,BLE不复杂,我们可以直接使用BLuez提供的API,自行开发。如果是产品开发,无可厚非,但是如果仅仅只做个实验,这样大张旗鼓的就不划算了,最好能有一些开源的工具。确实有,我搜集、尝试过几种工具:
1)使用bluez的测试代码(bluez-5.37/test/example-gatt-server),是一个python脚本。这个家伙对环境依赖度比较高,很难用,最终没有用起来。
2)一个由nodejs脚本写的工具()。基本功能还好,不过本人对js不太熟,就算了。
3)一个由Go语言写的工具(。功能OK,关键还是新奇的Go语言,果断使用~~
这就是搭建Golang开发环境的原因。至于步骤,很简单(以Ubuntu为例):
1)安装Go语言
sudo apt install golang
2)创建GOPATH环境变量
mkdir ~/gopath
export GOPATH=$HOME/gopath&&& #为了方便,可以放到~/.profile中
3.3 代码准备
在github上,从中clone一个仓库,clone的仓库地址为。clone后使用go get命令,下载代码到本地:
vim@ubuntu:~$ go get github.com/wowotech/gatt
下载后代码的位置为:
vim@ubuntu:~$ ls $GOPATH/src/github.com/wowotech/
然后,手动将代码中所有的“github.com/paypal”类型的import修改为“github.com/wowotech”(fuck Go!!)
cd $GOPATH/src/github.com/wowotech/gatt
find . -name "*.go" | xargs sed -i 's/paypal/wowotech/g'
提交记录如下:
3.4 编译并运行一个示例文件.
3.5 支持“微信蓝牙精简协议”
参考examples/server.go以及蓝牙精简协议的定义[1],新建weixin.go,增加微信蓝牙精简协议。最终的文件如下(代码很简单,熟悉BLE GATT协议的同学,很容易看懂,就不过多解释了):
注1:可以通过代码中如下的定义修改计步的步数(想刷爆微信运动朋友圈的同学注意了,嘿嘿!!):
+ // steps little endian
+ // 01(steps) 10 27 00(0x002710 = 10000)
+ // http://iot.weixin.qq.com/wiki/new/index.html?page=4-3
+ steps := []byte{ 0x01, 0x5c, 0x74, 0x01 }
3.6 编译、运行、测试
vim@ubuntu:~/gopath/src/github.com/wowotech/gatt/examples$ go build weixin.go
vim@ubuntu:~/gopath/src/github.com/wowotech/gatt/examples$ sudo ./weixin
[sudo] password for vim:
01:03:13 dev: hci0 up
01:03:14 dev: hci0 down
01:03:14 dev: hci0 opened
State: PoweredOn
01:03:14 BD Addr: 5C:F3:70:6A:BA:27
01:03:14 Generating attribute table:
01:03:14 handle type props secure pvt value
01:03:14 0x0 0x02 0x00 *gatt.Service [ E7 FE ]
01:03:14 0x3 0x32 0x00 *gatt.Characteristic [ 32 03 00 A1 FE ]
01:03:14 0x0003 0xfea1 0x32 0x00 *gatt.Characteristic [ ]
01:03:14 0x2 0x0E 0x00 *gatt.Descriptor [ 00 00 ]
01:03:14 0x3 0x3E 0x00 *gatt.Characteristic [ 3E 06 00 A2 FE ]
01:03:14 0x0006 0xfea2 0x3E 0x00 *gatt.Characteristic [ ]
01:03:14 0x2 0x0E 0x00 *gatt.Descriptor [ 00 00 ]
01:03:14 0x3 0x02 0x00 *gatt.Characteristic [ 02 09 00 C9 FE ]
01:03:14 0x0009 0xfec9 0x02 0x00 *gatt.Characteristic [ ]
然后在手机下载AirSyncDebugger2.3.0.apk(的底部)测试精简协议是否okay:
打开APK----&精简协议----&计步器测试
测试界面如下(Android平台):
4. 在微信公众平台注册并授权设备
第2章成功模拟出来一个遵守“微信蓝牙精简协议”的计步器之后,我们需要登录微信的公众平台(可以使用测试帐号),注册一个产品类别,并授权该设备,之后就可以在微信运动界面使用这个设备了。
4.1 登录“微信公众平台接口测试帐号”
打开下面链接:
点击登录按钮,用自己微信的扫一扫登录,登录后的界面如下:
注意图中红色涂抹的三个信息(要记录下来,后面有用):
appsecret:
4.2 开启设备功能接口
将上面的登录界面往下拉,找到“功能服务”,“设备功能”,点击“开启”,开启设备功能接口,如下图:
4.3 添加产品
设备功能接口开启后,会出现“设置”按钮,点击进入下一个界面,进行设备功能管理。在该界面,点击“添加产品”按钮,为我们的计步器设备添加一个产品类别:
按照提示填入相关的信息(需要注意红色圈出的地方):
点击“下一步”进入“产品能力登记”界面:
最后,点击“添加”按钮,将产品添加进去。添加成功后,进入如下的界面(注意其中红色涂抹的那一串数字,是产品的ID,记下来,后面有用):
4.4 授权设备
4.4.1 获取access_token
根据上面得到的appID和appsecret,在浏览器里面输入如下指令,获取访问微信公众平台的token(令牌):
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxxxxxxxx&secret=xxxxxxxx
注意红色部分要修改为实际内容(具体可参考4.1章节获取的信息)。
浏览器会返回如下内容:
{"access_token":"xxxxxxxxxxxxxxxxxxx","expires_in":7200}
有两个字段,access_token(记录下来,后面有用)和有效时间(7200秒,很长了)。
4.4.2 为设备生成一个唯一ID(device_id)及二维码(通过微信扫描即可添加设备)
在浏览器输入如下指令:
https://api.weixin.qq.com/device/getqrcode?access_token=xxxxxxxxxxxx&product_id=xxxxx
其中access_token为4.4.1中获取的,product_id为4.3中获取的。
浏览器的返回如下:
{"base_resp":{"errcode":0,"errmsg":"ok"},"deviceid":"xxxxxx","qrticket":"http:\/\/we.qq.com\/d\/AQArGYez06UDOcqKNe1jqWeeLhiF7fIKebEP5hiT"}
deviceid为新生成的唯一ID,记录下来,后面有用。
qrticket是设备的二维码,随便找一个二维码生成的网站(例如),就可得到图片二维码,如下(注意需要将浏览器返回的转义字符改回正常):
4.4.3 设备鉴权
这一步要借助微信公众平台的debug页面了,单纯的浏览器无法搞定。打开如下的debug地址:
找到如下界面:
body输入的内容如下:
&&& "device_num":"1",
&&& "device_list":[&
&&&&&&& "id":" xxxxxxxx",
&&&&&&& "mac":"5CF3706ABA27",&
&&&&&&& "connect_protocol":"3",
&&&&&&& "auth_key":"",
&&&&&&& "close_strategy":"1",&
&&&&&&& "conn_strategy":"5",
&&&&&&& "crypt_method":"0",
&&&&&&& "auth_ver":"0",
&&&&&&& "manu_mac_pos":"-1",
&&&&&&& "ser_mac_pos":"-2",
&&&&&&& "ble_simple_protocol": "1"
&&& "op_type":"0",
&&& "product_id": "xxxxx"
注意上面红色的字段,id是4.4.2中获得的deviceid,mac是蓝牙设备的物理地址,product_id是4.3中获得产品ID的。
点击“检查问题”,看到如下的成功信息,说明授权成功了:
5. 使用手机微信绑定设备
使用微信扫一扫,扫描刚才获得的二维码,点击“绑定设备”,即可添加设备,如下:
绑定成功后,设备显示未连接,如下:
接下来要连接设备。对iOS来说,在设置界面无法主动连接BLE设备,必须有应用程序自行连接,这里以微信运动为例,搜索并连接刚才授权的那个设备,即可看到计步数据的更新。步骤如下面图片(不再解释了,大家可以自己试试):
6. 参考文档
[1] 微信蓝牙精简协议,
原创文章,转发请注明出处。蜗窝科技,。微信蓝牙协议(airsync)是什么,如何在我的APP中使用
微信蓝牙协议(airsync)是什么,如何在我的APP中使用微信app使用说明_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
微信app使用说明
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩51页未读,
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 微信小程序蓝牙打印机 的文章

 

随机推荐