目录
蓝牙
简介
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-Edfdx3sI-1624448845549)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210318154245477_外置天线.png “undefined”)]
2.没有设置过蓝牙mac地址的模块,mac地址是随机的。
带蓝牙功能的模块出厂都会写一个唯一的蓝牙MAC的。可以用AT+BTMAC?查询验证。
解决办法,可以自己手动写一个蓝牙MAC。用AT+BTMAC=
3.目前模块的蓝牙连接方式为一对一
4.模块蓝牙是为双模蓝牙(经典蓝牙+BLE)
目前支持经典蓝牙播放音乐,BLE数传,becaon功能
5.蓝牙版本4.2
6.目前不支持pin码(配对码),后续可能会支持(时间点不确定)
7.无法获取当前的蓝牙连接的信号强度
8.无法支持蓝牙hid
9.蓝牙白名单广播和全局广播的切换(开发中)
10.蓝牙连接、扫描、数传范围:
与天线、应用场景等都有关系
需要自己根据实际应用场景进行测试,如:空旷的地带、室内