微信小程序的蓝牙使用

1.蓝牙分类

蓝牙基础率/增强数据率 (BR/EDR)

常用在对数据传输速率有要求的设备上,如蓝牙音箱等

低功耗 (LE) 蓝牙

常用在低功耗、对续航有要求的设备上,智能穿戴设备、血糖仪等等

2.蓝牙的定义和工作

设备定义

对LE协议,对设备定义了若干角色,主要有外围设备(peripheral)和中心设备(central)

外围设备:提供数据,广播自己,与central建立连接。

中心设备:扫描外围设备,建立连接,使用peripheral提供的服务,这个角色一般由手机担任。

数据交互

连接建立后,双方数据交互基于GATT(Generic Attribute Profile) 规范,根据该规范可以定义出一个个配置文件(Profile),描述该蓝牙设备提供的服务(Service)

通信过程中最主要的三个概念,profile配置文件,characteristic特性,service服务。

profile:不是真实存在,只是预先定义的service集合,

service:蓝牙设备能提供的服务。一个设备可以提供多个服务,每个服务可以有多个特性,每个服务对应唯一UUID

characteristic: GATT中的最小单元,每个特性由一个value和多个描述特性的Desciptor.

总结:通信就是和蓝牙service的特定characteristic进行读写达到通信目的。

3.小程序提供的蓝牙接口和步骤

1.扫描发现蓝牙的外围设备

2.连接蓝牙外围设备

3.查找设备所提供的device

4.读写指定服务的Value of characteristic

4.常见问题

部分安卓机型使用蓝牙必须获得定位权限。(因为蓝牙可以定位)

建立连接和关闭连接必须要成对调用

MTU(最大传输单元)系统限定为 20 字

5.(例程)实际流程

所需API:

wx.openBluetoothAdapter打开蓝牙适配器(成功:wx.startBluetoothDevicesDiscovery开始搜索附近蓝牙外围设备,失败:根据返回的errCode值进行相应处理)

wx.getBluetoothAdapterState获取蓝牙适配器状态(是否可用,是否在搜索)

(如果返回值是在搜索,执行wx.onBluetoothDeviceFound获得找到的蓝牙外围设备)

(如果返回值是可用,执行wx.startBluetoothDevicesDiscovery搜索蓝牙外围设备)

wx.stopBluetoothDevicesDiscovery停止搜索

wx.createBLEConnection创建低功耗蓝牙连接(success:wx.getBLEDeviceServices成功后获取设备服务ID(success:getBLEDeviceCharacteristics:成功后获得设备特性ID))

读特征值wx.readBLECharacteristicValue(设备id、服务id、特征id(uuid))

写特征值wx.writeBLECharacteristicValue

流程:

"openBluetoothAdapter"开始扫描

"stopBluetoothDevicesDiscovery"停止扫描

"createBLEConnection"创建连接

"writeBLECharacteristicValue"写数据

"closeBLEConnection"断开连接

"closeBluetoothAdapter"结束流程

