【知识分享】ubuntu22.04-ESP32环境搭建

news2024/9/23 17:22:42

文章目录

    • 一、概要
    • 二、环境及工具介绍
    • 三、名词解释
    • 四、环境搭建

一、概要

    手上有一块安信可的WIFI开发板,用的是乐鑫的ESP32模组。刚好最新装了双系统,貌似在Linux环境使用gcc编译器会快一些。
    万事开头难,要在Linux环境下进行开发工作,那就意味着需要在Linux环境中搭建ESP32适当的开发环境。本文主要是在官方搭建文档的基础上进行一些查缺补漏,适合新手阅读。

二、环境及工具介绍

    开发环境:操作系统ubuntu 22.04.1,内核5.19.0-42-generic
在这里插入图片描述
    开发板:NODEMCU-32 V1.3
在这里插入图片描述
    串口工具:USB转TTL
串口工具

三、名词解释

  • esp-idf:是为开发者提供了一整套的工具、库和API,方便快速构建和开发各种物联网设备和应用。可以理解为是跟Keil一样的工具,只是没有像Keil一样把界面做的那么好。
  • 环境:也称开发环境,指的是开发人员用来编写、测试和调试代码的综合工具和设置。而环境搭建指的是准备和配置一个特定的软件开发环境,以便开发人员可以在其中编写、测试和调试代码。

四、环境搭建

    这里选择官方推荐的方式,esp-idf的工具链。

    不同的ubuntu版本可能会有不同的问题出现,建议在进行工具安装前,先使用下面两个指令更新系统软件。在ubuntu系统下,按Ctrl + Alt + T,打开终端,输入以下指令更新软件。

sudo apt update
sudo apt upgrade

    首先需要安装esp-idf所需要的软件及工具,根据官方提示,输入以下指令进行安装。可以看出,这里面安装了git、python3、cmake等需要用到的工具,如果是ubuntu 22.04,其实像python3这类工具是系统自带的,不过这里再选择安装也不影响,系统会自动检查。

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

    接下来就是安装工具主体——esp-idf,打开终端,输入下面指令安装。细心的小伙伴应该会发现,这里用git获取工具有个地方跟官方文档不大一样,就是少了个–recursive参数。加上这个参数,下载esp-idf工具时,会自动下载路径下的子模块,但因为github这个网站直接下载文档速度有点慢,所以这里选择先下载主体,再单独更新子模块。如果连主体下载都太慢的小伙伴,可以百度搜下github.com的镜像网站,替换掉下面github.com即可。(子模块的更新不一定是根据这个命令里的网址来的,下面细说)

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

    下载完主体,就可以更新里面用到的子模块,更新之前最好切换一下源,切换方式是在esp-idf路径下,找到.gitmodules的文件(该文件为隐藏文件,需要选择查看隐藏文件才能找到)。
esp-idf
    打开该文件,把其中所有的…/…/替换成镜像源,保存文件。

在这里插入图片描述
    然后在当前路径下,输入指令更新子模块的源

git submodule sync

    再输入下面的指令更新子模块

git submodule update --init --recursive --progress

    如果这个更新完后,还发现有没更新的模块,则输入以下指令进行更新

git submodule --remote

    如果用这个指令一直更新失败,那就只能手动去下载子模块了,根据刚才打开的那个.gitmodules文件,找到对应的路径,如果对应路径下没有文件,则需要手动下载,下载路径就是文件中的"url ="后面的这个网址。

    以上工具安装完后,就可以安装对应芯片所需要的工具了,键入以下指令进行安装,如果前面工具安装都正常,这里就可以正常安装。其中./install.sh后面带的是对应开发板的芯片,esp32/esp32-s就选esp32,如果需要安装其他芯片系列,则加上对应的芯片即可,比如还需要esp32-s2,就修改指令为./install.sh esp32,esp32s2

cd ~/esp/esp-idf
./install.sh esp32

    安装完工具后,在开始编译工程之前,需要设置环境变量,idf工具里提供了.export.sh的快捷设置方式,但因为每次打开终端都需要设置一次,且每次都需要进入对应路径进行调用,所以官方也很亲切地提供了一种比较快捷的方式,即设置一个快捷变量供使用,将以下指令添加至xxx 文件中,后续打开终端只需要输入get_idf即可设置环境变量。

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

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

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

相关文章

探索数据结构:哈希表的分析与实现

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty’s blog 1. 哈希的引入 1.1. 哈希的概念 无论是在顺序结构还是在树形结构中&am…

mq-direct交换机

把消息分发给不同的人,不是所有人都收到 例如 已加入伙伴计划作者,发加入激励的消息,未加入伙伴计划的就发邀请的消息,不同的微服务发送不同的消息 交换机 direct交换机,要指定key,可以同时收到&#xf…

