ESP-WROOM-32模组入坑指南

写在最前面:本文仅仅只是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对开发者更友好一些!!!!
      
      到此为止,入坑指南就结束了!但是开发工作仍在继续,大家一起努力吧!

ESP-WROOM-32 技术规格书 ESP-WROOM-32 是一款通用型 WiFi-BT-BLE MCU 模组,功能强大,用途广泛,可以用于低功耗传感器网络和 要求极高的任务,例如语音编码、音频流和 MP3 解码等。 此款模组的核心是 ESP32 芯片,具有可扩展、自适应的特点。两个 CPU 核可以被单独控制或上电。时钟频率 的调节范围为 80 MHz 到 240 MHz。用户可以切断 CPU 的电源,利用低功耗协处理器来不断地监测外设的状态 变化或某些模拟量是否超出阈值。ESP32 还集成了丰富的外设,包括电容式触摸传感器、霍尔传感器、低噪声 传感放大器,SD 卡接口、以太网接口、高速 SDIO / SPI、UART、I2S 和 I2C 等。 ESP-WROOM-32 集成了传统蓝牙、低功耗蓝牙和 Wi-Fi,具有广泛的用途:Wi-Fi 支持极大范围的通信连接,也 支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播 BLE Beacon 以便于信号检测。ESP32 芯片的睡眠电流小于 5 µA,使其适用于电池供电的可穿戴电子设备。ESP-WROOM-32 支持的数据传输速率高 达 150 Mbps,经过功率放大器后,输出功率可达到 22 dBm,可实现最大范围的无线通信。因此,这款芯片拥 有行业领先的技术规格,在高集成度、无线传输距离、功耗以及网络联通等方面性能最佳。 ESP32 的操作系统是带有 LWIP 的 freeRTOS,还内置了带有硬件加速功能的 TLS 1.2。芯片同时支持 OTA 加密 升级,开发者可以在产品发布之后继续升级。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值