【ESP32】打造全网最强esp-idf基础教程——1.开发环境搭建

ESP32开发环境搭建

一、前言

       老板突然说以后要用esp-idf开发,对于我这只会IDE上点点点的程序媛来说,简直了……只好加班恶补所有esp-idf的知识,今天起在CSDN上记录所有笔记(坑),加油。

        开发ESP32,最头疼的事情莫过于这个开发环境的搭建了,网上各种教程简直是多不胜数,但完全照着做一遍又不行,而官方的资料也一头雾水。其实主要原因还是因为有多种开发环境、多种工具、不同平台都可以编译我们的ESP32工程。而我们(老板)坚持使用esp-idf库来进行开发,是因为esp-idf库是官方目前主推的库,最新的特性更新以及bug修复都在esp-idf上进行发布,而且大部分源码是开源的,大家可以随意获取和查看。基于esp-idf开发还不够,我们还需要开发工具,esp-idf可以在windows、linux、mac上进行开发,但官方主推的还是linux平台上开发,我之前试过windows平台下开发,编译慢不说,安装工具还很不方便。好了,我们先看下,如何把这个开发环境搭建好。

二、软件安装 

       因为我们需要在Linux下开发,但同时也想用windows下的工具或其他软件,因此最好的方法就是装虚拟机,我们的原则是,使用windows下的工具来进行代码浏览和编辑,然后在linux下编译,需要装的工具有如下

虚拟机软件,可以自行去官网下载,安装也很简单,这里不做过多讲解 

我们选用ubuntu作为Linux操作系统,这也是官方推荐的,但我这里推荐大家用ubuntu 20.04 版本,用其他版本可能都会有问题,还有我推荐大家用服务器版本,这样虚拟机开起来就会减少内存占用。 

 VSCode作为我们远程连接ubuntu工具和代码浏览工具,十分好用,大家自行下载安装即可,这里不做过多讲解。

Mobaxterm作为一款免费的终端工具,我推荐大家用这个工具,SSH登录到虚拟机上,进行项目的配置和编译,功能强大 。

另外对电脑要求如下:
16G内存(推荐32G或以上)
200G以上硬盘空间

现在打开我们VMWare软件,在左边的窗口右键,新建虚拟机  

 

 

       后续就是下一步到底了,然后创建完成后,虚拟机就会启动,开始安装ubuntu系统,安装步骤大家看提示操作即可。请注意,如果有设置用户名的地方,请设置成和刚才创建虚拟机设置用户名步骤那里一致的用户名和密码;有叫你升级update的地方,一律cancel;有提示你装openssl,务必装上。安装虚拟机应该问题比较少,有问题的话私信我。 

接下来才是重要环节
虚拟机开机后,是如下界面 

       

看起来就是shell,啥都没有,首先我们要登录,用刚才创建虚拟机和安装系统时的用户名和密码登录。我们要安装一些工具,输入如下命令
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

Ubuntu 20.04 自带了Python3.8版本(esp-idf的编译需要python工具),我们不用去更新,也不要用其他版本,就用这个版本即可。
因为github的访问问题,我们很难直接从github上拉取完整的esp-idf源码,但乐鑫官方提供了一个下载工具,我们通过这个工具可以轻松的获取到esp-idf。
首先我们新建一个esp32目录,存放我们所有esp32相关的东西
mkdir esp32
cd esp32 

我们拉取esp-gitee-tools工具
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
完成后到这个工具目录里面
cd esp-gitee-tools
./jihu-mirror.sh set 

上面这句命令,会将github的地址自动替换成jihulab上的镜像地址,这样就不用担心github的访问问题了
然后我们可以理直气壮的拉取github 源码了,先回到esp32目录,
cd ..
然后拉取esp-idf
git clone --recursive https://github.com/espressif/esp-idf.git
速度很快,就不存在访问问题了。

上面步骤执行完后,应该有这两个目录(如下红框)

然后我们切换到esp-idf目录
cd esp-idf 

由于本教程所有例程都是基于esp-idf v5.2版本进行开发的,因此我们需要切换一下版本
git checkout v5.2
这样就切换完成了,我们输入git branch 看一下

发现是v5.2版本
然后需要执行
git submodule --init --recursive 让子模块也切换但对应版本 

然后需要安装编译工具,需要esp-gitee-tools工具目录下的install.sh脚本
我们在esp-idf目录下直接执行
../esp-gitee-tools/install.sh 

等待完成后,我们的esp-idf就部署完成了。 

