Ubuntu下ESP32-IDF开发环境搭建

Ubuntu下ESP32-IDF开发环境搭建

文章目录

  • Ubuntu下ESP32-IDF开发环境搭建
    • 一、前言
    • 二、软件安装
    • 三、开发环境搭建
      • 3.1 ESP-IDF安装:
      • 3.2 安装编译工具:
    • 四、编译并烧录代码
    • 五、ESP32代码编辑工具

在这里插入图片描述

一、前言

​ 开发ESP32,我们首先就要安装开发环境,其实市面上有超级多的开发和编译工具,都可以编译ESP32工程,在这里我们使用ESP-IDF进行开发,因为ESP-IDF 库是官方目前主推的库,最新的特性更新以及 bug 修复都在 ESP-IDF 上进行发布,而且大部分源码是开源的,大家可以随意获取和查看。基于 ESP-IDF开发还不够,我们还需要开发工具,ESP-IDF 可以在 windows、linux、mac 上进行开发,但官方主推的还是 linux 平台上开发,下面我们就开始搭建环境。

二、软件安装

在这里插入图片描述
在这里插入图片描述

我们需要准备上面四个软件:

  1. VS Code:代码编辑工具。
  2. VMware:虚拟机软件。
  3. MobaXterm:是一款免费的终端工具,可以通过SSH远程登陆到我们的虚拟机上。
  4. ubuntu:我们选用ubuntu作为Linux系统,这也是官方主推的,这里使用ubuntu20.04桌面版,其他的版本可能会有问题。

具体的安装方法在之前我们开发Linux的时候都有安装过,这里我们直接使用

三、开发环境搭建

3.1 ESP-IDF安装:

现在我们把我们的虚拟机打开,并通过MobaXterm SSH远程登陆:

在这里插入图片描述

登陆之后我们通过下面命令安装一些必要的工具:

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

接下来我们把乐鑫的ESP32-SDK下载下来,我们首先创建一个文件夹,并且进入到这个文件夹:

mkdir ESP32
cd ESP32

在下载SDK之前,我们首先需要下载一个工具,因为 github 的访问问题,我们很难直接从 github 上拉取完整的 ESP-IDF 源码,但乐鑫官方提供了一个下载工具,我们通过这个工具可以轻松的获取到 ESP-IDF:

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

在这里插入图片描述

我们进入这个文件夹,执行gitee工具切换镜像脚本:

cd esp-gitee-tools
./jihu-mirror.sh set

在这里插入图片描述

执行完毕之后我们退回到ESP32目录,然后我们就可以下载ESP32-SDK了:

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

在这里插入图片描述

接下来我们进入esp-idf目录下,把ESP-IDF的版本切换成V5.2:

cd esp-idf
git checkout v5.2

在这里插入图片描述

因为我们更新成V5.2版本,然后我们将相应的子模块也切换到对应的版本上:

git submodule update --init --recursive

在这里插入图片描述

这样就切换完成了,我们输入下面命令查看一下:

 git branch

在这里插入图片描述

在实际的操作过程中我们发现安装一些包的时候速度有点慢,我们输入下面两条命令切换源:

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
pip config set global.trusted-host mirrors.aliyun.com

在这里插入图片描述

3.2 安装编译工具:

我们直接在esp-idf目录下执行下面命令:

../esp-gitee-tools/install.sh

在这里插入图片描述

接下来我们返回到ESP32路径下,然后从git上下载我们的例程源码:

cd ..
git clone --recursive https://gitee.com/vi-iot/esp32-board.git

在这里插入图片描述

我们可以看到这里有很多例程源码,我们都是可以单独编译的,在编译之前我们要设置一下ESP-IDF的环境变量:

cd ..
cd esp-idf
source export.sh

在这里插入图片描述

四、编译并烧录代码

在前面我们已经把我们的开发环境搭建好了,也安装了编译工具,接下来我们就开始编译一下我们的例程代码:

cd esp32-board			//进入到我们的例程源码路径下
cd helloworld			//进入其中一个工程路径
idf.py build			//编译代码

在这里插入图片描述

我们可以看到编译完成了,因为我们是第一次编译,所以时间会比较久,然后我们将我们的开发板插到电脑上:

在这里插入图片描述

