【桌面小屏幕项目】ESP32开发环境搭建

news2024/11/20 8:24:27

视频教程链接:

【【有手就行系列】嵌入式单片机教程-桌面小屏幕实战教学 从设计、硬件、焊接到代码编写、调试 ESP32 持续更新2022】 https://www.bilibili.com/video/BV1wV4y1G7Vk/?share_source=copy_web&vd_source=4fa5fad39452b08a8f4aa46532e890a7

一、esp32资料汇总

ESP32 Wi-Fi & 蓝牙 MCU I 乐鑫科技

ESP-IDF 编程指南 - ESP32 - ‒ ESP-IDF 编程指南 release-v4.4 文档

二、环境搭建

2.1 Window开发环境搭建参考

较简单,适合小白用户

DesktopScreen Window开发环境搭建

2.2 Linux开发环境搭建参考

较为复杂,适合专业用户

2.2.1 虚拟机环境搭建参考:

1、虚拟机安装

VMwareWorkstation下载链接

最新超详细VMware虚拟机下载与安装

打开共享文件夹

VMware中虚拟机Ubuntu访问Windows7主机文件夹的设置流程_shuwu-CSDN博客

cp /mnt/hgfs/vmshare/test.txt  .
cp test1.txt /mnt/hgfs/vmshare/

2、虚拟机中安装Ubuntu系统

Index of /ubuntu-releases/18.04/->ubuntu-18.04.5-desktop-amd64.iso 下载完成后验证MD5

超详细VMware安装Ubuntu虚拟机步骤

vmware workstation16许可证密钥 - yg0070 - 博客园

Ubuntu刚安装后,给root用户设置密码的具体步骤:打开一个终端,然后输入下面的命令

sudo passwd 然后输入密码

-共享文件夹

VMware设置共享文件夹后,虚拟机中仍然看不到,执行以下指令

sudo mkdir /mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other

3、在Window系统安装代码编辑器VSCode

Window安装VSCode

国内源下载或者直接下载下发安装包,直接安装即可。

暂时无法在飞书文档外展示此内容

4、在虚拟机Ubuntu系统中配置SSH和Samba,用于支持远程访问

SSH安装&客户端工具安装

在ubuntu终端中执行:
sudo apt-get install openssh-server 
sudo /etc/init.d/ssh start
ps -e|grep ssh
sudo passwd root 若未设置过root密码,可自行选择设置
查看ubuntu ip确定和windows一样
ifconfig

Samba服务器搭建

sudo apt-get update 
sudo apt-get install samba
sudo gedit /etc/samba/smb.conf
末尾添加以下
[share]
        comment = samba home directory
        path = /home/xxxx/esp 你本机路径
        public = yes
        browseable = yes
        public = yes
        read only = no
        writable = yes
        create mask = 0777
        directory mask = 0777
        available = yes
        security = share

重启
sudo service smbd restart
sudo ufw allow samba

在 Windows 系统上右击 此电脑 ------->映射网络驱动器

在连接前确定虚拟机网络ip和主机ip为同一网段,可使用桥接模式

5、在Window VSCode中通过SSH命令行方式访问Ubuntu

打开VSCode安装C/C++、SSH客户端插件

配置连接Ubuntu

添加配置信息

登录,如果网络配置没问题,你可以在新窗看到需要输入密码,输入ubuntu密码后可登录成功。

更多内容参考:

Embeded 2 环境搭建

2.2.2 乐鑫ESP32 SDK环境搭建

安装环境依赖工具

通过SSH登录ubuntu后,在Vscode终端中执行
sudo apt-get update
sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

下载idf源码(课程使用idf版本为4.4)

mkdir esp
cd ~/esp
git clone -b release/v4.4 --recursive https://github.com/espressif/esp-idf.git
如果下载过程中出现子模块没更新成功,可以进入esp_idf目录内,单独更新子模块
git submodule update --init --recursive

如果还是由于github访问原因下载不成功,也可以直接下载sdk

把压缩拉入到ubuntu,在压缩包路径执行解压指令
tar -xzvf esp-idf.tar.gz -C ~/esp/

安装编译链

进入到解压的esp-idf文件中,安装编译代码需要的工具链
cd ~/esp/esp-idf
export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
./install.sh

FYI:
此步骤出错时,确定下ping www.baidu.com,看下是否联网成功,多安装几次
若最终还是不行,可考虑更换源
https://blog.csdn.net/anjoel/article/details/124805571?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-124805571-blog-79127695.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-1-124805571-blog-79127695.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=1

