ESP32开发教程(1)— 搭建开发环境(Ubuntu简易版)

简介: ESP32开发教程(1)— 搭建开发环境(Ubuntu简易版)

前言

       本文基于 Ubuntu 20.04 和 ESP-IDF 5.1,搭建 ESP32 最新代码的编译环境。记录搭建环境的整个流程步骤和必要的安装命令。如果需要学习更加详细的搭建环境知识,可参考官方 ESP-IDF 编程指南

1 安装准备

编译 ESP-IDF 需要以下软件包支持,输入指令进行安装;

sudo apt-get install git wget flex bison gperf python3 python3-venv python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

以上软件包安装成功以后,我们还需要确定两个软件包的版本是否满足 ESP-IDF 的需求。

1.1 Python版本

目前,ESP-IDF 4.3 以上的版本都是基于 python3 进行构建。所以我们需要检查一下 python3 有没有安装成功。输入指令查看:

python3 --version

当输出 Python 3.x.x 时,python3 软件包安装成功。如果输出 Python 2.x.x,那么需要重新输入命令安装 python3,或者去 python 官网下载软件包手动安装。

1.2 Cmake版本

使用 ESP-IDF (5.1)需要 CMake 3.16 或以上版本,输入指令查看:

cmake --version

当输出 cmake version 3.x.x (高于 3.16)时,camke 软件包安装成功。

2 获取 ESP-IDF

在围绕 ESP32 构建应用程序之前,需要先获取乐鑫提供的软件库文件 ESP-IDF 仓库

获取 ESP-IDF 的本地副本:打开终端,切换到要保存 ESP-IDF 的工作目录,使用 git clone 命令克隆远程仓库。

打开终端,输入以下命令:

mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git

ESP-IDF 将下载至 ~/esp/esp-idf。

3 设置工具

除了 ESP-IDF 本身,还需要为支持 ESP32 的项目安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

ESP32 官方为我们提供了安装脚本 install.sh,输入以下指令安装:

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh esp32

上述命令仅仅为 ESP32 安装所需工具。如果需要为多个目标芯片开发项目,则可以一次性指定多个目标,如下所示:

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh esp32,esp32s2

如果需要一次性为所有支持的目标芯片安装工具,可以运行如下命令:

cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh all

ESP-IDF 工具安装器会下载 Github 发布版本中附带的一些工具,如果访问 Github 较为缓慢,可以设置一个环境变量,从而优先选择 Espressif 的下载服务器进行 Github 资源下载。

(上述我们已经使用了:export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets")

4 设置环境变量

此时,刚刚安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量。这可以通过 ESP-IDF 提供的另一个脚本进行设置。

在需要运行 ESP-IDF 的终端窗口运行以下命令:

. $HOME/esp/esp-idf/export.sh

这样比较麻烦,每次获取 esp-idf 环境,都需要输入一大段命令。我们可以为执行 export.sh 创建一个别名,具体步骤如下:

(1) 使用 gedit 打开 .bashrc 配置文件;

sudo gedit ~/.bashrc

(2) 复制并粘贴以下命令到 .bashrc 配置文件中;

alias get_idf='. $HOME/esp/esp-idf/export.sh'

粘贴完成后,使用 CTRL+S 快捷键保存内容,然后点击右上角“x”,关闭 .bashrc 文档。

(3) 输入指令,刷新配置环境并重启;

1. source ~/.bashrc
2. reboot

这样我们可以在任何终端窗口中运行 get_idf 来设置或刷新 esp-idf 环境。

5 开始创建工程

我们可以从 ESP-IDF 中 examples 目录下的 get-started/hello_world 工程开始。

get-started/hello_world 工程复制至本地的 ~/esp 目录下:

1. cd ~/esp
2. cp -r $IDF_PATH/examples/get-started/hello_world .

6 连接设备

将 ESP32 开发板连接到 PC(虚拟机中),输入指令查看开发板使用的串口。

sudo ls /dev/tty*

一般设备名称的最后一个,就是 ESP32 开发板在虚拟机上映射的串口名称(如 ttyUSB0 或者 ttyACM0)。记住该串口名,后续烧录和监控中需要使用。

7 配置工程

进入 hello_world 目录,设置 ESP32 为目标芯片,然后运行工程配置工具 menuconfig。

cd ~/esp/hello_world
idf.py set-target esp32
idf.py menuconfig

打开一个新工程后,应首先使用 idf.py set-target esp32 设置“目标”芯片。注意,此操作将清除并初始化项目之前的编译和配置(如有) 。

可以使用 menuconfig 设置项目的具体变量,包括 Wi-Fi 网络名称、密码和处理器速度等。hello_world 示例项目会以默认配置运行,因此在这一项目中,可以跳过使用 menuconfig 进行项目配置这一步骤。

8 编译工程

使用以下指令,编译烧录工程:

idf.py build

运行以上指令可以编译应用程序和所有 ESP-IDF 组件,接着生成引导加载程序(bootloader.bin)、分区表(partition-table.bin)和应用程序二进制文件(xxxx.bin)。

如果一切正常,编译完成后将生成 .bin 文件。

9 烧录到设备

运行以下指令,将刚刚生成的二进制文件烧录至 ESP32 开发板:

idf.py -p /dev/ttyUSB0 flash

如果一切顺利,烧录完成后,开发板将会复位,应用程序 “hello_world” 开始运行。

10 监视输出

可以使用 idf.py -p PORT monitor 命令,监视 “hello_world” 工程的运行情况。注意,不要忘记将 PORT 替换为第 6 步查看的串口名称。

idf.py -p /dev/ttyUSB0 monitor

运行该命令后,IDF 监视器 应用程序将启动。

此时,就可以在启动日志和诊断日志之后,看到打印的 “Hello world!” 了。

可使用快捷键 Ctrl+],退出 IDF 监视器