我们的虚拟机检测到开发板插入,我们选择连接到虚拟机,然后虚拟机的右下角就会出现这个标识:

在这里插入图片描述

然后我们输入下面指令把代码下载到我们的开发板:

idf.py flash

在这里插入图片描述

我们发现我们的权限并不够,然后我们该怎么办呢?输入下面命令我们直接把我们dev路径下的ttyUSB0改成最高权限:

sudo chmod 777 /dev/ttyUSB0

这样的方法有一个漏洞,当我们重新拔插开发板的时候,再次烧录它还是会提示权限不够,那我们通过下面一个指令解决这个问题:

sudo usermod -aG dialout usrname

这里的usrname需要换成自己的用户名,然后重启即可!

在这里插入图片描述

我们可以看到成功将我们的例程下载进去了,那我们如何查看调试信息呢?通过下面这个指令:

idf.py monitor		//查看串口调试信息
ctrl+]				//退出

五、ESP32代码编辑工具

在上面我们已经在ubuntu上搭建好了IDF开发环境,同时我们也可以编译和烧录我们的代码,那我们就要在VS Code上编写我们的代码,在之前的Linux开发中我们的VS Code已经通过远程SSH的方式连接到了我们的虚拟机上了,我们可以在上面编写我们的代码:

在这里插入图片描述

但是我们开发ESP32是基于官方的IDF SDK来开发的,里面封装了大量的API供我们调用,我们在编写代码的时候如何查到我们这些API函数呢?

需要安装一个插件:ESP-IDF(注意:要安装到我们的虚拟机上,不要安装到本机)
在这里插入图片描述

查看API原型:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式: vim 文件名 •如果文件存在,进入编辑状态对其进行编辑 •如果文件不存在,创建文件并进入编辑状态 例: [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式: 命令模式&a…

5个实用的设计相关的AI网站

在这个日新月异的数字时代,我们不断面临着新的挑战和机遇。随着人工智能(AI)技术的飞速发展,越来越多的AI工具开始融入到设计相关的工作流程中,极大地提升了工作效率和创作能力。今天,我非常兴奋地向大家介…

云手机群控能用来做什么?

随着云手机的发展,云手机群控技术逐渐从小众的游戏多开工具,发展为涵盖多个领域的智能操作平台。不论是手游搬砖、短视频运营,还是账号养成等场景,云手机群控都展现出了强大的应用潜力。本文将为大家详细解析云手机群控的应用场景…

数据结构(哈希表(中)纯概念版)

前言 哈希表(Hash Table)是计算机科学中的一个基础而重要的数据结构,它广泛评估各种算法和系统中,尤其是在需要快速查找、插入和删除操作的场景中。由于其O( 1)的平均时间复杂度,存储表在性能要求较高的应用中表现得非…

Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明)

