RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例

在本文档中将会从零开始说明如何使用 RW007BLE 主机功能去连接一个BLE串口透传设备,实现数据交互的功能。

硬件准备

  • 1.STM32F411-NUCLEO 开发板,RW007 EVB模块

  • 2.PC 电脑

  • 3.USB 数据线

  • 4.BLE 数据透传模块(如HC-08模块、KT6368A蓝牙模块等)

  • 5.USB-TTL 模块(如CH340等)

  • 6.杜邦线若干条

软件准备

  • 1.RT-Thread Studio IDE软件

  • 2.串口调试软件(xshellSSCOM 等)

步骤一:串口配置 KT6368A蓝牙模块

在这里主要使用RW007高速 WIFI BLE模块,主要使用BLE的主机功能,所以需要一个BLE的从机设备(如HC-08模块、KT6368A蓝牙模块等都可以),因为手上刚好有KT6368A蓝牙BLE模块,所以这里简单说说怎样通过串口配置KT6368A蓝牙模块,下图是KT6368A蓝牙模块的控制指令说明.

  • 操作1:设置 BLE 蓝牙模块的名称

    AT+BMBLE_TEST

    输入上述命令后,会正常返回OK表示设置成功。 说明:这里设置 BLE 模块的名称为BLE_TEST

  • 操作2:设置 BLE 蓝牙模块的 MAC 地址

 AT+BNAACCEEFFDDEE

输入上述命令后,会正常返回OK表示设置成功。 说明:这里设置 BLE 蓝牙模块的 MAC 地址为AACCEEFFDDEE

  • 操作3:设置芯片复位

AT+CZ

输入上述命令后,模块会正常重启,并打印下面的信息,说明配置成功了。

郃T+VER1.6-20210114\0
TM+BLE_TEST
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
TN+AACCEEFFDDEE
TD+KT6368A-SPP-04\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
TS+123456
  • 操作4:手机通过BLE调试助手扫描附近的蓝牙设备 手机上需要自行安装BLE调试助手等蓝牙工具软件。

从手机扫描的结果可以看到,前面步骤设置的BLE_TEST蓝牙设备,并且可以发现MAC地址并不是设置的AACCEEFFDDEE,关于这个问题,在蓝牙模块的说明手册上有提示,具体原因可以百度。

  • 操作5:手机通过BLE调试助手连接蓝牙设备进行通信 通过手机与蓝牙设备进行通信,验证蓝牙设备通信功能。

到此,验证BLE从机设备通信功能,此时只需要把蓝牙设备的串口接在需要透传的设备上即可透传数据。

步骤二:使用STM32F411-NUCLEO通过 RW007 BLE 功能测试BLE蓝牙模块数据传输功能

可以分为以下 3 个步骤:

  • 步骤(1):参考相关文档创建使用RT-Thread Studio IDE 工程

  • 步骤(2):替换 RW007软件驱动包

  • 步骤(3):通过 BLE测试命令与BLE设备进行通信

步骤(1):参考相关文档创建使用RT-Thread Studio IDE 工程

由于使用RT-Thread Studio IDE如何创建使用RW007模块的工程,官方的文档中心有提供比较详细的文档,可以参考此文档进行创建,或可以直接使用官方提供的工程,在此进行详细的描述。

步骤(2):替换 RW007软件驱动包

可以把提供的RW007软件驱动包,替换到创建的RT-Thread Studio工程目录下。

步骤(3):通过 BLE 测试命令与BLE设备进行通信

当前面两个步骤完成后,可以在STM32F411-NUCLEO的调试串口上看到对应的BLE测试命令,此时BLE设备(这里使用KT6368A蓝牙模块进行演示)通过 USB-TTL串口与PC 进行连接。

(1)查看RW007BLE 相关命令

