当前位置: 首页 > news >正文

ESP开发环境搭建

一、windows中搭建

 esp-idf tool(可选),下载连接如下:https://dl.espressif.com/dl/esp-idf/?idf=4.4

下载安装tools后进入vscode进行插件安装(未离线下载idf工具也可以通过第二步通过插件下载安装)

1. vscode安装编译环境

ESP-IDF 需要安装一些必备工具,才能围绕ESP32 构建固件,包括Python、Git、交叉编译器、CMake 和Ninja 工具等。

最简单的方式是从如下网址下载ESP-IDF 工具安装器,安装器包含了相应的开发工具链以及最新稳定版本的ESP-IDF。

也可以直接从git下载通过安装包安装idf(地址如下)

espressif/esp-idf at release/v5.0 (github.com)

在VSCODE菜单中选中查看->命令面板,搜索:ESP-IDF:Configure ESP-IDF extension 进去配置

选择第二种按要求进行安装 等待时间偏长。

2、ESP-IDF基于 C/C++ 语言开发,在components目录下集成了大量功能丰富的软件组件。

这些软件组件和功能主要有如下部分:

FreeRTOS实时操作系统,可支持多核,具有基于功能的堆分配器。

标准编程接口,包含 POSIX 线程和其他 POSIX API、BSD 套接字、线程安全的 C/C++ 标准库,支持虚拟文件​​系统。

外设驱动程序,包含SPI、I2C、UART、GPIO、I2S、ADC、DAC、电容触摸板、定时器、LED和电机PWM、RMT、脉冲计数器、CAN/TWAI、SD/eMMC/SDIO主机和SDIO从机、以太网驱动器。

WiFi驱动程序,支持WiFi Mesh协议,ESP-NOW点对点协议,ESP-LR远程协议等等。

经典蓝牙和低功耗蓝牙,包含蓝牙控制器和蓝牙协议栈,其中蓝牙协议栈Bluedroid支持经典蓝牙和低功耗蓝牙双模,而NimBLE仅支持低功耗蓝牙。

LwIP TCP/IP协议栈,可支持有线网和WiFi的互联网连接和应用。

电源管理,支持MCU低功耗模式以及 WiFi、蓝牙低功耗模式的电源管理框架。

存储管理,支持分区管理器、容错和日志结构的键值存储 (NVS),支持加密、FAT和 SPIFFS文件系统。

安全功能,具备受硬件支持的安全性能,如 Flash 加密和安全启动,为 RSA、SHA 和 AES 提供加密加速器支持。

网络配置管理,支持Bluetooth LE、WiFi 和其它带外机制的设备加载统一配置框架。

开发者可以根据开发需求,自行添加第三方或者自己的组件,添加的方式可参考components目录下ESP-IDF组件的实现方式或者参考乐鑫官方文档ESP-IDF编程指南。

也可以直接从官方示例中查看:API 参考 - ESP32-C2 - — ESP-IDF 编程指南 latest 文档

3、编译示例文件:ctl shift + p

编译成功后的占用

4、支持的云平台 Cloud Frameworks - ESP32 - — ESP-IDF 编程指南 v5.0.1 文档

AWS IoT esp-aws-iot 是基于Amazon Web Services的aws-iot-device-sdk-embedded-C的ESP32的开源存储库。

Azure物联网 esp-azure 是基于Microsoft Azure的azure-iot-sdk-c SDK的ESP32的开源存储库。

Google IoT核心 esp-google-iot 是基于Google的iot-device-sdk-embedded-c SDK的ESP32的开源存储库。

阿里云物联网 esp-aliyun 是基于Aliyun的iotkit嵌入式SDK的ESP32开源存储库。

Joylink物联网 esp-joylink 是基于Joylink的joylink_dev_sdk SDK的ESP32开源仓库。

腾讯物联网 esp-welink 是基于腾讯的welink SDK的ESP32开源仓库。