教程概述 本教程先是幽络源初步教学分析掌阅书籍的网络结构,最后提供完整的爬取源码与使用说明,并展示结果,切记勿将本教程内容肆意非法使用。 原文链接:Python使用requests_html库爬取掌阅书籍(附完整源码及使用说明…

水库大坝三维模型开发bim篇

效果图 开发过程 使用了bimface 插件上传做好rvt模型到bimface工程引入bimface相关的插件代码加载模型自定义目录树定位构件闪烁构件展示构件信息 代码 技术交流加V:bloxed appKey 和appSecret 换成自己的就行 <template><div class"box-bim w100" ref&…

CSharp: Oracle Stored Procedure query table

存储过程查询postgreSQL,Oracle 和sql server,Mysql 有区别。程序调用也是有区别。 oracle sql script: CREATE OR REPLACE PROCEDURE procSelectSchool(paramSchoolId IN char,p_cursor OUT SYS_REFCURSOR ) AS BEGINOPEN p_cursor FORSELECT *FROM SchoolWHERE SchoolId p…

C语言基础——指针(4)

一&#xff0e; 字符指针变量 字符指针变量的使用和整型指针变量的使用方法相似&#xff0c;以下是其基本使用方法的例子&#xff1a; &#xff08;1&#xff09;字符指针变量还有一种使用方法&#xff1a; const char* p "abcd" 需…

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图&#xff0c;替换第一行的新编码&#xff0c;把41230441044替换为41230441000 替换代码如下&#xff…

【C语言程序设计——选择结构程序设计】预测你的身高(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 1、输入数值 2、选择结构语句 3、计算结果并输出 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务&#xff1a;编写一个程序&#xff0c;该程序需输入个人数据&#xff0c;进而预测其成年后的身高。 相关知识 为了完成本…

【自动化测试】windows下安装Selenium浏览器界面测试工具

Date: 2024.12.23 10:15:53 author: lijianzhan 简述&#xff1a;这篇教程详细介绍了如何在Windows环境下安装selenium&#xff0c;并设置Chrome浏览器驱动。什么是Selenium&#xff1f;Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端…

前端网络之【浏览器跨域问题分析与解决方案】

文章目录 同源策略同源与异源跨域的限制场景解决方案 CORS 请求分类 简单请求预检请求 注意点一 【关于Cookie】注意点二 【关于跨域获取响应头】 JSONP 基本流程 代理服务器 如何选择对应方案 同源策略 **同源策略是一套浏览器的安全策略机制&#xff0c;当一个源的文档和脚…

老旧小区用电安全保护装置#限流式防火保护器参数介绍#

摘要 随着居民住宅区用电负荷的增加&#xff0c;用电安全问题日益突出&#xff0c;火灾隐患频繁发生。防火限流式保护器作为一种新型电气安全设备&#xff0c;能够有效预防因电气故障引发的火灾事故。本文介绍了防火限流式保护器的工作原理、技术特点及其在居民住宅区用电系统…

论文复刻:ESG表现对企业价值的影响机制研究——A股上市公司证据(2009-2023年)

参照王波&#xff08;2022&#xff09;的做法&#xff0c;对来自软科学《ESG表现对企业价值的影响机制研究——来自我国A股上市公司的经验证据》一文中的基准回归部分进行复刻 以中国2009-2023年A股上市公司为研究样本考察企业的环境、社会和治理&#xff08;ESG&#xff09;表…

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代&#xff0c;小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时&#xff0c;首先要明白它的核心目标&#xff1a;便捷、安全。用户希望在最短的时间内找到需要的物品&#xff0c;而商家则希望通过这…

[2003].第2-01节:关系型数据库表及SQL简介

所有博客大纲 后端学习大纲 MySQL学习大纲 1.数据库表介绍&#xff1a; 1.1.表、记录、字段 1.E-R&#xff08;entity-relationship&#xff0c;实体-联系&#xff09;模型中有三个主要概念是&#xff1a; 实体集 、 属性 、 联系集2.一个实体集&#xff08;class&#xff09…

git推送本地仓库到远程(Gitee)

目录 一、注册创建库 二、创建仓库 三、推送本地仓库到远程 1.修改本地仓库用户名和邮箱 2.本地库关联远程仓库 3.拉取远程仓库的文件 4.推送本地库的文件 5.查看远程仓库 四、远程分支查看 1.查看远程分支 2.修改test.txt文件 一、注册创建库 Gitee官网&#xff1…

GoZero框架接入数据库引擎Gorm 并实战:构建简单的 CRUD 业务API

GoZero 是一个高性能的微服务框架&#xff0c;它基于 Go 语言开发&#xff0c;提供了丰富的工具支持&#xff0c;能够帮助开发者快速构建可扩展、易维护的应用。Gorm 是 Go 语言中常用的 ORM 库&#xff0c;它帮助我们简化数据库操作&#xff0c;使用面向对象的方式进行增删改查…

KNN分类算法 HNUST【数据分析技术】(2025)

1.理论知识 KNN&#xff08;K-Nearest Neighbor&#xff09;算法是机器学习算法中最基础、最简单的算法之一。它既能用于分类&#xff0c;也能用于回归。KNN通过测量不同特征值之间的距离来进行分类。 KNN算法的思想&#xff1a; 对于任意n维输入向量&#xff0c;分别对应于特征…

探索Flink动态CEP:杭州银行的实战案例

摘要&#xff1a;本文撰写自杭州银行大数据工程师唐占峰、欧阳武林老师。将介绍 Flink 动态 CEP的定义与核心概念、应用场景、并深入探讨其技术实现并介绍使用方式。主要分为以下几个内容&#xff1a; Flink动态CEP简介 Flink动态CEP的应用场景 Flink动态CEP的技术实现 Flin…