设置环境

安装完成工具链后,把esp-idf路径设为本地路径,在终端执行(yourpath为你本机路径):
. yourpath/esp/esp-idf/export.sh

如果您需要经常运行 ESP-IDF,您可以为执行 export.sh 创建一个别名,具体步骤如下,
1、在终端中使用vim打开~/.bashrc,然后把以下路径添加到本地环境变量中
vim ~/.bashrc
2、按键盘i按键进行编辑,写入以下命令
alias get_idf='. yourpath/esp/esp-idf/export.sh'
3、按esc按键退出编辑,写入:wq保存退出
4、执行以下命令同步环境变量
source ~/.bashrc
5、直接执行get_idf即可

判断是否搭建成功

kemp@ubuntu:~/work/esp/esp-idf$ idf.py --version
ESP-IDF v4.4.2-296-g4b8915d7af-dirty

kemp@ubuntu:~/work/esp/esp-idf$ git log
commit 4b8915d7af37b0cdb9ae2bc3a95c9f1bc797f6e0 (HEAD -> release/v4.4, origin/release/v4.4)
Merge: 7cedbfabdf e4df3e2ad7
Author: Island <island@espressif.com>
Date:   Wed Sep 21 11:31:55 2022 +0800

    Merge branch 'bugfix/lpn_not_recv_message_to_all_node_4.4' into 'release/v4.4'
    
    ble_mesh: stack: Add option for lpn auto sub all-nodes(v4.4)
    
    See merge request espressif/esp-idf!20264

安装环境出问题时可参考官方:

快速入门 - ESP32 - ‒ ESP-IDF 编程指南 release-v4.4 文档

FYI

如果你已经下载了其它版本的IDF,可以自行切换

版本查看与同步
cd $IDF_PATH
git fetch
git checkout vX.Y.Z
git submodule update --init --recursive
重新执行设置后,get_idf

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

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

相关文章

C++标准库STL容器详解

目录 C标准模板库STL容器容器分类容器通用接口 顺序容器vectorlistdeque 容器适配器queuestackpriority_queue 关联容器&#xff1a;红黑树setmultisetmapmultimap 关联容器&#xff1a;哈希表unordered_set和unordered_multisetunordered_map和unordered_multimap 附1&#xf…

机械硬盘HDD的基础知识介绍

机械硬盘在价格&#xff0c;容量&#xff0c;磨损度上面都只有着SSD不可取代的地方&#xff0c;目前世界上80%的数据仍然存储在HDD上&#xff0c;不过随着科技的进步&#xff0c;以及SSD技术不断的突破和逐渐降低的价格&#xff0c;HDD的占比会越来越低,至于未来会不会被SSD完全…

任务执行和调度----Spring线程池/Quartz

定时任务 在服务器中可能会有定时任务&#xff0c;但是不知道分布式系统下次会访问哪一个服务器&#xff0c;所以服务器中的任务就是相同的&#xff0c;这样会导致浪费。使用Quartz可以解决这个问题。 JDK线程池 RunWith(SpringRunner.class) SpringBootTest ContextConfi…

Redis的五大数据类型的数据结构

概述 Redis底层有六种数据类型包括&#xff1a;简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。这六种数据结构五大数据类型关系如下&#xff1a; String&#xff1a;简单动态字符串List&#xff1a;双向链表、压缩列表Hash&#xff1a;压缩列表、哈希表Sorted…

指针(个人学习笔记黑马学习)

1、指针的定义和使用 #include <iostream> using namespace std;int main() {int a 10;int* p;p &a;cout << "a的地址为&#xff1a;" << &a << endl;cout << "a的地址为&#xff1a;" << p << endl;…

CPU和GPU的区别

介绍什么是GPU, 那就要从CPU和GPU的比较不同中能更好更快的学习到什么是GPU CPU和GPU的总体区别 CPU&#xff1a; 叫做中央处理器&#xff08;central processing unit&#xff09; 可以形象的理解为有25%的ALU(运算单元)、有25%的Control(控制单元)、50%的Cache(缓存单元)…

“短视频类”App个人信息收集情况测试报告

近期&#xff0c;中国网络空间安全协会对“短视频类”公众大量使用的部分App收集个人信息情况进行了测试。测试情况及结果如下&#xff1a; 一、测试对象 本次测试选取了19家应用商店⁽⁾累计下载量达到1亿次的“短视频类”App&#xff0c;共计6款&#xff0c;其基本情况如表…

StarRocks 在金融科技行业的存算分离应用实践

