发帖
1 0 0

安信可低功耗蓝牙系列PB-03F【上手篇四】——蓝牙功能极简入门(手机交互)

爱笑
管理员

373

主题

2643

回帖

2万

积分

管理员

积分
20113
PB&TG系列 55 1 3 天前

AT指令速成

串口默认配置

如果没有特殊说明AT指令串口和下载串口使用同一个串口,配置为115200,8N1

启动信息

################################################

arch:<芯片型号>,<芯片版本流水号>

company:Ai-Thinker|B&T

ble_mac:<蓝牙MAC> //eg:94c960123456(小写字母)

wifi_mac: //eg:94c960123456(小写字母)

sdk_version:<SDK版本号> //芯片原厂SDK的版本号(根据原厂SDK的版本号显示)

firmware_version:<固件版本号> //固件版本号,格式“release/v1.0.0”

如果是调试版本需要将release改为debug;

版本小写v

版本号三个字段

第一个表示删除了接口或者改变了现有接口,等可能导致兼容性问题的修改(已经发布的内容修复打印错误,现有指令增加功能或新增响应内容,新增URC指令,都属于不兼容的修改);

第二个版本号表示添加了内容(一般是指新增了一个指令),不影响兼容性;

第三个字段表示修复了bug或者逻辑优化,对指令接口没有任何修改的情况(例如AT+WJAP?查询出来的状态错误,修复了这个bug后可以按照文档规定正常显示的属于这类)

compile_time:<编译时间:月/日/年/时/分/秒>

ready

################################################

备注:

(1)换行使用\r\n

(2)客户建议检测ready来检测启动信息,不建议检测固件版本号和编译时间(后续版本可能进行版本更新)

(3)固件版本号

启动信息中的固件版本号是表示该模组的固件版本号,不是combo指令的版本号,combo框架的版本号需要通过版本查询指令查看。

格式为三段式格式v主版本号.次版本号.迭代号

其中当主版本号发生改变的时候表示发生的不兼容的修改(例如删除指令或者修改了现有指令);

次版本号表示添加了新的接口(新的AT指令或者向下兼容的修改),

迭代版本号表示bug修复(不涉及接口的修改)

指令格式

CMD[opt][param1,param2,...]命令以回车换行(\r\n)结束(实际检测的是\n结束ASCII码0x0D,前面的\r会被忽略)

有的换行统一使用\r\n

image.png

指令响应格式

指令执行成功响应格式

\r\nOK\r\n //中间不能有任何其他消息(其他消息可以在log口打印)

1.4.2指令执行错误响应格式

\r\n+:<error_code>\r\nERROR\r\n

//errorno表示错误码(部分平台支持),AT串口不能打印其它任何错误信息(其他消息可以在log口打印)

蓝牙通信实验

0x04 蓝牙功能极简入门(Ibencon和双板主从通讯)

准备

请读完注意事项在进行操作!!!

· 安信可PB-03F开发板一块

· 适配开发板的USB数据线一条

· 电脑请提前安装(软件):安信可串口调试助手

· 电脑请提前安装(软件):开发板驱动程序(CH341驱动)

· 手机安装蓝牙调试助手:应用商店搜你觉得好用的就行;

· AT 命令示例 — 安信可科技 documentation (aithinker-combo-guide.readthedocs.io)

开始

步骤一:电路按图连线

电脑 =》USB线(A口)=》USB线(micro-USB口)=》安信可PB-03F开发板

步骤二:打开安信可串口调试助手,并设置相关参数

注:如果没有特殊说明AT指令串口和下载串口使用同一个串口,配置为115200,8N1

image.png

image.png

· 点击上图1号红框内,“串口”com11右侧向下箭头,选择安信可PB-03F使用的串口号。

(注:你的串口号可能与我的不同,例如:“com1” 或 “com14”。)

· 其他参数,请按图设置!

· 点击打开串口按钮;

· 按下开发板上的RST按钮,安信可串口调试助手出现如下图,固件参数,说明串口通讯测试通过!