微信小程序的蓝牙使用相关推荐

  1. 在HbuilderX中实现微信小程序下蓝牙连接打印机完整实战案例

    1.基础开发环境,所用到的 Api 以及实现的思路. 应用场景: 商家打印小票,小票包含顾客消费的商品明细信息以及末尾附上二维码,二维码供顾客扫码开票. HbuilderX开发工具: HBuilder ...

  2. 微信小程序使用蓝牙连接设备流程

    微信小程序使用蓝牙连接设备流程 小程序使用蓝牙连接设备介绍 使用到的api 流程: 初始化蓝牙模块 wx.openBluetoothAdapter wx.openBluetoothAdapter({ ...

  3. 开源一个基于微信小程序的蓝牙室内定位软件(附下载链接)

    文章目录 1. 运行环境要求 2. 软件功能及程序说明 2.1 软件组成 2.2 主要功能 2.3 文件及函数功能说明 3. 软件设计及操作说明 4. 完整版代码获取 1. 运行环境要求 软件运行环境 ...

  4. 微信小程序实现蓝牙BLE(demo版)

    微信小程序实现蓝牙BLE(看文章最后一句话) 这是楼主在学校自己开发的用蓝牙小程序控制机械臂的(独立开发的). https://pan.baidu.com/s/1AmCW_ARhu--eapzd8Af ...

  5. 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结【文末附源码】

    微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 文章目录 微信小程序/uni-app 蓝牙打印开发教程和常见问题总结[文末附源码] 1️⃣ 写在前面 2️⃣ 蓝牙连接流程 3 ...

  6. 微信小程序之蓝牙开发虚拟摇杆

    文章用于学习记录 文章目录 前言 一.App Inventor 二.uni-app 三.微信小程序 3.1 示例&应用 3.2 服务值与特征值 3.3 控制指令 3.4 测试 3.5 十六进制 ...

  7. 微信小程序低功耗蓝牙BLE快速开发js

    文章目录 1.前言 2.资料 3.BLE连接流程 BLE连接原理 4.index.js页面加载流程详细说明 完整代码: 1.前言 目的: 1.为了能三分钟快速开发BLE模块,特此做一个笔记,按照笔记的 ...

  8. 微信小程序低功耗蓝牙(BLE)开发总结

    1.准备 低功耗蓝牙模块:(链接)蓝牙模块购买通道 相关参数数据(UUID表): 需要知道服务ID(serviceID) ,响应特征值 ID(notify characteristic UUID),写 ...

  9. 微信小程序之蓝牙通信模块

    微信小程序--蓝牙通信 声明:学习本就是一个枯燥的过程,这篇文章是本人经过多天的学习,研究,又经过不停的编写代码测试才总结出来的,在此之前本人从未接触过有关JS的任何编程代码,难免有出错的地方,请斟酌 ...

最新文章

  1. 异常处理——Another app is currently holding the yum lock
  2. 杭电 1272 并查集判断环
  3. 防火墙软件 - IPCop
  4. 安全策略篇 ASPF:隐形通道
  5. synchronizedMap,synchronizedList与synchronizedSet
  6. ffmpeg推拉流优化方案
  7. Vue自定义组件——图片放大器,js点击<img>触发图片放大,富文本内图片点击实现放大器效果
  8. micropython移植增加驱动,MicroPython之LPC1788移植
  9. hp DV4 声卡驱动 IDT声卡补丁1.1
  10. 正式版TBSA 6.0(用来分析多层及高层建筑结构的专用程序)
  11. 【已解决】【Selenium】请教大神,知乎的注册页面如何切换到登录页面?
  12. cso(布谷鸟)算法优化神经网络参数
  13. qq输入法自定义短语并在手机qq输入法使用
  14. Win10 1607 频繁断网,迅雷断网以及迅雷下载崩溃解决方案
  15. 楼板的弹性计算和塑形计算_双向板计算的弹性算法和塑性算法
  16. 2016 计蒜之道 初赛 第二场 联想公司的 logo 设计(计蒜客)
  17. centOS 7 安装可视化用户界面
  18. MySQL图形化用户界面客户端的安装与介绍(SQLyog)
  19. 实习收获—Java后台开发
  20. html5 ios keychain,iOS10适配之Keychain读写失败

热门文章

  1. gerrit的简单介绍
  2. python如何爬取sci论文_利用python爬取并翻译GEO数据库
  3. greendao的使用(greendao+SQLite)
  4. 快速部署私有云笔记,免费享受多端同步
  5. 文本分类的特征提取算法
  6. iOS 获取系统全部图片
  7. 《Android开发从零开始》——43.Menu使用
  8. virtualbox报错--记录一次瞎折腾之后遇到的问题
  9. Java 批量导出包含图片的Word文档
  10. 粒子群PSO算法 python实现(亲测)