Luat蓝牙指南

目录

  • 蓝牙
    • 简介
      • 1、蓝牙概念
      • 2、蓝牙使用场景
    • API说明
      • 主模式
      • 从模式
      • 广播模式
    • 实现流程
    • 示例
    • 常见问题
      • 1.需要增加信号强度,用外置天线。
      • 2.没有设置过蓝牙mac地址的模块,mac地址是随机的。
      • 3.目前模块的蓝牙连接方式为一对一
      • 4.模块蓝牙是为双模蓝牙(经典蓝牙+BLE)
      • 5.蓝牙版本4.2
      • 6.目前不支持pin码(配对码),后续可能会支持(时间点不确定)
      • 7.无法获取当前的蓝牙连接的信号强度(频率不小于10Hz,模拟测距时使用)
      • 8.无法支持蓝牙hid
      • 9.蓝牙白名单广播和全局广播的切换(开发中)
      • 10.蓝牙连接、扫描、数传范围:
      • 11.配对绑定模式(SMP)无法支持
      • 12.使用btcore.getaddr()获取的蓝牙mac地址是随机的
      • 13.蓝牙广播中的 MAC 地址在 IOS设备上是随机值,不保证每台 iOS 设备读出来的 DeviceId 是一样的。
      • 14.如果使用了btcore.setname(),广播包里会自动添加蓝牙名称的数据,也可以不使用setname,直接在广播包数据里面手动添加蓝牙名称
      • 15.蓝牙自定义广播包数据或响应包数据需要遵从蓝牙广播包/响应包数据格式,具体格式请到互联网自行搜索,蓝牙slave的demo中也有示例
    • 相关资料以及购买链接

蓝牙

简介

1、蓝牙概念

蓝牙是一种短距离的无线通信技术,工作在2.4GHZ频段,使用IEEE802.15协议。分为经典蓝牙(BR/EDR/AMP)、低功耗蓝牙(BLE)两种技术标准。

经典蓝牙最早1999年推出的蓝牙1.0版本,到目前最新的蓝牙5.1。通信速度从最早的1.0版本的723.1kbits/s,到5.1版本的48Mbits/s。主要特点如下:

通信速率高;
支持音频传输协议;
功耗高。
低功耗蓝牙(从蓝牙4.0开始支持),旨在保持同等通信范围的同时显著降低功耗和成本,场景广泛,主要特点如下:

低功耗,使用纽扣电池就可运行数月至数年;
小体积、低成本;
与现有的大部分手机、平板电脑和计算机兼容。

2、蓝牙使用场景

蓝牙的两种协议标准各有不同使用场景,合宙Cat1目前只支持了BLE数传应用,这种应用是对LTE长距离通信的一种补充。
参照合宙Cat1模块蓝牙功能介绍

API说明

主模式

API接口 描述
btcore.scan 开启/关闭扫描
btcore.connect 连接从设备
btcore.findservice 发现服务
btcore.findcharacteristic 发现服务内的特征
btcore.opennotification 开启/关闭通知
btcore.send 发送数据给从设备
btcore.recv 接收从设备发来的数据

从模式

API接口 描述
btcore.advertising 开启/关闭广播
btcore.setname 设置蓝牙名称
btcore.setadvdata 设置广播包数据
btcore.setscanrspdata 设置响应包数据
btcore.addservice 添加服务
btcore.addcharacteristic 添加特征
btcore.adddescriptor 添加描述
btcore.send 发送数据给主设备
btcore.recv 接收主设备发来的数据

广播模式

API接口 描述
AT+BTCOMM=ENABLE 开启/关闭蓝牙
AT+BLECOMM=SETNAME 设置广播名称
AT+BLEADV=ADVDATA 设置广播包数据
AT+BLEADV=SCANRSPDATA 设置响应包数据
AT+BLEADV=ENABLE 打开/关闭广播

详细的API介绍见BLE 蓝牙功能 API说明

实现流程

蓝牙从模式,先init,再poweron,再data_trans把收到的数据回传。如下:ble_test = {init, poweron,data_trans}

示例

蓝牙实例程序在脚本库的demo\bluetooth文件夹下。
demo讲解

常见问题

1.需要增加信号强度,用外置天线。

这个0欧姆电阻跨到那个ipex头那里,可以接外置天线。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cO2nmp5v-1624851985542)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210318154245477_外置天线.png “undefined”)]

2.没有设置过蓝牙mac地址的模块,mac地址是随机的。

带蓝牙功能的模块出厂都会写一个唯一的蓝牙MAC的。可以用AT+BTMAC?查询验证。
解决办法,可以自己手动写一个蓝牙MAC。用AT+BTMAC=

设置,如AT+BTMAC=B4:04:29:46:CF:2D

3.目前模块的蓝牙连接方式为一对一

4.模块蓝牙是为双模蓝牙(经典蓝牙+BLE)

5.蓝牙版本4.2

6.目前不支持pin码(配对码),后续可能会支持(时间点不确定)

7.无法获取当前的蓝牙连接的信号强度(频率不小于10Hz,模拟测距时使用)

8.无法支持蓝牙hid

9.蓝牙白名单广播和全局广播的切换(开发中)

10.蓝牙连接、扫描、数传范围:

与天线、应用场景等都有关系
需要自己根据实际应用场景进行测试,如:空旷的地带、室内

11.配对绑定模式(SMP)无法支持

12.使用btcore.getaddr()获取的蓝牙mac地址是随机的

从V3027到V3035,都有这个问题,3035后会解决这个问题
问题原因是,如果没打开蓝牙,使用接口获取的地址会变

13.蓝牙广播中的 MAC 地址在 IOS设备上是随机值,不保证每台 iOS 设备读出来的 DeviceId 是一样的。

可以通过在蓝牙广播包或响应包内添加本机的真实mac地址来规避

14.如果使用了btcore.setname(),广播包里会自动添加蓝牙名称的数据,也可以不使用setname,直接在广播包数据里面手动添加蓝牙名称

15.蓝牙自定义广播包数据或响应包数据需要遵从蓝牙广播包/响应包数据格式,具体格式请到互联网自行搜索,蓝牙slave的demo中也有示例

相关资料以及购买链接

Air724UG开发板

Air724 开发板使用说明

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注