美文网首页
基于Arduino构建NodeMCU蓝牙透传

基于Arduino构建NodeMCU蓝牙透传

作者: 苏里南公牛 | 来源:发表于2020-03-13 17:24 被阅读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串口,并演示了一个串口透传的案例。

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

    相关文章

      网友评论

          本文标题:基于Arduino构建NodeMCU蓝牙透传

          本文链接:https://www.haomeiwen.com/subject/nhjjshtx.html