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

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地址
    在这里插入图片描述

  • 修改USB控制器
    在这里插入图片描述

(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的源码路径添加到工程中,之后头文件就不会标红了并且可以查看源码
    在这里插入图片描述

  • 通过Vscode登录Ubuntu时使用证书的方式自动验证,避免重复输入密码
    在这里插入图片描述
    在这里插入图片描述

ssh-keygen -t ed25519 -C vi2@gitee.com

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

2.工程目录简介

  • .vscode文件夹
    在这里插入图片描述

  • build文件夹
    在这里插入图片描述

  • main文件夹
    在这里插入图片描述
    在这里插入图片描述

  • CMakeLists.txt
    在这里插入图片描述

  • sdkconfig
    在这里插入图片描述

3.工程配置

  • 根据乐鑫产品选型工具查看芯片具体配置参数,地址
    在这里插入图片描述

  • 选择芯片型号"idf.py set-target esp32"
    在这里插入图片描述

  • 配置芯片参数"idf.py menuconfig,配置后需要重新编译工程"idf.py build"
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、ESP32的存储结构介绍

在这里插入图片描述

四、ESP32的启动流程

相关文章:

  • 【C语言】:学生管理系统(多文件版)
  • Python使用总结之Flask构建文件服务器,通过网络地址访问本地文件
  • 蓝桥杯新手算法练习题单|冲击国一(三)
  • Java高频面试之集合-14
  • 【WEB APIs】正则表达式
  • AI小白的第六天:必要的数学知识(一)
  • 解决 Nginx 访问 /root/下 403 Forbidden 问题
  • 线程大乱斗:从入门到精通,解锁Java并发编程的终极秘籍
  • MTK Android12 应用在最顶端时,禁止拉起其他某个应用(一)
  • docker环境下安装flink
  • vector(沉淀)
  • 使用Azure CDN进行子域名接管
  • 解锁 DeepSeek 安全接入、稳定运行新路径
  • vulhub-joker攻略
  • VulnHub-Billu_b0x通关攻略
  • 【C++】多态
  • CCF-CSP认证 202206-1归一化处理
  • Compose 的产生和原理
  • MySQL超详细介绍(近2万字)
  • 穆迪暖色调人像静物摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 妻子藏匿一岁幼儿一年多不让丈夫见,法院发出人格权侵害禁令
  • 云南临沧一行贿案金额认定比受贿案多41万,重审时检方变更金额起诉
  • 上海发布大风黄警:预计未来24小时内将出现8-10级大风
  • 是谁提议特朗普向好莱坞征税?
  • 杨德龙:取得长期投资胜利法宝,是像巴菲特一样践行价值投资
  • 多地政府机关食堂迎来大客流,重庆荣昌区委书记给厨师们鼓劲