腾讯云物联网 esp-qcloud 是基于Tencentyun的qcloud-iot-sdk-embedded-c SDK的ESP32开源仓库。

Baidu IoT esp-baidu-iot 是基于百度的iot-sdk-c SDK的ESP32开源仓库。

二、Linux中搭建:

使用gitee源下载各个模块比较方便

  • Step 1:

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

  • Step 2:

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

注意:仅克隆 esp-idf,不包含子模块。

  • Step 3:

可以有两种方式来更新 submodules。

  • 方式一

进入 esp-gitee-tools 目录,export submodule-update.sh 所在路径,方便后期使用,如:

cd esp-gitee-tools export EGT_PATH=$(pwd)

进入 esp-idf 目录执行 submodule-update.sh 脚本:

cd esp-idf $EGT_PATH/submodule-update.sh

  • 方式二

submodule-update.sh 脚本支持将待更新 submodules 的工程路径作为参数传入,例如:submodule-update.sh PATH_OF_PROJ。

假如 Step 2 中 clone 的 esp-idf 位于 ~/git/esp32-sdk/esp-idf 目录,可使用以下方式来更新:

cd esp-gitee-tools ./submodule-update.sh ~/git/esp32-sdk/esp-idf

如果要更新其他工程,可以同样方式。至此就下载到所有需要的模块。(我使用方式一)

安装模块

Note:不要使用 IDF 自带的 install.sh,使用 esp-gitee-tools 内的 install.sh。(下载模块时完成可以忽略)

  • Step 1:

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

  • Step 2:

可以有两种方式来安装工具。

  • 方式一

进入 esp-gitee-tools 目录,export install.sh 所在路径,方便后期使用,如:(下载模块时完成可以忽略)

cd esp-gitee-tools export EGT_PATH=$(pwd)

进入 esp-idf 目录执行 install.sh 脚本:

cd esp-idf $EGT_PATH/install.sh

  • 方式二

install.sh 脚本支持将 ESP-IDF 工程路径作为参数传入,例如:install.sh PATH_OF_IDF。

假如 esp-idf 位于 ~/git/esp32-sdk/esp-idf 目录,可使用以下方式来更新:

cd esp-gitee-tools ./install.sh /home/huqin/esp/esp-idf

我使用方式一安装

运行环境:

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

如果您需要经常运行 ESP-IDF,您可以为执行 export.sh 创建一个别名,具体步骤如下:

1、复制并粘贴以下命令到 shell 配置文件中(.profile, .bashrc, .zprofile 等)

vi ~/.bashrc //添加 alias get_idf='. $HOME/esp/esp-idf/export.sh' :wq source ~/.bashrc

2、通过重启终端窗口或运行 source [path to profile],如 source ~/.bashrc 来刷新配置文件。

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

配置:

//下面这个选择对应的型号或系列的芯片进行设置,这个操作会清除并且初始化之前配置好的设置 idf.py set-target [...] //下面我们执行指令进行配置 idf.py menuconfig //编译工程 idf.py build //烧录指令 中间的参数为波特率,默认 460800 若串口写入出错通过 chmod 777 /dev/ttyUSB0 设置权限重新烧录 idf.py -p PORT [-b BAUD] flash //监视输出 idf.py -p PORT monitor //也可以运行以下命令,一次性执行构建、烧录和监视过程 按下板子上的BOOT按键,再按下松开RST按键,最后松开BOOT按键, idf.py -p PORT flash monitor //退出监视器窗口按键: Ctrl + ]

芯片设置:

如果 IDF 监视器在烧录后很快发生错误,或打印信息全是乱码(见下),很有可能是因为您的开发板采用了 26 MHz 晶振,而 ESP-IDF 默认支持大多数开发板使用的 40 MHz 晶振

  1. 退出监视器。
  2. 返回 menuconfig。
  3. 进入 Component config –> Hardware Settings –> Main XTAL Config –> Main XTAL frequency 进行配置,将 CONFIG_XTAL_FREQ_SEL 设置为 26 MHz。
  4. 重新 编译和烧录 应用程序

