[蓝牙] esp32模块作为蓝牙串口透传

[复制链接]
362|1
手机看帖
扫描二维码
随时随地手机跟帖
ly87802541|  楼主 | 2022-3-27 13:57 | 显示全部楼层 |阅读模式
最近为rtthread社区和国民技术n32g45x系列单片机联合举办比赛的关系,涉及到给n32g45x-evk开发板进行蓝牙通信扩展的问题。我这里最后用到的是esp32-devkit-v4乐鑫官方开发板,准备了两个小小的esp32开发板,因为命题为mesh组网。

不过,因为国民技术开发板和rtthread社区比赛参加人数众多的关系,我收到的是一块n32g45x-evk板子,所以mesh方案只好放弃先。

最终方案改为,n32g45x-evk开发板用串口连接一个esp32小模组,进行串口透传spp,来和手机端的蓝牙APP进行交互,实现控制n32g45x-evk开发板上的LED闪烁。

下面先处理一下esp32开发板,实现spp功能,并和手机APP先调试好数据的收发。

Esp32模块作为蓝牙通信使用的方式很多,乐鑫官方idf原生SDK,microPython固件和arduino库都可以实现。因为个人还没体验过arduino的开发模式,所以这里就用arduino2.0版本的IDE来试试看,esp32模块和开发板在arduinoIDE下是如何使用的。

首先到arduino官网https://www.arduino.cc/en/software/去下载2.0版本的arduinoIDE,目前还不是正式版,而是rc5。
图片8.png

下载后,直接安装好IDE,如下图显示。

图片9.png

图片10.png

安装完成后,点击完成按钮,arduinoIDE直接运行,如下图。

图片11.png

图片12.png

同时,可以看看安装目录下的文件结构,显然arduinoIDE是用nodejs+electron实现的。

图片13.png

因为IDE内建的是arduino生态的板子和有关的库,而esp32模块和开发板并不包含在内。这里还需要单独安装好esp32的工具链和官方SDK等工具,如下图。

图片14.png

图片15.png

乐鑫官方提供了多个版本,这里我试过好几个都很难下载,最后安装好的是1.03版本的包,如下图。

图片16.png

一切准备好后,就可以开始实现spp串口透传功能。主要是利用Serial2SerialBT这个库例程,如下图所示。

图片17.png

图片18.png

图片19.png

然后可以把这个例程简单修改下,实现我们要的spp功能,烧录则如下图。

图片20.png

图片21.png

图片22.png

烧录成功后,就可以用puttyPC机的串口工具来连接esp32开发板,显示如下图。

图片23.png

手机端运行一个蓝牙串口APP,如下图所示。

图片24.png

图片25.png

图片26.png

图片27.png

图片28.png

图片29.png

APP进行搜索,连接,配对,数据收发等,这里不再赘述。
以上步骤完成后,esp32模块已经实现了串口透传,便可以跟n32g45x-evk开发板直接用串口连接起来,进行数据通信了。
n32g45x-evk开发板上的程序开发,可以分为两步走,先用PC机上的USB串口工具如xcom等和n32g457-evk开发板调通串口通信功能,然后把USB串口模块替换为esp32模块就行了。
如果为了分辨USB串口通信和esp32ble串口数据透传的差异,可以在esp32ble串口透传功能spp的实现代码中,加上如“serial”之类的标志性字符串,以示区别。


使用特权

评论回复

相关帖子

ly87802541|  楼主 | 2022-3-27 14:00 | 显示全部楼层

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则