三、工程目录和编译 

       在上一章,我们把esp-idf完成的拉取完成了,我们先来看下esp-idf里面有什么
最主要的目录如下:
components:组件代码,esp-idf的核心,包含通用的功能部件,比如freeRTOS、wifi、GPIO驱动、PWM驱动等等
examples:官方例程,大部分的应用都可以在这里找到相关例子
docs:一些介绍文档
tools:一些工具,如编译、烧录

接下来,大家把我的例程下载到esp32目录里面
cd ~/esp32

git clone --recursive https://gitee.com/vi-iot/esp32-board.git
这个仓库是我给大家提供的例程,包含了很多个工程,每个工程都是可以单独编译的。
 

 3.1 代码编译
        目前我们只是安装了一些工具,以及下载好了esp-idf和工程源码,但还没编译。所谓编译就是要使用esp-idf里面的工具,对我们的工程源码进行编译、汇编、链接等操作,生成bin文件的过程。为了方便起见,我们使用mobaxterm工具SSH登录到我们的ubuntu,mobaxterm显示内容更丰富,功能也更强大。先打开mobaxterm工具,新建一个session。

点击OK后,输入密码,就可以登录ubuntu了, 

       操作和在VMWare上面差不多,也同样是用shell命令操作。现在我们要设置esp-idf的环境变量。
cd esp32/esp-idf
source export.sh 
执行完export.sh脚本后,会出现如下

       说明设置环境变量成功。因为这次设置只是针对当前登录的用户,我们退出了重新登录这些环境变量就没有了,我们又要重新执行一下以上命令。解决方法是在~/.profile中追加如下命令

source esp32/esp-idf/export.sh 

 这样每次登录就会自动执行这条语句。

然后我们回到esp32-board库
cd ~/esp32/esp32-board        (这里大家自行切换到esp32-board目录中)
我们选helloworld工程试下 

重点来了!
在这个目录下,输入idf.py build 即可自动完成编译,生成bin文件

 大家看到如上信息就说明编译成功了!!

3.2 代码浏览和编辑
        那我们怎么看代码方便呢?又如何修改代码方便呢?不会要用vim这工具吧?当然不是。接下来我们要用到VSCode工具,我们在windows上打开VSCode工具,先安装几个插件

 

 

保存,重启一下VSCode,就能看见可以连接的远程主机了 

 注意IP地址要换成你虚拟机的IP地址。在ubuntu里面输入ifconfig命令可以查看ip地址

       会让你输入密码,输入对应的用户名密码,就登录成功了,但目前我们还看不到文件,我们需要打开文件夹,按下图,选择好对应的文件夹后,点确定,我们选helloworld工程

这里会让你再输入一次密码,输入正确后,在左边资源管理器就会出现文件夹里面的内容了 

 

 VSCode还没部署完,我们SSH远程登录虚拟机后,需要安装两个插件

       需要安装C/C++、ESP-IDF,如果不装这两个插件,我们看代码没法跳转
       装好后,最好重启一下VSCode,重复上述步骤登录ubuntu和打开helloworld文件夹,然后我们回到我们的helloworld工程
       按下ctrl+shift+p,弹出搜索框,搜索ESP-IDF:Add vscode Configuration Folder,在下拉列表出现后,点击一下就可以了,这步的目的是为了把esp-idf里面的源码路径也加到我们的工程中,现在我们可以通过按着ctrl键点击函数或变量进行跳转看代码了 

       大家可以方便在VSCode上对代码文件进行编辑了!! 

       综上所述,esp-idf的开发环境是需要一些专业技术的,但开发环境的搭建属于一劳永逸的事情,环境搭建完,我们后续的开发工作就会非常顺利,我们宁愿在前期花多点功夫,也不要落得后期各种奇葩问题。

       当然后续还有很多要调整的细节,随着教程我会慢慢指导大家的。

最后附上相关资料:

ESP32教程资料连接:
https://pan.baidu.com/s/1kCjD8yktZECSGmHomx_veg?pwd=q8er 
提取码:q8er 

配套源码下载地址:
https://gitee.com/vi-iot/esp32-board.git

鉴于实验需要开发板的支持,我也设计了一款ESP32开发板,包含部分传感器模块,1.69寸LCD高亮屏,Type-C一键下载,方便大家学习和做各种实验。开发板链接如下:

https://item.taobao.com/item.htm?ft=t&id=802401650392&spm=a21dvs.23580594.0.0.4fee645eXpkfcp&skuId=5635015963649
 

请大家多多支持。

  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值