小编导读&#xff1a; 自从 2023 年 4 月正式推出 3.0 版本的存算分离功能以来&#xff0c;目前已有包含芒果TV、聚水潭、网易邮箱、浪潮、天道金科等数十家用户完成测试&#xff0c;多家用户也已开始逐步将其应用于实际业务中。目前&#xff0c;StarRocks 存算分离上线的场景…

【少年的救赎——放牛班的春天】

风中飞舞的风筝&#xff0c;请你别停下 池塘之底 这是马修在池塘之底写下的日记 他所有的故事&#xff0c;还有“我们”的 1949年一月十五日&#xff0c;在经历了所有领域的挫折后&#xff0c;马修来到了人生低谷期&#xff0c;“池塘之底”像专为他挑选的一般。那是在一个…

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…

Gin 框架入门实战系列(一)

GIN介绍 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错 借助框架开发,不仅可以省去很多常用的封装带来的时间,…

8.28~~和学长的谈话

对于大二&#xff0c;我还想问问学长有什么建议&#xff1f; 熟练掌握一到两门开发语言&#xff0c;选好专业的重点学习方向&#xff0c;开始全面了解工程实践方面&#xff0c;10个以上工程开发&#xff0c;可自行规划二年级&#xff0c;着重加强基础技能的学习和提升&#xf…

JMeter性能测试基本过程及示例

jmeter 为性能测试提供了一下特色&#xff1a; jmeter 可以对测试静态资源&#xff08;例如 js、html 等&#xff09;以及动态资源&#xff08;例如 php、jsp、ajax 等等&#xff09;进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一系列各种形式的…

【100天精通python】Day47:python网络编程_Web编程基础

目录 1 网络编程与web编程 1.1 网络编程 1.2 web编程 2 Web开发概述 3 Web开发基础 3.1 HTTP协议 3.2 Web服务器 3.3 前端基础 3.4 静态服务器 3.5 前后端交互的基本原理 4 WSGI接口 4.1 CGI 简介 4.2 WSGI 简介 4.3 定义 WSGI 接口 4.4 运行 WSGI 服务 4.5…

vue3:使用:图片生成二维码并复制

实现在 vue3 中根据 url 生成一个二维码码&#xff0c;且可以复制。 注&#xff09;复制功能 navigator.clipboard.write 只能在安全的localhost 这种安全网络下使用。https中需要添加安全证书&#xff0c;且在域名&#xff08;例&#xff1a;https://www.baidu.com&#xff0…

c#多线程—基础概念到“双色球”项目实现(附知识点目录、代码、视频)

总结&#xff1a;视频中对于多线程讲的非常透彻&#xff0c;从线程基础概念—>.net不同版本出现的线程方法—>多线程常出现问题—>双色球项目实践&#xff0c;每个知识点都有代码实操&#xff0c;受益匪浅。附上学习笔记和实操代码。 视频 目录 一、线程、进程概念及优…

新建Spring Boot项目

使用IDEA 来创建: 文件-新建-项目 填写项目元数据 选择依赖项 此处可以先选 web-spring web 关于这些依赖项&#xff0c;更多可参考&#xff1a; IDEA创建Spring boot项目时各依赖的说明&#xff08;Developer Tools篇&#xff09;[1] 项目结构介绍 展开项目&#xff0c;此时…

redis应用 2:延时队列

我们平时习惯于使用 Rabbitmq 和 Kafka 作为消息队列中间件&#xff0c;来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件&#xff0c;特性之多超出了大多数人的理解能力。 使用过 Rabbitmq 的同学知道它使用起来有多复杂&#xff0c;发消息之前要…

socket的TCP和UDP样例

【70天稳扎稳打学完JavaEE初阶】 TCP和UDP的区别及相关的不同应用 UDP实现回显功能一、UdpEchoServer服务器二、UdpEchoClient 客户端写一个 翻译服务器&#xff08;继承服务器&#xff09; UDP示例二&#xff1a;展示服务器本地某个目录的下一级子文件列表服务UDP服务器UDP客户…

什么是ChatGPT水印,ChatGPT生成的内容如何不被检测出来,原理什么?

太长不看版 1. 什么是ChatGPT水印&#xff1f; ChatGPT水印是AI以伪随机方式生成的独特tokens序列。该序列用来作为水印&#xff0c;以区分AI生成内容和人类原创内容。 2. 如何规避ChatGPT水印&#xff1f; 一种规避方法是使用其他AI模型改写ChatGPT生成的文本。这会破坏水…