ESP32:0-MacOs中ESP32开发环境构建
- 1 ESP32:0-MacOs中ESP32开发环境构建
终于还是鼓起勇气再次开始学习ESP32,ESP32和Arduino的入门套件都买过好几套了,但一直都没有好好的学过。 实不相瞒,第一次学这个东西甚至还是在初中或者是高中,总之是一件非常久远的事情了,现在已是而立之年了。希望在AI时代,可以在AI的帮助下快速入门神秘的嵌入式开发吧。之前接触单片机,更多的是51单片机或者Arduino,至于为什么重新学这个要从ESP32开始,那么无非就是ESP32便宜的价格,自带的Wifi与蓝牙能力,包括在HA上ESPHome的方便,都是理由。
工具链安装
安装ESP32的工具链 esp-idf,在终端找一个合适的目录执行以下命令。有条件的话还是找个Github的加速镜像吧,这个东西实在是太大了,我的Github下载速度其实已经不算慢到没法用的了,但是直到我陪基金玩了一圈回来,还是没下载完。后来等到第二天才执行的install命令。
# 下载
git clone --recursive https://github.com/espressif/esp-idf.git
# 安装
cd esp-idf && sh install.sh
跑完安装命令后,会输出一个提示,提示下一条命令。
# 上一条命令的提示,不要执行!!!
All done! You can now run:
. ./export.sh
# 执行命令
. ./export.sh
继续根据提示跑下一个命令,激活环境
# 上一条命令的提示,不要执行!!!
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:
idf.py build
# 执行命令
idf.py build
根据以上提示跑命令会报错,这个是构建命令,所以需要cmake,需要安装一下前置依赖之后再继续。当然还有macos的传统艺能,accept一下。
# 同意xcode命令执行
sudo xcodebuild -license accept
# 安装cmake和ninja
brew install cmake ninja
# 验证cmake版本
cmake --version
# 重新激活环境
. ./export.sh
# 进入案例目录
cd examples/get-started/hello_world
# 重新执行构建命令
idf.py build
执行完成之后会提示可以flash了,安装的时候暂时还没插板子,就没有flash了。这里验证了构建过程可用,后面找一个例子验证一下全流程即可。
推荐,创建一个环境激活的别名
echo "alias get_idf='. /Users/zanks/Documents/02_sdk/01_lang/esp-idf/export.sh'" >> ~/.zshrc && source ~/.zshrc
HelloWorld:点亮LED
关于编辑器,我只能说延续了软件开发者的老派选择,我的选择是VsCode。而且在未来的编码中,由于本人难以启齿的CPP和C功底,应该会大量选择使用micropython来进行编码。
烧录MicroPython.bin
首先需要在Micropython的官网下载一个ESP32-C3的通用版本,我手里拿的是一块非常小巧可爱的C3 Mini,只需要10元。下载地址
我的板子买来之后可能是有测试的程序,手动做了一次清理,连上电脑,执行命令
# 清理程序,注意需要按住BOOT后接入电脑
esptool erase-flash
# 烧录MicroPython.bin
esptool --baud 460800 write-flash 0 ~/Downloads/ESP32_GENERIC_C3-20260406-v1.28.0.bin
物理电路构建
物理电路的构建也是非常简单,首先先测试一下关于长通电情况下的元器件完备性与电路的正确性。
注意安全,不要长时间短路,因为真的会发热起火!顺便记录一下面包板的规则,第一次搭建电路啥也不记得了,插拔了好久才点亮。以面包板上刻印的字体向上为正确摆放方向。也就是面包板是一个横边短,纵边长的矩形。左右两侧的电源槽,在纵向上保持联通,可以想象是一个导线铺在下面。中间部分分为左右两个槽,横向分别为abcde和fghij总共10列依次排开,数着为数字,表示行数,在这里,每一行是联通的,但跨槽不联通。也就是a10与e10是联通的,但a10与a11,a10与j10不联通。基于这个特性,元器件基本就是两个脚是纵向分布,否则就被地下铺着的导线短路了。
整体的物理电路就是串联两个元器件,电阻选220欧的,LED可以正常亮度点亮。

编写代码
使用VsCode + MicroPico插件,创建一个main.py文件,写入以下代码。我连的是GPIO5,所以定义了5为输出口。
from machine import Pin
import time
led = Pin(5, Pin.OUT)
while True:
led.value(1)
time.sleep(0.5)
led.value(0)
time.sleep(0.5)
在左下角点一下run,就可以看到灯可以正常点亮了。
现在可以稍微改动一下电路,我改成了4路并联,分别连接GPIO5、6、7、8,然后简单改一下代码,实现一个流水灯效果
from machine import Pin
import time
# 初始化
led_pins = [5, 6, 7, 8]
leds = [Pin(pin, Pin.OUT) for pin in led_pins]
# 流水灯主循环
while True:
for led in leds:
led.value(1) # 点亮当前 LED
time.sleep(0.2) # 停留 0.2 秒
led.value(0) # 熄灭当前 LED
点击run,就可以看到4个灯会依次亮起
文章标题:ESP32:0-MacOs中ESP32开发环境构建
作者:
文章链接:https://www.zanks.link/post/esp32-0-macoszhongesp32kai-fa-huan-jing-gou-jian_zanks
许可协议:CC BY-NC-ND 4.0
本作品采用知识共享署名 - 非商业性使用 - 禁止演绎 4.0 国际许可协议进行许可。您可以自由复制、分发本作品,但必须标明原作者,不得用于商业目的,且不得修改原作品。