1~2 课程简介+ESP32-IDF环境搭建(虚拟机Linux环境下)

哔站“宸芯IOT”视频链接

一、课程内容介绍

1.什么是ESP32

  • ESP32是集成2.4GHz Wi-Fi和蓝牙双模的单芯片方案,具有超高的射频性能、稳定性、通用性和可靠性,以及超低的功耗,满足不同的功耗需求,适用于各种应用场景。
  • ESP32是ESP8266的后继产品,具有比ESP8266更出色的性能以及更优秀的能力;
  • ESP32主要面向IOT(Internet of Things,物联网)领域,同时它也和MCU一样具备很多外设(如UART、I2C、SPI、SDIO、PWM等)因此可满足大部分的单芯片产品解决方案;
  • ESP32有多种开发方式:Micropython、arduino、esp-idf;(可以从官网免费获得其SDK,里面大部分的源码是开源的)

2.ESP32-IDF开发环境

  1. ESP32-IDF基于C/C++开发;
  2. ESP32-IDF是乐鑫官方主推的开发环境,也是其更新维护较为频繁的SDK(很多新的特性以及bug修复都会第一时间在ESP-IDF上进行发布);
  3. 使用ESP-IDF开发出来的程序固件运行速度比arduino、Micropython开发出来快;

3.常见的ESP32型号

特性ESP32ESP32-S2ESP32-S3ESP32-C3ESP32-C6
内核Xtensa LX6双核处理器Stensa single-core32-bit LX7Xtensa dual-core 32-bit LX7RISC-VRISC-V
主频240MHz240MHz240MHz160MHz160MHz
无线协议BT 4.2、BLE、2.4G WiFi2.4G WiFiBT5.0、 BLE、2.4G WiFiBT5.0、BLE、2.4GWiFiBT5.0、BLE、IEEE802.15.4(可支持Zigebee和Thread协议)
SRAM520KB320KB512KB400KB512KB
ROM448KB128KB384KB384KB320KB
GPIO数量3443452230
额外增加用于加速神经网络计算和信号处理等工作的向量指令(vector instructions),可用于部分AI开发
  • ESP32这个经典型号无论是外设还是内部RAM资源都基本满足我们的学习需求;价格相对中肯;
  • S2定位较为模糊,裁剪了很多东西;
  • 项目中需要更低成本的可以考虑C系列;如果要用到AI方面可以考虑S3;

4.ESP32开发板推荐

在这里插入图片描述

二、ESP32开发环境搭建

1. 需要安装的软件

  • 软件下载链接(百度网盘)

(1)Vscode、Git安装可参考这篇博客

在这里插入图片描述

  • 需要使用Git从Github或Gitee下载最新的ESP-IDF的SDK代码
    在这里插入图片描述

(2)VMware虚拟机安装

在这里插入图片描述

  • 电脑配置要求:
    • 运行内存16GB(推荐32GB以上);
    • 200G以上的硬盘空间;
  • 下载软件
    在这里插入图片描述
  • 双击下载好的Vmware安装程序;
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(3)在Vmware虚拟机中安装Ubuntu

  • 打开安装好的Vmware
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

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

  • 等待出现下面界面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

  • 等待很久(需要时间比较久),会系统会重启
    在这里插入图片描述

  • 如果进入到上面界面,依然很久没有进入下图所示的shell界面,可以按照下图中标注中重新启动
    在这里插入图片描述

  • 之后输入用户名和密码(输入密码是不显示的,输入完密码按回车即可)

    在这里插入图片描述

  • 输入指令"sudo apt-get install net-tools"安装网络工具
    在这里插入图片描述

  • 输入“ifconfig”指令查看IP地址
    在这里插入图片描述

(4)MobaXterm安装

  • MobaXterm是一款非常好用且免费的终端工具,支持很多协议,可以用MobaXtern通过SSH登录到虚拟机中的Ubuntu系统中进行开发
    在这里插入图片描述
  • 解压MobaXterm_Portable_v24.0,双击解压后的可执行文件;
    在这里插入图片描述
  • 通过SSH登录到Ubuntu系统
    在这里插入图片描述
  • 输入下面指令,来安装一些必要的工具
    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文件夹、跳转到esp32文件夹中(该文件夹用来存放ESP32-IDF SDK)
    mkdir esp32
    cd esp32/
    
    在这里插入图片描述
  • 输入下面指令,通过Git拉取ESP工具(由于ESP32-IDF SDK存放在Github上,国内网络访问不太稳定,需要使用ESP工具辅助拉去ESP32-IDF SDK)
    git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
    
    在这里插入图片描述
  • 跳转到esp-gitee-tools文件夹中,执行jihu-mirror.sh set命令(该命令会将Github上的地址自动替换成jihu上的镜像地址)
    
    cd esp-gitee-tools
    ls
    ./jihu-mirror.sh set
    