msh />rw
rw007_ble
msh />rw007_ble
[rw007_ble command]
​
rw007_ble help
rw007_ble init central/peripheral                           Note: init ble mode
rw007_ble get_addr                                          Note: get ble address
rw007_ble update_params                                     Note: update connect parameters(no support)
rw007_ble scan                                              Note: scan ble slave
rw007_ble stop_scan                                         Note: stop scan
rw007_ble connect xx:xx:xx:xx:xx:xx                         Note: use slave addr to connect
rw007_ble disconnect [conn_handle]                          Note: disconnect slave
rw007_ble get_server                                        Note: discover all server(no support)
rw007_ble get_char                                          Note: discover all description(no support)
rw007_ble get_disc                                          Note: discover all characteristic(no support)
rw007_ble mtu_exch                                          Note: ble mtu exchange(no support)
rw007_ble notify                                            Note: enable ble notify(no support)
rw007_ble write                                             Note: ble write data(no support)
rw007_ble read                                              Note: ble read data(no support)
rw007_ble notify_change [conn_handle] [char_value] [UUID]   Note: ble notify configure by uuid
rw007_ble write_uuid [conn_handle] [UUID] [data]            Note: ble write data by uuid
rw007_ble read_uuid                                         Note: ble read data by uuid(no support)
​
msh />
​

(2) RW007 BLE 功能初始化 输入命令:

rw007_ble init central

测试示例:

msh />rw007_ble init central
263 - ble_cmd_init
start ble central

注意:目前仅支持central主机模式

(3) RW007 扫描附近的BLE设备 输入命令:

rw007_ble scan 

测试示例:

msh />rw007_ble scan
318 - ble_cmd_scan
​
resp_type: 1, len: 59
RW007_BLE_NTF_TYPE_DISCOVER
received advertisement; event_type=0 rssi=-46 addr_type=0 addr=ee:dd:ff:ee:cc:aa
mfg_data = 02 01 06 03 03 f0 ff
​
resp_type: 1, len: 83
RW007_BLE_NTF_TYPE_DISCOVER
received advertisement; event_type=4 rssi=-47 addr_type=0 addr=ee:dd:ff:ee:cc:aa
mfg_data = 1e 09 42 4c 45 5f 54 45 53 54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

可以从扫描结果中看到mac地址为ee:dd:ff:ee:cc:aa的设备,这个设备为前面通过串口设置BLE模块的MAC地址,后面将以这个地址进行连接设备。

(4)RW007连接BLE蓝牙设备 通过rw007_ble connect命令连接BLE设备 输入命令:

rw007_ble connect ee:dd:ff:ee:cc:aa

测试示例:

msh />rw007_ble connect ee:dd:ff:ee:cc:aa
341 - ble_cmd_connect
str_addr: ee:dd:ff:ee:cc:aa
mac addr: aa:cc:ee:ff:dd:ee
msh />resp_type: 1, len: 52
RW007_BLE_NTF_TYPE_CONNECT
type: 0, status: 0, conn_handle: 1
​
resp_type: 1, len: 44
RW007_BLE_NTF_TYPE_CONNECT_DESC
our_id_addr: c9:47:8c:42:00:48
peer_id_addr: aa:cc:ee:ff:dd:ee
​

(5)RW007向蓝牙设备发送数据 由于目前大部分BLE设备通过UUID进行数据的收发. 从上面的 UUID说明可知,特征 1 的UUID“FFF1”,特征是“WRITE”“NOTIFY”,这里可以直接使用FFF1作为测试的UUID. 输入命令:

rw007_ble write_uuid 1 fff1 Hello,BLE_TEST

测试示例:

msh />rw007_ble write_uuid 1 fff1 Hello,BLE_TEST
434 - ble_cmd_gattc_write_by_uuid
write conn_hanle:1 uuid:fff1 data:Hello,BLE_TEST
write rc:0
msh />

(6)RW007接收蓝牙设备的数据 输入命令:

rw007_ble notify_change 1 1 0xfff1

测试示例:

msh />rw007_ble notify_change 1 1 0xfff1
415 - ble_cmd_gatt_notify_change_by_uuid

到此,使用STM32F411-NUCLEO通过 RW007 BLE 功能测试BLE蓝牙模块数据传输功能完成。

