写在最前面:本文仅仅只是ESP32的入门指南,对官网以及其他不负责任的博主文章的勘误。

搞笑的是,我后来发现这样焊接出来的ESP32的模块不是很稳固,尤其是接线进行烧录那里,所以后面换用了ESP8266开发板,用一句流行的话表达我的心情“真香!”

一、什么是ESP-WROOM-32模组

       ESP-WROOM-32(ESP32)是乐鑫最新发布的新一代 WiFi & 蓝牙 双模双核无线通信芯片。芯片集成蓝牙4.2WiFi HT40技术为一身,拥有高性能Tensilica LX6 双核处理器,支持超低功耗待机,是移动设备、可穿戴电子产品和物联网应用的最佳拍档。而且官方对该模组软硬件进行了开源,原理图与PCB布局均可以免费下载。是我们开发物联网设备时候的良好选择。关于此芯片的详细介绍,可以参考官网。官网开源资料也很丰富,本指南也是参考着官网资料才开始进行的。

       这里插一句嘴,乐鑫官网的资料十分给力,包括github上面的源码也很多,超级棒。ESP32的教程可以参考txgcwm的博客,个人认为很有效果,而ESP8266的教程可以参考半颗心脏的博客。

二、我为什么要买ESP-WROOM-32模组

      首先是为了开发和学习XDDDDDD以及任何不可描述的原因。其次就是价格啦,我们打开某宝。看看模组的价格:


再看看官网给的开发板的价格:


:(快递费都够一个模组的价格了。所以还是选择模组划算一点。但是!!!!这个模组就是个裸片,要啥啥没有,如果想要丰富而且完整的功能,需要自己焊电路,而且要自己焊出串口来。所以总结一下就是:开发板开发方便,门槛低上手快,功能丰富,但是价格较高;模组门槛高,需要自己焊接外围电路,需要一些硬件开发经验,但是价格低。如果是想鼓捣鼓捣玩一玩,或者是为了开发硬件,推荐使用模组,这样对于这个模组的细节会更加了解,但是若是为了软件开发,还是建议使用开发板,可以节省大量的时间。

      那么,我为什么要选择这个模组呢?以上说的种种都不是我选择的原因==。我选择买模组主要是因为。。。。。。我下单下错了:(。想买开发板买成了模组,这到手一看是个裸片,没办法只好硬着头皮上了,发扬Geek精神。

三、模组的食用方法
3.1硬件准备
      我们想烧录固件的话,就必须在芯片上接上串口,这里的主要工作也就是如何接出ESP-WROOM-32的串口来。我们所需要的硬件主要有:
      USB转TTL小板 1个;
      杜邦线、铜导线若干;
      电烙铁 1个;
      松香    1块;
      焊锡 1坨。


      电烙铁、焊锡、松香主要是焊接引脚时使用;铜导线要细一点,因为模组的引脚只要大概1平方毫米的样子,所以先用铜导线引出来,然后将杜邦线焊接到铜导线的另一头,这样方便我们插在TTL小板子上,上面第二幅图里黑黑的东西,是我用来夹住模组的。USB转TTL小板主要是为了链接电脑,如上面第一张图。那么我们买的模组到底有多难焊呢?请看图片:

3.2原理图准备

      这么多引脚,乍一看有点懵,我们主要借鉴官方提供的WROOM-32的数据手册以及官方提供的ESP32串口链接图。首先根据官方给出的入门指导,以及ESP32的数据手册,找到ESP32通用的串口链接电路。


      EN和3V3、GND、TXD、RXD不必细说,大家应该都懂。主要是IO15与IO0的管脚比较在意,根据手册中写的IO15的功能是GPIO15、MTDO、HSPICS、UART0_RTS;IO0的功能是GPIO0。模组不同,引脚的定义也不同。那么上述两种功能的引脚在ESP-WROOM-32模组中的定义为:UART0_RTS在管脚IO22;GPIO0的定义在管脚IO0。其余管脚都在模组上写的很清楚。根据官方的描述过程,给出ESP-WROOM-32UART下载模式的电路原理图:


      大家可以根据这个电路自行焊接,有一点要注意,IO0和GND之间最好用杜邦线做一个活链接或者焊一个开关,因为下载模式时IO0要拉低,而正常工作模式要拉高。给大家看下我焊的丑图。


3.3编译环境搭建

      编译环境的搭建,主要参考官方入门手册,有中文而且超级详细。我这里做下简单地说明。

1.首先是安装编译工具链,我是用的ubuntu 64位系统,首先下载对应系统版本的工具链。

64-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
32-bit Linux:
https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz
下载完成后,将它解压到  ~/esp  目录:

mkdir -p ~/esp
cd ~/esp
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
工具链将会被解压到  ~/esp/xtensa-esp32-elf/  目录。

2.要使用工具链,你还需要在  ~/.profile  文件中更新环境变量  PATH 。要使  xtensa-esp32-elf  在所有的终端会话中都有效,需要将下面这一行代码添加到你的  ~/.profile  文件中:

export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
3. 退出并重新登录以使  .profile  更改生效。
4.获取ESP-IDF,这个就是我们的开发库。

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

5.下载完成之后,~/esp/esp-idf/example下面有很多示例代码。我们可以先编译一下hello_world。

3.4 hello_world的编译与烧写

1.将IO0接GND,插入小板。使用lsusb查看是否已经小板是否连接成功;并且使用ls -l 命令查看是否可以使用。一般来讲USB转TTL是不需要ubuntu的驱动的,直接插入之后,输入指令,可以看到如下所示的图片。


2.进入到hello_world的文件夹,文件夹下面你应该能够看到Makefile文件。在此文件夹下打开terminal,使用make menuconfigure命令能够进入到配置页面。

      这里面有很多编译的选项,当然对于一个hello_world来说,我们并不需要进行过多的设置。直接右箭头选择exit。之后执行make flash指令进行编译以及烧写。make flash指令是make与flash的合并体,一条命令就可以编译处bin文件并且进行烧写。
3.烧写完成之后,把IO0和GND之间的连接线拔下来,使模块进入工作模式。并且输入make monitor查看串口输出信息,或者使用串口调试助手也是可以的。

PS:请不要跟着网上的一些教程进入windows下面烧写,那个工具我在测试的时候烧固件成功,但是无法正常运行,切换到ubuntu环境下流畅运行,还是ubuntu对开发者更友好一些!!!!
      
      到此为止,入坑指南就结束了!但是开发工作仍在继续,大家一起努力吧!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