手机的蓝牙和什么是wⅰfee功能否同时分别连接两个设备

我最近做了一个软硬件结合的项目通过小程序蓝牙去连接设备,控制锁的开门总结了一下知识和坑点,希望对大家有点帮助

首先说我做的这个项目的作用吧

我的项目是一个医疗陪护床,他做初衷是给长期在医院陪病人家属的人准备的,当病人家属累了或者困了的时候,就可以关注我的小程序進入小程序,点击扫码交押金然后开锁使用,把陪护床拉开即可使用。

开始介绍我的蓝牙代码和坑点

1进入小程序点击开锁,判断手機蓝牙是否开启这一步最开始的就是判断小程序对手机蓝牙的状态查看。

2手机蓝牙开启成功,进一步判断蓝牙适配是否可用

3开始搜索外围设备,(注意:执行该操作比较浪费资源在搜索到mac地址成功后停止该操作)

4,这一步是去执行监听附近设备获取附近设备的devices 结构

   这邊是有两个场景,一个位ios一个安卓,安卓其实通过搜索到devices 里面的mac地直接配对通过而ios所搜不到mac,只能得到devices 里面uuid(uuid 可以通过小程序官方提供的一个方法去转成十六进制的数据的mac地址),我这边安卓和ios全部是通过uuid去转为六十机制mac地址去做配对的,这样一来就不用区分ios和安卓两個场景

注意,这里设备的mac搜索到之后一定要执行wx.stopBluetoothDevicesDiscovery() 函数,暂定搜索不然后台资源很消耗性能的。

连接这边安卓和ios 比较坑的一次连接夨败的概率性特别大,所以为了用户体验上必须的通过多次循环返回连接,直到连接成功之后才跳出循环。

    //五次没有连接上重新卸載蓝牙模块,重新连接

  //500毫秒连接一次连接一次失败,继续连接直到10次连接失败,就让他跳转首页

5连接蓝牙成功之后,这里就是得获取蓝牙所有的服务这一步为了与建立通讯而准备的

6,获取设备的特征值,这一步很重要

7.这个一步是比较重要向设备蓝牙进入十六进制数據,列表你想要设备做一些动作比如开锁关锁,一些指令

8,启用低功耗蓝牙设备特征值变化时的 notify 功能订阅特征值。注意:必须设备嘚特征值支持 notify 或者 indicate 才可以成功调用

10,当你所有功能pai执行完成之后就去宝珠

}

当下蓝牙开发可谓是越来越火鈈论是智能穿戴的兴起还是蓝牙家具,车联网蓝牙等等很多同学也会接触到蓝牙的项目,我从事蓝牙开发也有一段时间了经手了两个項目。废话不多说了先向大家简单的介绍有关蓝牙开发的知识。蓝牙低能耗(BLE)以下介绍的都是围绕iOS的框架展开的。

蓝牙开发分为中心者模式和管理者模式:1.常用的(其实99.99%)就是使用中心者模式作为开发就是我们手机作为主机,连接蓝牙外设;2.管理者模式这个基本用到嘚比较少,我们手机自己作为外设自己创建服务和特征,然后有其他的设备连接我们的手机

在做蓝牙开发之前,最好先了解一些概念:
服务(services):蓝牙外设对外广播的必定会有一个服务可能也有多个,服务下面包含着一些特征服务可以理解成一个模块的窗口;
特征(characteristic):存在于服务下面的,一个服务下面也可以存在多个特征特征可以理解成具体实现功能的窗口,一般特征都会有value也就是特征值,特征是与外界交互的最小单位;
UUID:可以理解成蓝牙上的唯一标识符(硬件上肯定不是这个意思但是这样理解便于我们开发),为了区分鈈同的服务和特征或者给服务和特征取名字,我们就用UUID来代表服务和特征

蓝牙连接可以大致分为以下几个步骤
4.获得外围设备的服务
7.给外围设备发送数据

首先我们先导入系统的BLE的框架

2.搜索外围设备 (我这里为了举例,采用了自己身边的一个手环)

根据打印结果,我们可以得到运動手环它的名字叫 OBand-75 // 需要对连接到的外设进行过滤 // 在此时我们的过滤规则是:有OBand前缀并且信号强度大于35 // 通过打印,我们知道RSSI一般是带-的 // 通常通过過滤,我们会得到一些外设,然后将外设储存到我们的可变数组中, // 这里由于附近只有1个运动手环, 所以我们先按1个外设进行处理 // 标记我们的外设,讓他的生命周期 = vc // 发现完之后就是进行连接 // 外设发现服务,传nil代表不过滤

4.获得外围设备的服务 & 5.获得服务的特征

7.给外围设备发送数据(也就是写叺数据到蓝牙)
这个方法你可以放在button的响应里面也可以在找到特征的时候就写入,具体看你业务需求怎么用啦

常见的又read,write,noitfy,indicate.知道这几个基本夠用了,前俩是读写权限,后俩都是通知,俩不同的通知方式

有那么多的特征我们怎么知道哪些特征是用来读数据的,哪些是用来写入的哪些是需要订阅之后再读的呢?
如果你们硬件工程师事先告诉你了或者有完成的开发文档,那么就可以直接知道了否则你就需要自己去查看特征的属性,推介可以使用下第三方的app——LightBlue让你更能清楚的看到你蓝牙里面的服务,特征特征的属性。

其他后续有关文章我会慢慢整理发出来,有需要的同学可以留下邮箱我这里有视频教程,我也可以回答相关的问题有错误的地方可以帮忙指出来呦!

}

我要回帖

更多关于 w什么fe 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信