监控界面:

参考链接:

【ESP32学习笔记】#通用篇#(1)简介及资料_JavonPeng的博客-CSDN博客_esp32简介

ESP32开发一_开发环境_esp32开发环境有哪些_huang20083200056的博客-CSDN博客

http://t.csdn.cn/WaVCx

http://t.csdn.cn/pJ1J1

docs/README-submodule-update.md · 乐鑫开源/esp-gitee-tools - Gitee.com

Ubuntu - 20.04系统安装乐鑫ESP-IDF工具链(2) --- 安装IDF_ubuntu espidf安装失败_优信电子的博客-CSDN博客

相关文章:

ESP开发环境搭建

一、windows中搭建 esp-idf tool(可选),下载连接如下:https://dl.espressif.com/dl/esp-idf/?idf4.4 下载安装tools后进入vscode进行插件安装(未离线下载idf工具也可以通过第二步通过插件下载安装) 1. vscode安装编译环境 ESP-IDF 需要安装一些必备工…...

内网安全——ssH协议WindowsLinux密码获取hashcat

目录 (一)横向移动-Linux把场-ssH协议&RSA密匙凭证 (二)Windows-密码获取-在线离线读取&密文破解&a...

【编程入门】应用市场(安卓版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 目标 为编程初学者打造入门学习项目,使…...

【图像分类】卷积神经网络之LeNet5网络模型结构详解

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 1. 前言 LeNet5算法是LeCun在1998年提出的卷积神经网络模型。大约90年代,由于支持向量机等算法的发现,深度学习…...

2023-JavaWeb最新整理面试题-TCP、Tomcat、Servlet、JSP等

Java基础面试题 一、JavaWeb专题 1.HTTP响应码有哪些 1、1xx(临时响应) 2、2xx(成功) 3、3xx(重定向):表示要完成请求需要进一步操作 4、4xx(错误):表示请…...

【云原生kubernetes】k8s Ingress使用详解

一、什么是Ingress 在上一篇关于k8s之service的使用一篇中提到,Service对集群之外暴露服务的主要方式有两种,NotePort和LoadBalancer,但这两种方式,都有一定的缺点,具体来说: NodePort 会占用很多集群机器…...

[数据结构]:顺序表(C语言实现)

目录 前言 顺序表实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-SeqListCommon.cpp 04-SeqListPositionOperation.cpp 05-SeqListValueOperation.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为…...

【大厂高频必刷真题100题】《有序矩阵中第 K 小的元素》 真题练习第27题 持续更新~

有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O(n^2) 的解决方案。 示例 1: 输入:matrix = [[1,5,9…...

两年外包生涯做完,感觉自己废了一半....

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近2年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…...

02- OpenCV绘制图形及图像算术变换 (OpenCV基础) (机器视觉)

知识重点 OpenCV用的最多的色彩空间是HSV. 方便OpenCV做图像处理img2 img.view() # 浅拷贝img3 img.copy() # 深拷贝split(mat) 分割图像的通道: b, g, r cv2.split(img) # b, g, r 都是数组merge((ch1, ch2, ch3)) 融合多个通道cvtColor(img, colorspace): 颜…...

猜数字大小 II

力扣链接 力扣 题目描述: 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字。你来猜我选了哪个数字。如果你猜到正确的数字,就会 赢得游戏 。如果你猜错了,那么我会告诉你,我选的数…...

CCNP350-401学习笔记(251-300题)

251、 Which IPv6 OSPF network type is applied to interface Fa0/0 of R2 by default? A. multipointB. broadcast C. Ethernet D. point-to-point 252、Which EIGRP feature allows the use of leak maps? A. neighborB. Stub C. offset-list D. address-family 253、W…...

掌握MySQL分库分表(二)Mysql数据库垂直分库分表、水平分库分表

文章目录垂直分表拆分方法举例垂直分库水平分表水平分库小结垂直角度(表结构不一样)水平角度(表结构一样)垂直分表 需求:商品表字段太多,每个字段访问频次不⼀样,浪费了IO资源,需要…...

算法训练营 day50 动态规划 单词拆分 多重背包理论基础

算法训练营 day50 动态规划 单词拆分 多重背包理论基础 单词拆分 139. 单词拆分 - 力扣(LeetCode) 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词…...

一文3000字用Postman从0到1实现UI自动化测试

“阅读本文大概需要4分钟。Postman不是做接口测试的吗?为什么还能做UI自动化测试呢? 其实,只要你了解Selenium的运行原理,就可以理解为什么Postman也能实现UI自动化测试了。 Selenium底层原理 运行代码,启动浏览器后…...

2023年美国大学生数学建模C题:预测Wordle结果建模详解+模型代码(一)

目录 前言 一、题目理解 背景 解析 字段含义: 建模要求 二、建模思路...

spring-boot 整合 前端框架 React 增删改查(附源码)

看了很多 关于 SpringBoot 增删改查 的文章 ,但是 React 前端框架这块似乎没什么人玩,一般都是Vue进行整合 ,所以想写一篇关于 React 整合 SpringBoot 增删改查的项目 React 学习区域 React中文教程: https://www.php.cn/doc/react/tutorial/…...

未来的城市:智慧城市定义、特征、应用、场景

智慧城市是通过连接一个地区的物理、经济和社会基础设施,以创新、有效和高效的方式应用和实施技术来发展城市的概念,以改善服务并实现更好的生活质量。智慧城市是一个将信息和通信技术融入日常治理的城市区域,旨在实现效率、改善公共服务、增…...

Qt线程池QThreadPool使用示例

目录前言1.线程池原理介绍2.QThreadPool详细介绍反复执行同一个任务设置线程过期时间线程数量信息3.QThreadPool示例4.总结前言 线程池顾名思义就是同时管理多个线程的"池子",它是一种并发处理技术,在程序中使用线程池能够提高线程的使用效率…...

【Spring】难理解的Aop编程 | 入门?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 目录一. 🦁 前言二. 🦁 常见概念2.1 常见术语2.2 AOP入门Ⅰ. 🐇 功能场景Ⅱ. 🐇 实现过程2.3 通知类型Ⅰ.…...

2 月 25 日,论道京城 | 云原生开源项目应用实践报名开启

在数字化转型的浪潮中,云原生已经逐渐成为人们关注的焦点。开源社区作为云原生技术创新的根据地,为云原生的产业发展打造了丰富的技术生态圈,也在广泛的实践中源源不断地创造着新的机遇。想知道云原生存储技术实现了怎样的突破吗?…...

第五、六章 贪心算法、回溯算法

贪心算法 适合于贪心算法求解的问题具有:贪心选择性质、最优子结构性质。 贪心算法可以获取到问题的局部最优解,不一定能获取到全局最优解。 贪心算法总是作出在当前看来最好的选择;并且每次贪心选择都能将问题化简为一个更小的与原问题具有…...

k8s-kubectl命令

文章目录一、kubectl 基本命令1、陈述式资源管理方法:2、声明式资源管理办法二、基本信息查看三、项目的生命周期创建kubectl run命令四、金丝雀发布(Canary Release)——陈述式管理方法五、声明式管理方法kubectl create 和 kubectl apply区别一、kubectl 基本命令 1、陈述式…...

36、基于51单片机频率计 LCD 1602显示系统设计

摘要 数字频率计是一种基本的测量仪器。它被广泛应用于航天、电子、测控等领域,还被应用在计算机及各种数学仪表中。一般采用的是十进制数字,显示被测信号频率。基本功能是测量正弦信号,方波信号以及其他各种单位时间内变坏的物理量。由于其…...

【vue】elemente-ui table toggleRowSelection 默认选择无效[已解决]

项目场景: 点击按钮,弹出一个弹出框,内部出现一个table表,表内数据是动态获取,同时得勾选上几个table表的数据,类似以下的图 问题描述 点击按钮显示弹出框,加载table中的数据,默…...

SpringMVC DispatcherServlet源码(5) HttpMessageConverter扩展

前文通过阅读源码,深入分析了DispatcherServlet及相关组件的工作流程,本文不再阅读源码,介绍一下扩展HttpMessageConverter的方式。 HttpMessageConverter工作方式及扩展方式 前文介绍过,HttpMessageConverter是读写请求体和响应…...

day16_API

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、String 三、StringBuffer&StringBuilder 四、日期 零、 复习昨日 见晨考 一、String String代表字符串,类,java程序中的所有字符串&…...

十二月券商金工精选

✦研报目录✦ ✦简述✦ 按发布时间排序 华宝证券 主动暴露的得与失—从Barra框架到私募指增因子分析方法 发布日期:2022-12-01 关键词:股票、Barra、风险暴露、指数增强 主要内容:本文针对私募指数增强产品的策略流程,设计…...

JUnit

Junit 简介 JUnit是一个开源的java单元测试框架,它是XUnit测试体系架架构的一种体现 是Java语言事实上的标准单元测试库真正的优势来自于JUnit所采作用的思想和技术,而不是框架本身。推动了单元测试、测试先行的编程和测试驱动的开发JUnit衍生了许多xUn…...

MySQL学习笔记4-乐观锁和悲观锁

1.定义 乐观锁和倍灌水是并发控制采用的技术手段,确保当多个数位同时对数据中同一数据存取时,不会破坏事物的隔离性、统一性和数据库统一性 乐观锁 假定不会发生并发冲突,只在提交操作时检测是否违反数据完整性 实现方式: 记录…...

学做饼干网站/软文广告素材

搭配使用 dao层配置文件(applicationContext-dao.xml): https://blog.csdn.net/a755199443/article/details/90272909 事务管理配置文件(applicationContext-trans.xml): https://blog.csdn.net/a755199443/article/details/90273049 service层配置文件用于扫描service层的Se…...

网站写手怎么做/电脑培训班有哪些科目

很多平台都有点赞功能,今天提供的这个思路可用于很多平台,希望可以掌握该技巧,实现你自己的点赞器。本案例目标为虎嗅 24 小时频道点赞。 爬虫小课系列文章导读链接 第一篇:Python 爬虫小课 1-9 宝妈程序媛福利-育儿网问答数据抓取 第二篇:Python 爬虫小课 2-9 中国妖怪…...

ih5做pc 网站/国家卫健委最新疫情报告

简介 MongoDB 是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。它是非关系型数据库,但其结构与MySQL又很相似,mysql中的表格,在这里被称为集合,mysql表格内的数据是一条条带字段的数据,但在这…...

如何把地图放到自己做的网站上/百度推广登录地址

转载于:https://www.cnblogs.com/lianghong881018/p/10761990.html...

做外贸那个网站好/东莞seo公司

生命周期(Lifecycle ) Maven有三套相互独立的生命周期(Lifecycle ): Clean Lifecycle:做一些清理工作;Default Lifecycle:构建的核心部分、编译、测试、打包、部署等;Site Lifecycle:生成项目报告、站点、发…...

余江区建设局网站/江阴网站制作公司

开发四年只会写业务代码,分布式高并发都不会还做程序员? Python 创始人 Guido van Rossum 前段时间宣布脱离 Python 决策层,辞去所谓的 BDFL (终生仁慈的独裁者) 身份曾引发热议,当时他以 PEP 572 改进提案的争吵事件为例&#…...