基于Arduino构建NodeMCU蓝牙透传

why

这又是一篇软件的安装及卸载类水文。
本文的目的是,记录并阐述如何用Ardunio IDE对ESP32 NodeMCU板子刷入蓝牙BLE串口透传固件。当然,把NodeMCU作蓝牙串口透传用是一种资源浪费,但对于手上没有蓝牙透传模块而只有NodeMCU的应急场景,还是有点用的。
已经知道如何做的,可以关闭本文节省时间。

how

  1. 安装Ardunio IDE
    既然是利用Ardunio IDE来进行固件的刷入,第一步当然是下载Ardunio IDE。
    下载地址:https://www.arduino.cc/en/main/software
    在这里插入图片描述
    建议下载zip版,绿色,解压即用。我这里假设你将Ardunio IDE下载并解压到 D:/Protable 目录下:
    在这里插入图片描述
  2. 下载ESP32的Ardunio库
    下载地址:https://github.com/espressif/arduino-esp32
    用git clone或者Download ZIP的模式皆可:
    在这里插入图片描述
    这里我假设你是用Download ZIP模式下载的,并且下载后的文件为arduino-esp32-master.zip。

注意:
更加推荐的做法是用下面这个命令来拉取代码:

git clone --recursive https://github.com/espressif/arduino-esp32.git
git submodule update --init
  1. 安装ESP32的Ardunio库
    在 D:\Portable\arduino-1.8.12\hardware 路径下,创建espressif\esp32目录,并将上一步中下载的ardunio-esp32-master.zip解压到这个目录下:
    在这里插入图片描述

  2. 安装ESP32的构建工具

     执行 D:\Portable\arduino-1.8.12\hardware\espressif\esp32\tools 目录下的get.exe:
    

在这里插入图片描述
我估计你在下载xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip工具时,大概率会卡很久,因为这个工具非常大。
实际上,这个get.exe本质就是下载esptool-2.6.1-windows.zip、mkspiffs-0.2.3-arduino-esp32-win32.zip、xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip这三个工具到dist目录,并分别将上述三个zip解压到tools目录下的esptool、mkspiffs、xtensa-esp32-elf:
在这里插入图片描述
在这里插入图片描述
知道了这个get.exe的本质就好了,如果有读者在执行get.exe时工具下载时间过长(甚至不确定网络有没有问题、有没有在正常下载,因为没有进度显示),可以在下面留言,我将这三个工具共享出来,然后手动解压到目标目录即可。

  1. 编译、烧写NodeMCU蓝牙透传固件
    ESP32 NodeMCU的microUSB接口连接了一块板载CP2102串口芯片,安装好CP2012驱动。我假设将NodeMCU的microUSB口接入到电脑USB口(注意不是板子上的TX/RX引脚,烧录固件用的是microUSB的串口)后对应的是COM6。
    打开Ardunio IDE(D:\Portable\arduino-1.8.12\arduino.exe):
    Tools下,Board选中NodeMCU-32S,Port选中COM6:
    在这里插入图片描述
    打开蓝牙串口透传示例工程,File/Example/ESP32 BLE Ardunio/BLE_uart:
    在这里插入图片描述
    这就是BLE串口透传的固件代码,编译、烧写(本质上是Ardunio IDE调用的esptool.py通过串口烧写)即可:
    在这里插入图片描述
    注意:
    此固件代码,在收到数据的前后会打印一些提示信息,如上图中#if 0块中的代码,如果要做成透传,需要将这些代码注释掉。

  2. 功能验证
    串口透传,走的串口不是上面步骤里烧固件的microUSB的那个串口,而是板子上TX/RX接口。用USB转串口的板子,将TX、RX接入到电脑上,在串口调试工具里打开这个串口。
    要验证蓝牙发送功能的话,可以下载nrf connect app,这是nordic官方出的BLE调试工具(或者其他的BLE调试app或者小程序)。
    打开手机的蓝牙,在BLE app中连接UART Service节点:
    在这里插入图片描述
    在Services标签页中的Nordic UART RX Characteristic服务中,点击那个向上的箭头,发送数据,选择Uint8,发送内容为97(字母"a"的ASCII编码),点击Write:
    在这里插入图片描述
    在这里插入图片描述
    可以在电脑上观察到通过蓝牙透传收到的串口数据(我这里是注释掉了上面所述的提示信息,因而只有一个“a”即接收到的数据):
    在这里插入图片描述

summary

本文讲述了如何用Ardunio IDE构建(也可以是开发)NodeMCU固件,烧写用的是板载的usb串口,并演示了一个串口透传的案例。

整体流程相对来说还是比较简单的,希望对大家有用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值