写在最前面:本文仅仅只是ESP32的入门指南,对官网以及其他不负责任的博主文章的勘误。
搞笑的是,我后来发现这样焊接出来的ESP32的模块不是很稳固,尤其是接线进行烧录那里,所以后面换用了ESP8266开发板,用一句流行的话表达我的心情“真香!”
ESP-WROOM-32(ESP32)是乐鑫最新发布的新一代 WiFi & 蓝牙 双模双核无线通信芯片。芯片集成蓝牙4.2和WiFi HT40技术为一身,拥有高性能Tensilica LX6 双核处理器,支持超低功耗待机,是移动设备、可穿戴电子产品和物联网应用的最佳拍档。而且官方对该模组软硬件进行了开源,原理图与PCB布局均可以免费下载。是我们开发物联网设备时候的良好选择。关于此芯片的详细介绍,可以参考官网。官网开源资料也很丰富,本指南也是参考着官网资料才开始进行的。
这里插一句嘴,乐鑫官网的资料十分给力,包括github上面的源码也很多,超级棒。ESP32的教程可以参考txgcwm的博客,个人认为很有效果,而ESP8266的教程可以参考半颗心脏的博客。
首先是为了开发和学习XDDDDDD以及任何不可描述的原因。其次就是价格啦,我们打开某宝。看看模组的价格:
再看看官网给的开发板的价格:
:(快递费都够一个模组的价格了。所以还是选择模组划算一点。但是!!!!这个模组就是个裸片,要啥啥没有,如果想要丰富而且完整的功能,需要自己焊电路,而且要自己焊出串口来。所以总结一下就是:开发板开发方便,门槛低上手快,功能丰富,但是价格较高;模组门槛高,需要自己焊接外围电路,需要一些硬件开发经验,但是价格低。如果是想鼓捣鼓捣玩一玩,或者是为了开发硬件,推荐使用模组,这样对于这个模组的细节会更加了解,但是若是为了软件开发,还是建议使用开发板,可以节省大量的时间。
那么,我为什么要选择这个模组呢?以上说的种种都不是我选择的原因==。我选择买模组主要是因为。。。。。。我下单下错了:(。想买开发板买成了模组,这到手一看是个裸片,没办法只好硬着头皮上了,发扬Geek精神。
这么多引脚,乍一看有点懵,我们主要借鉴官方提供的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要拉低,而正常工作模式要拉高。给大家看下我焊的丑图。
编译环境的搭建,主要参考官方入门手册,有中文而且超级详细。我这里做下简单地说明。
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/
目录。
~/.profile
文件中更新环境变量
PATH
。要使
xtensa-esp32-elf
在所有的终端会话中都有效,需要将下面这一行代码添加到你的
~/.profile
文件中:
export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
3.
退出并重新登录以使
.profile
更改生效。
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
1.将IO0接GND,插入小板。使用lsusb查看是否已经小板是否连接成功;并且使用ls -l 命令查看是否可以使用。一般来讲USB转TTL是不需要ubuntu的驱动的,直接插入之后,输入指令,可以看到如下所示的图片。