在这里插入图片描述

  • 回到上级目录,输入下面指令,拉取ESP-IDF SDK源码

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

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

  • ESP-IDF有很多个版本,注意大版本之间是不兼容的,例如在V4版本上编译的项目在V5版本上基本上是编译不了的

    cd esp-idf
    git checkout v5.2
    git submodule update --init --recursive

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

  • 安装编译工具

    //1.更换pip源,否则编译工具下载会很慢
    pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
    pip config set global.trusted-host mirrors.aliyun.com//2.安装编译工具【需要在esp-idf路径中执行!!!】
    ../esp-gitee-tools/install.sh  
    

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

  • 设置环境变量并将环境变量放到.bashrc中

    source export.sh			    【需要在esp-idf路径中执行!!!】
    echo "source ~/esp32/esp-idf/export.sh" >> ~/.bashrc
    

    在这里插入图片描述

  • 下载课程配套源码

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

    在这里插入图片描述

  • 编译helloworld例程

    cd esp32-board/helloworld
    idf.py build		
    

    在这里插入图片描述

  • 把开发板插到电脑上
    在这里插入图片描述

  • 设置USB串口权限,之后把虚拟机关闭后重新打开;

    sudo usermod -aG dialout usrname		//username为自己定义的用户名
    

    在这里插入图片描述

  • 重启后,需要重新把USB连接到虚拟中,之后烧录helloworld例程到开发板中
    在这里插入图片描述
    在这里插入图片描述

  • 查看打印信息的指令”idf.py monitor",退出打印"Ctrl + ]"
    在这里插入图片描述

(5)使用Vscode登录到Ubuntu系统上

  • 安装"Remote SSH"插件
    在这里插入图片描述
  • 配置远程链接
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装插件
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 把ESP-IDF的源码路径添加到工程中,之后头文件就不会标红了并且可以查看源码
    在这里插入图片描述

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

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

相关文章

Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称

Vue3一个组件绑定多个 v-model,自定义 prop 和 event 名称 Vue3中v-model默认使用modelValue作为prop,update:modelValue作为事件,而Vue2使用的是value和input。此外,Vue3允许通过参数的方式为组件添加多个v-model绑定&#xff0…

YOLOv11小白的进击之路(九)创新YOLO11损失函数之NWD损失函数源码解读

之前的博客也有对YOLO11的损失函数进行过源码分析,可以参考:YOLOv11小白的进击之路(六)创新YOLO的iou及损失函数时的源码分析_yolov11的损失函数是什么-CSDN博客最近在做小目标检测的时候注意到了NWD损失函数,这里对其…

VLN 论文精读(四)Dynamic Path Navigation for Motion Agents with LLM Reasoning

这篇笔记用来描述2025年发表在arxiv上的一篇有关VLN领域的论文,由港科大和达特茅斯大学联合发布,其核心思想有以下几点: 将3D环境转化为2D平面;2D平面中障碍物分布、机器人起点与终点信息用稀疏矩阵形式进行描述;与LL…

vue3之写一个aichat ----vite.config.js

vite.config.js的CSS配置 postcss-pxtorem 开发响应式网页的时候需要用到postcss-pxtorem amfe-flexible amfe-flexible是由阿里团队开发的一个库,它可以根据设备的屏幕宽度去动态调整HTML根元素()的字体大小,这意味着无论用户使用什么尺寸的设备访问你…

宝石PDF,全新 PC 版本,全部免费

宝石PDF已经运行 3 年时间,有客户端,小程序,一直未上 PC 版本,随着客户端功能升级的不及时,很多用户建议上 PC 版本。但是飞哥一直忙,这不终于给上了。 同时系统的名称也从 “PDF云转换”改为“宝石PDF”&…

.NET8使用EF Core连接SQLite

使用框架 .NET8 在nuget中,需要安装包: SQLitePCLRaw.bundle_e_sqlite3,版本 2.1.10 Microsoft.EntityFrameworkCore.Sqlite.Core,版本 9.0.0 using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microso…

HTML课后实践

实验一 【实验原理】 在搜索引擎的文本分析中,标题的信息权重要比正文的大,所以标题的样式非常重要。本实验通过把标题标记和常规文本进行对比输出,掌握标题标签的用法。在网页中,有时需要为文字设置粗体、斜体或下划线效果&#…