<数据集>鸟类识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:16287张 标注数量(xml文件个数):16287 标注数量(txt文件个数):16287 标注类别数:10 标注类别名称:[Chestnut Munia, Zebra Dove, Garden Sunbird, Collared Kingfish…

用基础项目来理解spring的作用

简介 spring官方的解释过于专业化,初学者可能比较难懂,接下来我将通过一个最基础的Java项目来尽可能的展示spring中的作用及spring的底层是如何来实现的。 项目结构 该项目是一个简单的JavaSE项目,没有maven或者tomcat等其他。只在控制台进…

【UE5】基于摄像机距离逐渐剔除角色

效果 步骤 1. 新建一个工程,在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…

node版本8.x→16.x,前端维护火葬场,问题及解决方案总结

为了后续的工程开发,我需要升级我的node,在此之前我的node版本是8,这个版本太老了,从8升级到16的跨度太大,对于以前的许多项目,产生了非常多维护方面的问题,历时四天终于全部解决了,…

python中的randint如何使用

python中的randint用来生成随机数,在使用randint之前,需要调用random库。random.randint()是随机生成指定范围内的整数,其有两个参数,一个是范围上限,一个是范围下限。 具体用法如下: import random print…

Redis系列之事务

概述 Redis事务提供一种将多个命令打包,然后一次性、按顺序地执行的机制,在事务执行的期间不会主动中断,服务器在执行完事务中的所有命令之后,才会继续处理其他客户端的其他命令。 三个重要的保证: 批量操作在发送E…

el-table中el-select俩列共用同一数据并且选择不能相同

需求:el-table中有el-select,el-select的下拉数据源是相同的,但是要同一行的俩列数据选择不相同,如果相同需要提示并且清空数据 1.效果 2.主要代码详解 主要是 change"handleChange(后人员, scope.$index, scope.row.new_use…

关于侵害用户权益行为app的通报的一些思考

8月16日上海市通信管理局官方微信公众号“上海通信圈”发布《上海市通信管理局关于侵害用户权益行为app的通报(2024年第一批)》。本次app通报为2024年第一批。内容显示本次共通报26款移动互联网应用程序涉及app和小程序。 应用来源:本次检测…

【深海王国】小学生都能玩的语音模块?番外1:ASRPRO控制继电器开关

Hi~ (o ^ ^ o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛苦工作的你今天也辛苦啦(/≧ω) 今天大都督为大家带来语音模块的番外系列——ASRPRO控制继电器开关,帮你学会使用ASRPRO控制继电器开关电器元件,let’s go! 番外…

学习大数据DAY39 基于 hive 的 SQL语句

目录 hive 介绍以及应用 上机练习 hive 介绍以及应用 --查看数据库 show database db_hive --过滤查看数据库 show databases like db_hive*; --查看详情 desc database db_hive desc database extended db_hive; --查看表 show tables; --查看表列详情 desc dept…

小学二年级数学精选试题

小学二年级数学精选试题

leetcode 089 打家劫舍

leetcode 089 打家劫舍 题目 一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定…

【计算机网络】网络版本计算器

此前我们关于TCP协议一直写的都是直接recv或者read,有了字节流的概念后,我们知道这样直接读可能会出错,所以我们如何进行分割完整报文?这就需要报头来解决了! 但当前我们先不谈这个话题,先从头开始。 将会…

GlobalMapper-大疆的航点kmz转航线文件展示空间轨迹

0序: 在大疆遥控器或者司空2中设置航线,都是一个个的航点,如果把航点转为航线,在三维地球中显示其空间效果。用于分析和实际物体的距离,或者展示该航线都做了哪些方面的考虑。 如何把一堆点连城一条线? 本…

进程相关命令和函数

查询进程相关命令 ps aux 查看进程相关信息 1.就绪态、运行态 R 2.睡眠态、等待态 可唤醒等待态 S 不可唤醒等待态 D 3.停止态 T 4.僵尸态 Z 5.结束态 top 根据CPU占用率查看进程相关信息 kill 和killall kill和killall发送一个信号 kill -2 PID 15 发送信号PID对应的进程&…

又一实锤 美元丧钟敲响

文|琥珀食酒社 作者 | 积溪 咱们又要见证历史了 之前我说美元霸权快终结了 没想到马上又来了一个实锤 就在刚刚 “159个国家将采用金砖国家新支付系统“的消息 冲上热搜 据大毛媒体爆料 这个新支付系统 将在今年10月份上线 替代现有的swift系统 这是要挖…

nginx的详细介绍及配置

Nginx(发音为“engine X”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx以其稳定性、丰富的功能集、简单的配置和低资源消耗而闻名。它最初由俄罗斯人Igor Sysoev编写,并于2004年首次公开发布。N…

解决旧版CMS内容管理无法登录的问题

最近遇到了输入正确的账户密码,旧版的CMS内容管理的平台提示登录成功却无法跳转的问题 遇到这种情况请不要慌!!! 请按照下面的步骤解决问题: 1.点击账号管理 2.点击右上角的返回旧版控制台 3.点击cloud1环境 4.点击扩…