概述
ESP32是乐鑫继ESP8266后推出的又一款集成WiFi功能的微控制器。ESP32拥有比ESP8266更加强大的性能,可以用来开发更加复杂的应用。就拿下章节中模块所使用的的ESP32-D0WD
来说,该芯片具有下列特点:
- WiFi支持 802.11 b/g/n,802.11 n (2.4 GHz) 速度高达 150 Mbps;
- 支持蓝牙 v4.2 完整标准,包含传统蓝牙 (BR/EDR) 和低功耗蓝牙 (BLE);
- 32位双核处理器,CPU正常工作速度为80MHz,最高可达240MHz,运算能力高达 600 MIPS;
- 内置 448 KB ROM;
- 内置520 KB SRAM;
- 最大支持 16 MB 片外 SPI Flash;
- 最大支持 8 MB 片外 SPI SRAM;
- 包含常用微控制器的基本功能;
可以看到性能还是蛮好的,对于应用开发来说也方便不少,比如说可以更加任性的使用microPython等耗性能的脚本语言。
更多相关内容参考乐鑫官网: https://www.espressif.com/zh-hans/products/hardware/esp32/overview
常用模块介绍
一般来说需求量不是很大或是对外形尺寸没有特殊需求的话,使用ESP32直接用现成的模块最为方便。常见的模块主要有乐鑫自家的和安信可的。
上面的是乐鑫自家淘宝店中,官方推荐的几款,区别在于天线形式和是否带PSRAM(外挂内存)。
上面的是安信可官方淘宝店中卖的ESP32模块,和上面乐鑫自家的模块对应,区别在于安信可的模块天线方式是通过模块上天线附近的电阻来切换的。
最小系统示例
上面的模块使用起来都非常简单,在这里用乐鑫ESP32-WROOM-32U
模块做个最小系统板的示例。(如果你只是开发应用,不需要特定电路功能的话直接买官方或者第三方的开发板就成)
原理图
原理图参考了乐鑫《ESP32-WROOM-32D & ESP32-WROOM-32U 技术规格书》
中外围原理图
章节:
对于ESP32的模组来说,使用只需要关注三个(四个)点:
- 提供
3.3V
电源,至少需要500mA
; EN
管脚低电平时系统复位;IO0
管脚输入低电平时系统复位进入UART 下载模式
,输入高电平时系统复位进入Flash 运行模式
;
还有一点需要特别注意的是ESP32的IO12,这个IO口上上电时的电平会决定外部flash(存放程序的那颗)的工作电压,上电时该脚为高则认为flash工作于1.8V,为低则认为flash工作于3.3V。
常用的像是Wroom-32系列模块该脚内部已下拉,即flash是工作于3.3V的,若外部电路接强上拉则可能导致模块工作异常;而像是WROVER模块该脚是内部上拉的,flash工作于1.8V,外部上拉不影响模块运行。
上图中ESP32-WROOM-32U
模块可以和ESP32-WROOM-32D
模块互换;CH340和IRLML2502配合esp tool共同实现了下载时自动进入下载模式的功能。
成品展示
额外内容
这里送上一张WROOM32模块管脚整理图示,方便大家使用,当然完整管脚说明需要去参考的乐鑫官方《ESP32 技术规格书》:
图片来源:https://hackaday.com/2016/09/15/esp32-hands-on-awesome-promise/
开发方式选择
ESP32开发方式蛮多样的,下面列举几个常用的:
- 乐鑫官方ESP-IDF,这是官方的首推的开发方式,能够最大限度发挥ESP32的性能,代价就是不方便或者说是开发不是那么高效;
https://docs.espressif.com/projects/esp-idf/zh_CN/stable/
https://github.com/espressif/esp-idf/releases - 乐鑫官方出品
Arduino core for the ESP32
,官方出品的Arduino支持,相比前一个性能虽然打折,但是用来尝鲜还是非常不错的,上手简单;
https://github.com/espressif/arduino-esp32
总结
ESP32是一款非常适合作为物联网产品开发的微控制器,自带WiFi和Bluetooth功能也适合作为当下时代电子爱好者或者极客的入门选择。