当前位置: 首页 > 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"
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


http://www.mrgr.cn/news/94952.html

相关文章:

  • 【直播预告】“大模型加速器2.0”版本即将开箱!破解AI“幻觉”难题
  • Softmax 函数简介及其Python实现
  • SpringBoot实现发邮件功能+邮件内容带模版
  • vulhub-Billu-b0x攻略
  • Unity 接入抖音小游戏
  • JavaScript 复制功能实现:从基础到进阶
  • 【算法工程】vllm突然报错No platform detected, vLLM is running on UnspecifiedPlatform
  • 激光slam学习笔记10---ubuntu2004部署运行fastlivo2踩坑记录
  • vulhub-joker攻略
  • 7-字符串
  • 【NeurIPS-2022】CodeFormer: 将人脸复原转化为码本预测以减少LQ-HQ映射的不确定性
  • 如何处理和格式化日期差异:JavaScript 日期差异计算实例
  • JavaScript 日期区间计算:全面解析与实战应用
  • 银行数字化转型
  • 【经验】重装OpenCV踩雷
  • 购物车全选功能
  • YOLO11结构
  • Web 小项目: 网页版图书管理系统
  • 我在哪,要去哪
  • Nginx 代理访问一个 Web 界面时缺少内容