搭建ESP32的Arduino开发环境
0x00 概述
ESP32-S3 芯片采用 40 nm 工艺制成,具有极佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。官方推荐的开发环境是ESP-IDF(Espressif IoT Development Framework),但是我搭建好后发现对于初学者这个开发环境还是比较难用的,因为很多步骤涉及到在终端里进行操作。虽然在VS Code中配置会稍微简单一点,但是使用起来还是有一些难度的。所以对于初学者我认为先在Arduino环境中可以正常开发后,再转向ESP-IDF开发会比较容易接受,因为在ESP-IDF环境下开发代码稍微比arduino下开发难一点,但是好处是很多新功能是优先在IDF中完成的,arduino环境下稍微滞后一点。
对于搭建arduino开发环境,分为ubuntu系统和windows系统来介绍。因为有些小伙伴喜欢在ubuntu环境下进行开发,有些喜欢在windows下,所以我就两个环境下都介绍下如何搭建,步骤其实也都差不多。搭建好的Arduino开发环境可以支持ESP32系列的所有SoC来使用,具体如下:

0x01 下载安装Arduino IDE
对于ubuntu和windows来说,都是需要从Arduino官方网站上下载的,下载地址如下:
https://www.arduino.cc/en/software

由于Arduino IDE版本在不断的更新中,在我写文章的此时官网上最新稳定版本是2.0.4版本。首先如果在windows系统中安装arduino ide的话,可以下载列表中第一个就可以“Windows Win 10 and newer, 64bits"。如果是ubuntu系统的话,列表中两个都可以下载,第一个是“Linux AppImage 64 bits(X86-64)”这个是一个不用安装,在增加了执行权限后,在ubuntu中双击就可以直接使用的,非常简单,但是唯一缺点是下载文件有点大。还可以选择安装“Linux Zip file 64 bits(X86-64)”,这个是需要解压才能正常使用的,稍微麻烦一点,但是下载文件体积稍微小点。下面是点击对应的下载链接后界面:

下载好对应的版本就可以来安装了,下面分开来介绍安装使用方法。
0x02 安装Arduino IDE软件
在windows系统中,点击“Windows Win 10 and newer, 64bits”链接进行下载,可以得到一个安装包exe文件,文件名是“arduino-ide_2.0.4_Windows_64bit.exe”,如果官方升级版本的话,那这个文件名中间单版本号就会更改。安装的话就比较简单了,可以根据提示直接安装就可以,在安装好后,我们可以把软件进行简单配置,如下图所示:


在ubuntu系统中如果下载的是“Linux AppImage 64 bits(X86-64)”,默认情况下,该文件无法直接双击运行,需要先增加执行权限,那可以按照如下操作方式来使用:


接下来就会打开Arduino IDE的界面,跟windows系统上界面是一样的,仍然建议需要先做一下上述配置再使用会更加方便。
如果在ubuntu系统中下载的是“Linux Zip file 64 bits(X86-64)”,那就需要先将其移动到/opt/目录下,再解压后配置一个软链接就可以正常使用了,具体操作如下图所示:

现在基本上算是安装好arduino-ide了,但是还不是特别好用,因为现在这个arduino-ide启动命令只能在安装目录下输入才能启动,其他目录下无法执行,如下图所示:

要想在任意目录下都能正常启动arduino-ide,那我们就需要在/usr/local/bin/下设置一个arduino-ide单软链接,这样我们就可以随时随地启动arduino-ide了,具体操作如下图所示:

0x03 在Arduino IDE中安装ESP32支持包
安装ESP32开发板的Arduino支持包也比较简单,我们只需要在Arduino IDE的“首选项”界面的最下面“其他开发板管理器地址”中输入如下地址就行,这里的地址分为两种,一种是ESP32稳定版本,一种是ESP32开发版本,链接分别如下所示:
ESP32稳定版本:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ESP32开发版本:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
我建议大家还是用稳定版本,因为开发版本虽然会有一些最新提交的代码,会有新功能,但是代码运行可能不稳定,所以我们还是用稳定版本更稳妥一点。


接下来就可以在开发板管理器中来安装ESP32相关的包,但是由于很多包都是从github上下载,国内这边下载情况不容乐观,正常步骤很难顺利下载好,所以我就将这些包都提前下载好了,上传到百度网盘中,这样我们下载后直接解压后将各压缩包放到指定目录下,再在arduino IDE中安装就跳过下载这个步骤,直接安装,所以就会顺利很多。这些相关的包百度网盘下载链接如下:
链接: https://pan.baidu.com/s/1WoBsLF-NxRF2rlMfyRlJ2g?pwd=tkxp

在ubuntu系统安装的话,可以先将下载好的linux_x64压缩包解压,看到里面有package_esp32_index.json,将其移动到~/.arduino15/目录下,然后将剩下的所有压缩包都放到~/.arduino15/staging/packages/目录下即可,具体可以按照如下步骤操作:

接下来我们就可以直接打开Arduino IDE中的“开发板管理器”,在其中直接来安装ESP32相关的支持包了,如下图所示:


在windows系统下安装步骤类似,也是需要将package_esp32_index.json文件和其他压缩包文件移动到指定目录下即可,如下图所示各自文件应该放置的目录:



在做完上述操作后,剩下的步骤就跟在ubuntu系统中操作一样的,可以打开arduino ide中的“开发板管理器”,然后输入“esp32”就可以找到对应需要安装的支持包,直接点击上面的安装即可,由于不用从github上下载压缩包,所以安装比较快,只需要耐心等待安装完成即可,具体如下图所示:

0x04 测试Arduino下ESP32开发环境
在ubuntu下和windows系统下测试基本上是一样的,我们将ESP32的开发板使用USB线接到电脑上,打开Arduino IDE软件,上面就会提示插入的ESP32设备,我们只需要选择对应的开发板就行,如果是特定功能的ESP32开发板,那就根据型号来选择就行。下图是我自己做的一款ESP32 S3开发板,所以我选择"ESP32S3 Dev Module"开发板就可以了。

接下来我们就可以来上传一个程序测试一下,一般我们就选择Blink这个闪灯程序来测试,这里我们只需要修改一下Led灯所连接的IO口就可以上传测试了。我的ESP32 S3开发板上在IO48上连接有一个红色LED灯,那我们就修改一下代码,如下图所示:


0x05 参考资料
[0]. ESP32-S3开发入门 ESP-IDF编程指南. https://docs.espressif.com/projects/esp-idf/zh_CN/v5.0.1/esp32s3/get-started/index.html
[1]. Arduino IDE官方下载地址. https://www.arduino.cc/en/software
[2].Arduino-ESP32官方文档. https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html#