11 清除工程

当我们需要清除刚刚编译和配置的文件时,ESP-IDF 提供了两种清除指令。

11.1 idf.py clean

可以使用 idf.py clean 命令从生成目录中删除项目生成输出文件。

该项目将在下次构建时被完全重建。使用这个方法并不会删除构建文件夹中的 CMake 配置输出。

11.2 idf.py fullclean

运行此命令将删除整个 "build" 目录的内容。这包括所有的 CMake 配置输出。下次构建项目时,CMake 将从头开始配置它。注意,这个选项会递归地删除构建目录中的所有文件,所以要小心使用。项目配置不会被删除。

总结

       完成以上 ESP-IDF 编译环境的搭建和 hello_world 工程的编译—>下载—>运行—>监控。恭喜,您已完成 ESP32 的入门学习!



相关文章
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
235 50
|
7月前
|
存储 Ubuntu 关系型数据库
Ubuntu 20.04 卸载与安装 MySQL 5.7 详细教程
该文档提供了在Ubuntu上卸载和安装MySQL 5.7的步骤。首先,通过`apt`命令卸载所有MySQL相关软件包及配置。然后,下载特定版本(5.7.32)的MySQL安装包,解压并安装所需依赖。接着,按照特定顺序安装解压后的deb包,并在安装过程中设置root用户的密码。安装完成后,启动MySQL服务,连接数据库并验证。最后,提到了开启GTID和二进制日志的配置方法。
1639 5
|
2月前
|
开发框架 缓存 Ubuntu
dotnet开发框架+ubuntu防火墙命令+win11设置自动登录+阿里云短信发送限制
dotnet开发框架+ubuntu防火墙命令+win11设置自动登录+阿里云短信发送限制
45 3
|
2月前
|
Ubuntu Linux Python
如何利用wsl-Ubuntu里conda用来给Windows的PyCharm开发
如何在WSL(Windows Subsystem for Linux)的Ubuntu环境中使用conda虚拟环境来为Windows上的PyCharm开发设置Python解释器。
181 0
|
4月前
|
并行计算 Ubuntu PyTorch
Ubuntu下CUDA、Conda、Pytorch联合教程
本文是一份Ubuntu系统下安装和配置CUDA、Conda和Pytorch的教程,涵盖了查看显卡驱动、下载安装CUDA、添加环境变量、卸载CUDA、Anaconda的下载安装、环境管理以及Pytorch的安装和验证等步骤。
782 1
Ubuntu下CUDA、Conda、Pytorch联合教程
|
4月前
|
Ubuntu 网络协议
怎么在Ubuntu系统云服务器搭建自己的幻兽帕鲁服务器?幻兽帕鲁搭建教程
《幻兽帕鲁》是热门开放世界生存游戏,玩家收集并利用“帕鲁”进行多样活动。为享受多人模式,需自建服务器:选云主机(推荐4C/16G/5M起)、装Steamcmd及游戏环境。登录Steam购游戏后,输入服务器地址即可联机畅玩。
154 1
怎么在Ubuntu系统云服务器搭建自己的幻兽帕鲁服务器?幻兽帕鲁搭建教程
|
4月前
|
Ubuntu 网络安全 数据安全/隐私保护
ubuntu server连接wifi教程
本文提供了一个简化Ubuntu Server在Raspberry Pi系统上配置过程的脚本"config_ubuntu_server",包括自动和手动两种方法来设置root权限、SSH配置,并连接WiFi,同时支持无密码SSH访问,适合初学者和高级用户。
103 3
|
5月前
|
Ubuntu Java Linux
玩转Ubuntu零基础教程,让你成为Ubuntu高手。
本教程将介绍Ubuntu操作系统的各个方面。它探讨了Ubuntu桌面版的各种功能,风格和工作。比较我们通常会在Windows操作系统上找到的软件。有一些专注于Ubuntu服务器版本的章节。本教程还包括有兴趣了解Ubuntu的虚拟机和云端的人员的独立章节。
128 1
玩转Ubuntu零基础教程,让你成为Ubuntu高手。
|
4月前
|
开发工具 git 计算机视觉
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
41 0
|
4月前
|
Ubuntu Linux Shell
树莓派ubuntu镜像备份详细教程
本文是关于树莓派Ubuntu镜像备份的详细教程,包括如何获取镜像、使用PiShrink工具减小镜像体积的步骤和命令,以及相关参数的说明。
134 0
下一篇
DataWorks