步骤三:使用AT命令获得蓝牙模块名称,以及蓝牙模块BLE_MAC地址,以及蓝牙设备状态

image.png

image.png

image.png

命令及返回值如下图所示;

如果你有更喜欢的名称或MAC地址,也可使用命令更改,但重启后才生效!

AT+BLENAME?
+BLENAME:ai-thinker
OK
AT+BLEMAC?
+BLEMAC:94c960e180e6
OK
AT+BLESTATE?
+BLESTATE:0
OK

image.png

步骤四:BLE iBeacon 蓝牙广播

设置蓝牙iBeacon UUID (可选,开启iBeacon前设置)

命令:
AT+BLEIBCNUUID=00112233445566778899aabbccddeeff
响应
OK

设置蓝牙 iBeacon data (可选,开启iBeacon前设置)

命令:
AT+BLEIBCNDATA=1122,3344,5566,14
响应
OK

开启iBeacon

命令:
AT+BLEMODE=2
响应
OK

image.png

打开手机蓝牙调试APP,搜索一下即可看到ai-thinker的广播及广播信息内容!

image.png

image.png

步骤五:基于Gatt的BLE通信

以下示例同时使用两块开发板,其中一块做从机,另一块做主机。

说明:备注可选项的指令可以设置也可以不设置,根据自己的实际情况来决定是否设置。

从机:设置蓝牙名称,如果不设置默认是ai-thinker。(可选项,需要在开启从机模式前设置)

命令:
AT+BLENAME=ai-thinker
响应
OK

开启从机模式
命令:
AT+BLEMODE=0
响应
OK

主机:开启主机模式

命令:
AT+BLEMODE=1
响应
OK

扫描附近设备(可选项,需要在开启主机模式后设置)

命令:
AT+BLESCAN=1
响应
OK

说明:您所处环境中存在的蓝牙设备不同扫描响应也不同。

连接从机

命令:
AT+BLECONNECT=a81710d8f4e4
响应
OK

说明:ble连接上之后默认进入了透传模式,串口接收到任何数据都会直接往对侧设备发送。如果需要发送其他指令或者需要接收其他连接(如tcp连接)的数据,需要先退出透传模式,退出透传模式的指令是+++(不带回车换行),如果退出透传后需要发送ble数据可以用指令AT+BLESEND来发送,或者发送指令AT+TRANSENTER重新进入透传。

演示

ble_connect_example.gif

步骤六:查询蓝牙模块连接状态,并连接手机

1.给模块上电,打开电脑上的安信可调试助手,打开串口;(注:模块工作模式为从设备!!!)

2.打开手机上的蓝牙调试助手,并且打开手机的蓝牙功能 搜索设备名称为 Ai-Thinker 的设备,点击连接。
如下图所示,连接成功后将进入蓝牙服务页面;

3.点击最后一个Unknown Service然后点击1的向上箭头,随后出现“发送数据”页面。填好要发送的数据后点击发送按钮,即可在电脑端的串口调试助手接收端查看到所发送的数据。

4.点击最后一个Unknown Service然后点击2的向下箭头,随后出现“接收数据”页面。打开“接收通知数据”如下图,关闭“HEX”十六进制显示。然后在安信可串口调试助手《发送》按钮后填写要发送的内容例如00654321,然后点击发送按钮,即可在手机APP的“接收数据”页面,收到发送的数据了!

至此恭喜你,已经学会了使用PB-03F模块与手机进行数据通讯了!!!

image.png

image.png

image.png

image.png

常见问题:1.有任何问题,请按0x02课程重新烧录固件,然后重新按教程操作即可!!!

避坑指南

  • 蓝牙搜不到?→检查是否进入AT模式(波特率115200)
  • 数据乱码?→确认串口调试工具的HEX/ASCII模式切换

upload 附件:BLEAssist.ZIP

──── 0人觉得很赞 ────

使用道具 举报

学习
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28389 个
  • 话题数: 40440 篇