前言
因为最近有个需求需要硬件支持,原本打算使用 Arduino Nano,后来在 Boot 大佬的建议下,买了某宇宙家的 ESP32C3 核心板,对比 Arduino Nano 价格便宜了一大半,而且自身就集成了 WIFI 和 BLE 模块,还不用另购蓝牙模块,可以说是性价比极高了。毕竟 9.9 包邮还要什么自行车?
安装
安装 Arduino IDE
下载地址:https://www.arduino.cc/en/software
打开上面下载地址后根据自己的系统下载需要的版本。
比如我使用的是 macOS,并且因为需要支持 ESP32C3 的芯片,所以我下载的是 Arduino IDE 2.0 RC
的 macOS 版本。
安装 ESP32 包
安装教程地址:https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
按照上述教程中的安装方法安装即可。
一开始我以为是 macOS 不兼容,导致直接在 Arduino IDE 中添加第三方包管理地址后自动安装 ESP32 包会安装失败。
所以按照上述教程中 macOS 小节的方法,直接下载后使用脚本“手动”安装成功。
后来才意识到,自动安装失败可能是因为我电脑上没有安装 python 环境导致的。
所以各位可以先尝试直接使用 Arduino IDE 自动安装,不行再使用手动安装。
手动安装
首先,按照教程所述,先检查你的 Sketchbook location (项目文件夹地址)是否更改过。
查看方式:依次点击
“Arduino” > “Preferences” > “Sketchbook location”
中文即,
Arduino IDE > 首选项 > 项目文件夹地址
然后在终端中输入代码后回车即可自动执行;
mkdir -p ~/Documents/Arduino/hardware/espressif && \
cd ~/Documents/Arduino/hardware/espressif && \
git clone https://github.com/espressif/arduino-esp32.git esp32 && \
cd esp32/tools && \
python get.py
注意把上述代码中的 ~/Documents/Arduino/
替换成你自己设置的项目文件夹地址。
上述脚本的作用就是,在 Arduino 项目文件夹下创建 /hardware/espressif/
并下载管理包文件到该文件夹中,最后执行 python 脚本安装。
注意:
- 电脑上需要安装 git 和 python
- 下载地址是 GitHub ,国内下载速度可能很慢,甚至直接下载不了,推荐使用 gitee 镜像,将 gitee 镜像地址
https://gitee.com/gengstrong/arduino-esp32
替换掉上述脚本中的https://github.com/espressif/arduino-esp32.git
即可
TIPS:其实 GitHub 上的仓库 gitee 都有镜像,但是直接搜都是搜不到的,告诉大家一个小技巧,你只要在 gitee 中选择新建一个仓库,然后选从 GitHub 导入,输入 GitHub 仓库地址后,它就会提示你已有镜像的地址。
安装驱动
驱动下载地址:CH343 USB UART Board
我一开始就犯了个错误,导致虽然 ESP32C3 管理包安装成功了,也能够成功连接上板子,但是就是无论如何无法烧录程序,一直提示 :
A fatal error occurred: Failed to write to target RAM (result was 01070000: Operation timed out)
Upload error:上传失败:上传错误:exit status 2
后来才意识到是没有安装驱动导致的。
我购买的这块板子使用的是 CH343 芯片将 TTL 串口转为 USB 接口,所以需要安装一个 CH343 的驱动。
最终 Google 找到一个驱动。下载地址在上面。直接下载安装就行。
对了,如何区分驱动是否安装成功也很简单,就看一下你的串口名称是否改变即可:
未安装驱动前,串口名称是类似 tty.usbmodemxxxx
,安装后变为 tty.wchusbserialxxx
例如,安装驱动后,在 Arduino 中看到的串口名称:
查看当前串口的方法:
cd /dev
ls tty.*
# 或者
ls cu.*
开始使用
- 选择开发版为 ESP32C3 Dev Module
- 更改设置,将 flash mode 改为 DIO,否则即使 IDE 提示代码上传成功,实际也并没有上传成功:
- Enjoy it!