RW007 高速 WiFi 模块使用BLE主机功能连接 BLE 从机设备示例相关推荐

  1. RW007 高速WIFI 模块 开启 BLE 功能说明

    RW007 高速WIFI 模块 开启 BLE 功能说明 由于RW007模块默认没有开启BLE功能,使用BLE功能,需要根据下面的步骤进行操作. 步骤1:更新 RW007 模块的固件 由于默认RW007 ...

  2. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(九)---制作APP

    前几篇文章讲解了如何在阿里云控制台上给设备登记"身份证",如何用MQTT.fx客户端模拟一个设备连接阿里云物联网平台,分析了arduino编程环境如何配置依赖库,在arduino ...

  3. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(三)---D1 wifi模块连接网络

    做硬件实验,切记不要奢望一蹴而就.哪怕是对照网络上的文章一步步操作,也不会一次成功.因为总有一些细节是自己容易忽略的,你要具备一定的基础知识才能将遇到的小问题排除,才能保证操作成功.甚至有的人操作系统 ...

  4. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(四)---阿里云物联网平台使用基础

    前面几个文章一直在分析arduino d1 wifi模块如何安装开发板库,如何编程,如何调用wifi操作库,如何运行第一个网络扫描程序. 现在突然跳转到介绍阿里云,为什么呢? 原因很简单,就是物联网设 ...

  5. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云

    前文提到,物联网设备在阿里云物联网平台登记了"身份证"之后,阿里云物联网平台上的设备就处于"未激活""离线"或者"在线" ...

  6. 《嵌入式 - 模块》RW007 WIFI模块联网与使用(一)

    开发环境: RT-Thread版本:4.0.3 操作系统:Windows10 RT-Thread Studio版本:2.0.1 开发板MCU:STM32F746ZGT6U(NUCLEO-F746ZG开 ...

  7. sever串口wifi拓展板_串口Wifi模块的工作原理和详细功能介绍

    在无线网络领域里面,无线wifi是最火的名词.对于串口wifi模块的工作原理是什么呢?串口wifi模块又有什么功能呢?wifi方案设计远嘉科技给大家讲解有关串口wifi模块的工作原理,以及详细功能介绍 ...

  8. WiFi选型_主设备WiFi模块,从设备WiFi模块功能介绍

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.主设备WiFi模块 主设备WiFi模块功能介绍 二.从设备WiFi模块 从设备WiFi模块功能介绍 前言 在物联网 ...

  9. 【毕设调试一】WiFi模块esp8266的调试

    硬件说明: 提示 :主控芯片STM32F103C8T6,与WiFi通信串口为串口二,打印串口为串口三(不使用串口一是当时设计时,方便pcb走线) 说明 :因为我是使用PCB画板的方式来走线的,并不是按 ...

最新文章

  1. 初探团队基于session的探索性测试
  2. python2和python3中的range区别
  3. [ATF]-MTK:一篇文章了解ATF原理
  4. 《Effective C++》item25:考虑写出一个不抛异常的swap函数
  5. c语言编辑密码程序,想程序高手求助--用C语言来编辑一个输入密码的程序
  6. Win11关机后自动开机怎么办 Win11关机后自动开机的解决方法
  7. Intellij_idea-15 常用快捷键
  8. Leetcode 208:实现Trie(前缀树)
  9. 什么是link标签?
  10. 计算机excel怎么删除重复项,excel怎么删除重复项
  11. RK平台ME3630模块GPS移植调试
  12. 浅谈海外工程项目投标策划
  13. 【java】删除文件夹及文件夹中的所有文件
  14. 第二篇 编写一个fluter应用
  15. 网络爬虫-爬取有效机构查询网(CNAS)全量数据
  16. SPSS与对应分析(类别简单型)
  17. 如何打出带圈的11?
  18. Error 1053: The service did not respond to the start or control request in a timely fashion.问题排查
  19. PyTorch模型保存与加载
  20. java String.format()的问题

热门文章

  1. 公开数据集(VPR、深度学习训练等):具有光照变化、视点变化、标签、辅助信息(GPS、IMU)
  2. 时间序列分析这件小事(四)--AR模型
  3. 自用Mac软件与效率快捷操作分享(本人黑苹果10.15.7)
  4. 解决找不到 css/modules/layer/default/layer.css?v=3.1.1 的问题
  5. 乐视超级电视无法进入界面的问题及解决办法,安装电视家
  6. 【Endnote】移动文献从一个分组到另外一个分组
  7. 自动化基础笔记--元素操作
  8. php 数组分块查找,laravel 控制器类DB的相关操作操作
  9. 【图像边缘检测】基于蚁群算法实现图像边缘检测matlab代码
  10. 2022年全球与中国通用继电器行业发展趋势及投资战略分析报告