基于Arduino构建NodeMCU蓝牙透传

2020-03-13  本文已影响0人  苏里南公牛

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

3. 安装ESP32的Ardunio库

在 D:\Portable\arduino-1.8.12\hardware 路径下,创建espressif\esp32目录,并将上一步中下载的ardunio-esp32-master.zip解压到这个目录下:

4. 安装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时工具下载时间过长(甚至不确定网络有没有问题、有没有在正常下载,因为没有进度显示),可以在下面留言,我将这三个工具共享出来,然后手动解压到目标目录即可。

5. 编译、烧写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块中的代码,如果要做成透传,需要将这些代码注释掉。

6. 功能验证

串口透传,走的串口不是上面步骤里烧固件的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串口,并演示了一个串口透传的案例。

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

上一篇下一篇

猜你喜欢

热点阅读