关于微信小程序上BLE蓝牙开发的一些记录

最近经常搞这个,有些点还是记录一下。

1、关于模块。我用的都是BLE透传模块,即:模块通过蓝牙接口收到的数据会转发到一个串口上,一般是TTL串口,同时,从串口收到的数据会转发到蓝牙接口上。这个串口就可以连在设备上。

2、关于长数据分包的问题。蓝牙模块有个参数规定了每个数据包长度的最大值,默认值一般是20字节。超过这个长度的数据不接受。所以,小程序向蓝牙写入数据时,如果数据长度超过了这个值,必须拆分成多次发送。设备向向模块串口中写入数据时也有这个要求,并且,两次写入操作之间要有时间间隔。我测试的结果是:如果模块设定值时20字节,那么,两次发送数据的间隔要10ms。小程序向蓝牙写数据时不用加间隔(但仍然要分包),我估计微信或者操作系统已经做过处理。设备向模块串口发数据时,有些模块需要分包和发送间隔,有些模块不需要分包发送,看具体的模块特性。

3、关于开发中用得着的工具,至少手机上得有个GATTBrowser之类的吧。可以看各种设置,也可以收发数据。吐槽一下BLE调试宝,功能和GATTBrowser类似,只不过广告太多了,而且貌似不登录还不给发数据。

4、BLE模块的供货商还是比较多的,但不同的模块还是有一些区别,开发之前要好好看厂商提供的源码。

5、关于BLE模块的服务和特征值。服务和特征值是BLE开发相关的特有概念。对于透传BLE,每个厂商都会通过模块中的“服务+特征值”的特定组合提供数据收发通道。注意,不同的厂商使用的方法是不同的。某些厂商,通过一个服务下的两个特征值分别实现收发,也有的用两个服务+特征值的方式分别实现收发。每个特征值有唯一的访问方法:read,write,notify,它们是互斥的。所以,开发时首先要搞清楚发送数据的服务+特征值是什么,接收数据用的服务+特征值是什么。可以通过看厂商提供的例子,也可以直接用手机上的GATT工具来看。

6、小程序搜索蓝牙的过程也要多注意。第一,windows平台下,用小程序开发工具仿真是不能连接蓝牙。第二,通过小程序开发工具的“真机调试”和小程序发布后在手机上运行的特形是不一样的。操作过程都一样,无非是:

打开蓝牙-》搜索-》获取设备列表-》遍历设备列表,找到目标设备-》连接-》收发数据。

需要注意的点是:

a、连续操作之间要加适当的延迟。比如打开蓝牙成功了,停1000ms再开始搜索;

b、打开蓝牙和关闭蓝牙,开始搜索和停止搜索,都要成对调用;

c、如果搜不到需要的设备,要多试几次。所有的fail都增加一定数量的重试是比较保险的;

d、开始搜索后,在获取了设备列表和遍历过之后再停止搜索,否则有可能得不到需要的结果。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值