【紫光同创FPGA开发常用工具】FPGACPLD的下载与固化

文档内容适配技术问题说明(非正文): 1、FPGA&CPLD如何下载位流文件; 2、FPGA外部flash如何固化位流文件; 3、PDS软件烧录界面如何新增用户flash; 4、CPLD内部flash如何固化位流文件; F…

前端传参+后端接参对照

✅ Java 后端参数接收注解 & 前端传参格式对照 后端注解前端 Content-Type前端传参方式说明RequestParamapplication/x-www-form-urlencodedURL参数 / form表单提交 / Postman form-data常用于 keyvalue 形式的参数;适合少量简单参数RequestParamURL拼接/api/t…

计算机网络的框架结构

计算机网络课程知识体系框架 一、计算机网络基础概念 1.1 网络组成要素 端系统(主机、服务器)通信链路(有线/无线介质)交换设备(路由器、交换机)协议体系(TCP/IP协议簇) 1.2 网络…

塔能智慧物联节能方案:点亮城市,赋能工厂

在全球积极倡导节能减排、绿色发展的时代背景下,塔能(江苏)科技有限公司凭借其创新的智慧物联节能一体化解决方案,在城市照明和工厂节能领域取得了显著成果。该方案不仅为城市的夜晚带来了明亮且节能的照明,还为工厂的…

Laravel框架下通过DB获取数据并转为数组的方法

在Laravel框架中,获取数据库信息并将其转换为数组是一种常见的操作,特别是在处理数据导出、API响应等场景中。Laravel提供了简洁而强大的数据库抽象层,旨在简化这类操作。接下来,我们将探讨几种在Laravel中通过数据库抽象层&#…

pytorch小记(九):pytorch中创建指定形状的张量: torch.empty

pytorch小记(九):pytorch中创建指定形状的张量: torch.empty 详细解释1. 基本功能2. 语法3. 示例代码示例 1:创建一个 5 的未初始化张量示例 2:创建一个 23 的未初始化张量示例 3:指定数据类型和设备 4. 注…

Linux cgroup cpuset

cpuset.c 是 Linux cgroup 的 cpuset 子系统的核心实现,这个文件的主要作用是: 实现 cgroup 的 cpuset 子系统管理进程的 CPU 和内存资源访问权限提供 CPU 和内存节点的独占功能支持层级化的资源管理提供用户空间接口来配置和查看资源限制 关键数据结构…

Tailwind CSS 学习笔记(一)

一、简介 Tailwind CSS是一个工具优先的CSS 框架,只需书写HTML 代码,无需书写CSS,即可快速构建美观的网站。 二、优点 1、简洁、规整,避免了随意取类名 Tailwind CSS 的工具类(Utility classes) 能够为你提供一套约束系统,避免让你的样式表中出现随意的取值。它让颜色、…

Python自动点击器开发教程 - 支持键盘连按和鼠标连点

Python自动点击器开发教程 - 支持键盘连按和鼠标连点 这里写目录标题 Python自动点击器开发教程 - 支持键盘连按和鼠标连点项目介绍开发环境安装依赖核心代码解析1. 键盘模拟实现2. 鼠标点击实现 开发要点使用说明注意事项优化建议打包发布项目源码开发心得参考资料成品工具 项…

Cursor插件市场打不开解决

问题现象: cursor搜索插件的时候提示错误,无法搜索安装插件 error while fetching extensions.failed to fetch 问题原因 cursor默认安装使用的并不是vs code的插件市场,国内网络有时候打不开 解决 修改插件市场地址并重启cursor 打开cur…

【DeepSeek】本地部署DeepSeek的完整教程(Ollama+Docker+Open WebUI)

本地部署DeepSeek的完整教程 文章目录 本地部署DeepSeek的完整教程写在前面技术需求详细步骤一. 安装Ollama软件二. 安装DeepSeek-R1模型三. 安装Docker软件四. 配置Web UI界面问题解决1. 打开`docker desktop`时,一直显示`Docker Engine stopped`2. 用`Docker`拉取`Open WebU…

Java创造型模式之原型模式详解

设计模式是面向对象设计中的一种标准方法,用于解决常见的设计问题。原型设计模式(Prototype Pattern)是23种经典设计模式之一,属于创建型模式,它允许通过复制现有对象来创建新对象,而不是通过构造函数或工厂…

python-leetcode 54.全排列

题目: 给定不含重复数字的数组nums,返回其所有可能的全排列,可以按任意顺序返回答案 回溯法 一种通过探索所有可能的候选解来找出所有的解的算法。如果候选解被确认不是一个解(或者至少不是最后一个解),回溯算法会通…