之前有人说我写的ESP32太浅了,今天我们就聚焦ESP32,详细了解一下它的具体情况。本文所有信息都基于乐鑫的官方文档,具体详细资料我也会放在文末,大家自行查阅。本文会有一点点的枯燥,如果你是第一次接触ESP32,那这篇文章还请你耐心看下去,会对你有一些帮助,如果我写的有啥问题,还请多多指正。
硬件配置
ESP32芯片采用基于Xtensa架构的32位双核处理器,支持高达 240 MHz 的时钟频率,片上集成520KB SRAM、448KB
ROM和16KB RTC SRAM。片外支持 最大16MB SPI Flash 和8MB SPI RAM 。
很多人以为ESP32是 4MB Flash ,这其实是模组里板载的Flash芯片, 芯片只有448KB
。当然正常情况下,为了省事儿都是直接买了模组,可以少画不少电路,当然模块的价格也要稍微贵一些。
ESP32支持WiFi 802.11b/g/n, 蓝牙4.2
BR/EDR和蓝牙LE标准,支持的蓝牙协议相当齐全,还支持传统蓝牙的传输方式,也就意味着可以作为一个蓝牙接收器,作为一个蓝牙音箱来用。
支持协议和外设:SD 卡、UART、SPI、SDIO、I2C、PWM、I2S、IR、脉冲计数器、GPIO、电容式触摸传感器、ADC、DAC、TWAI®
ESP32使用Cadence® Tensilica® Xtensa® LX6 处理器,没错就是那个大名鼎鼎的EDA软件厂商( Allegro
可能不少人知道)设计的处理器,它设计的时候就考虑到了可扩展性,配置自定义性,如果你有兴趣做一个自己的CPU,选择它CPU进行一定程度的修改和开发是个好的开始。目前它最新的处理器代号是
LX7 ,也是ESP32 S系列使用的处理器。
芯片
ESP32-D0WD-V3芯片
首先它的外形明显要小很多,它采用 QFN48封装 ,尺寸仅为 6x6mm
,缺点是人工基本无法进行焊接,需使用贴片机来进行组装,比较适合量大的和技术积累较为深厚的用户。
ESP32-D0WD-V3芯片的封装尺寸图
芯片第二个特点是 电路比较精简 ,没有天线、晶振这种外围部件,这些需要你在设计中自行解决,比如天线,设计的时候可以使用信号更强的,可
自定义性更强 ,但对于很多人来说反而是个负担,因为需要耗费更多时间。
模组
模组可能是大家见过最多的一种形式,大部分基于ESP32的开发板几乎都使用了模组,所以这里我重点介绍它。
首先它尺寸大了很多,来到了18×25.5mm
模块有不同的系列和版本,一般可以分为是否有板载天线,和Flash大小的区别,这个系列被叫做 WROOM 。
还有一个系列 WROVER ,板载有 8MB PSRAM ,尺寸要更大一些
尺寸来到了 31.4X18 mm
还有一个SOLO系列,基于单核芯片设计,如果你对性能没太高要求,可以考虑使用这个, 还能便宜点
第二个区别是把部分设计复杂的电路集成到了一小片PCB上,下图是模块拆掉上面铁盖后的样子,你会发现这里面有一个ESP32芯片
此图是ESP32模组整合其他部件的示意图,可以看到有天线,晶振和外挂的Flash。
如何设计ESP32开发板
模组只要接上 USB烧录芯片 和一个 电压转换芯片 就可以直接对ESP32进行开发了。
为了避免芯片不被烧坏,请不要直接连接5V电压,ESP32的电路都 只能承受最高3.6V电压 。所以一般情况下我们还会加上一个
3.3V转5V 的芯片。目前来看几乎都使用的 AMS1117 芯片,成本低廉。用USB线通电就可以直接上传程序。
USB烧录芯片选择比较多,建议选择焊接难度低的就行,比如沁恒(WCH)的 CH340C
,如果你制作好了开发板,但上传不了大概率是烧录芯片的问题。
加上一个Boot按钮和重启按钮,最后再加上烧录状态的指示灯和引脚,基本上就大功告成了。你可以去 立创开源社区
找几个别人分享的图纸看看,这类资源很丰富。最后你需要的就是耐下心来焊接。
一点提示,如果你已经想去做一个开发板了,但你没有太多焊接经验,强烈不建议使用Type-C的USB接口,焊接难度提升了不是一点点,还是建议使用
MicroUSB 的接口。
网友基于官方文档设计的ESP32原理图
三维渲染图
可以说有了模块之后,玩ESP32会方便很多。如果你对体积有要求(没要求直接买现成的了,如果还想要小,就直接用ESP32芯片),或者需要做一个正儿八经的产品,模块是你的不二之选。
ESP32有 38
个引脚,去掉一些无法利用的,和重复的引脚,可使用的有20几个I/O接口,对于大部分项目来说够用,但是对于需要更多I/O口的同学,现在你还可以使用ESP32S2,S3这种,可以提供更多引脚。
软件生态
ESP32的软件生态可以说是相当丰富,可以使用官方的 ESP-IDF 框架开发,下图是在VScode里用ESP-IDF开发的画面
ESP-IDF的问题是 门槛略高 ,需要一定的基础才能玩,但是能获得最全面最稳定的使用体验。毕竟 官方出品 。
Arduino IDE 对ESP32的 适配非常全
,型号太多了,在选型号的时候,看型号和翻页都得花点时间。示例程序比较齐全,使用习惯也完全适配Arduino,库非常强大,非常推荐。
下面推荐使用的是 MicroPython ,使用 Thonny 编辑器开发非常方便,上传程序的速度我很满意,Arduino
IDE的编译速度其实还是挺快的,特别是UNO这种Arduino自己的开发板,但是ESP32的编译速度真的是龟速,原因不清楚,特别是第一次很慢,之后第二次编译会快些。
缺点是库还是比较少,部分功能上有所缺失,并且你得会Python,实际上MicroPython就是一个为了适配开发板专门适配的版本,所以会和真正的Python有少许的区别,但我觉得这都是小问题,随着时间都会解决的。
如果你不会编程咋办,可以选择 图形化 编程 的方式,因为创客教育的兴起,现在各类图形化编程软件都适配了ESP32,比如 Mixly 、
Mind+
这类软件,只需要拖拖拽拽,程序就弄好了,非常方便。有时候写程序如果只是测试部件好不好用,用一下这类软件,也是相当不错。而且这种软件实质就是在Arduino、MicroPython上套一个壳,程序可以随时换成Arduino这种软件。
说一下开发的建议,如果你只是想试试看ESP32,稍微了解一下,那你可以选择各类支持ESP32的图形化编程软件,上手很快。如果你是正儿八经开发产品的,建议使用Arduino或者ESP-
IDF,可以得到最佳的生态和功能支持度。如果你想要快速开发,且会一点点Python,那建议你直接选择MicroPython。
玩法
替代Arduino部分开发板
这可能是它的主要用途,因为控制器这个领域,性能不是第一位的,如果你只是把它当作一个Arduino来用,那你会非常满意,因为它还送了WiFi、
蓝牙。但是需要注意它的芯片电压主要还是3.3V的,建议纯当控制器来用, I/O引脚不要去做任何的供电,请只用I/O来做控制
物联网
这也是一个主要方向,也是因为它带有蓝牙、WiFi且价格很不错。具体可以实现如:远程控制各类电机、设备,远程获取各类传感器信息。如果你有耐心的话,可以自己做全套的智能家居,最简单的应用,比如:ESP32连接继电器,手机远程控制开关灯。
开发产品
这时候就可以利用到ESP32强大的性能了,Arduino这种开发板性能比较差,如果驱动彩色屏幕的话,复杂一些的画面,就无法驱动了,而ESP32性能就可以进行一些
GUI 的开发(比如 LVGL ),给人的效果有点像操作系统,可以触摸,可以打字,比如做一个ESP32的 手机 ,ESP32的
MP3 ,ESP32的 电子书 ,这种都是可以实现的。
ESP32在这些领域里很多爱好者做出很多有趣的东西,ESP32在网上有很多它的资料,作品。大家都可以去参考参考,之后我们也
会发一些ESP32项目的文章 。
ESP32开发板选购建议
如果你是第一次玩ESP32,建议购买已经比较成熟的开发板,因为这类开发板稳定性和质量都经过了市场检验,最重要的是技术资料、售后都比较齐全,这些在入门的时候非常重要。质量也比较有保障。这样你可以专注于实现功能,进而体会到玩这些东西的乐趣。
我推荐你使用掌控板或者M5Stack系列的产品
掌控板2.0
只要 99 ,买不了吃亏,买不了上当
它带有OLED屏幕,磁场传感器,三轴加速度传感器,麦克风等传感器
把这些都凑齐放在一起,我觉得很值
点击蓝色字体查看它的详细信息
掌控板2.0介绍
复制下方链接 到淘宝APP打开即可下单
https://m.tb.cn/h.fO4flAq?tk=p3iE23IDTIO
M5Stack Core 2
有钱的同学适合购买,带有2寸触摸屏,各类传感器也是齐全
而且还有一个好看的外壳,如果你在意你的东西的 颜值 ,请选它。
点击蓝色字体查看它的详细信息
模块化的先行者——M5Stack Core2
复制下方链接 到淘宝APP打开即可下单
https://m.tb.cn/h.fm5gbGd?tk=x3ym23IxJJn
如果你是已经玩过不少ESP32开发板,可以根据你自己的需求选购
比如:想要小尺寸可以看看:
M5Stack Stamp Pico
之前也有介绍过,尺寸超小,价格合理
点击蓝色字体查看它的详细信息
可能是目前最小的开发板——M5Stack Stamp Pico
复制下方链接
到淘宝APP打开即可下单
https://m.tb.cn/h.fN50qWV?tk=bCzI23Ix155
如果你比较喜欢折腾,或者就职于相关行业,那我建议你直接根据需要自行设计开发板,虽然最开始有各种坑在等着你,但这些经验都是你的财富。
总结
ESP32可以说是我在它上面花了最多时间的芯片,真的是很喜欢,如果你想要玩玩看,那是非常欢迎,但是如果你不是靠这个吃饭,建议将精力更多的花在动手和创造上。
如果是你想要做一个需要电和编程的东西,ESP32是一个很好的核心,但是不必
过于纠结中间的细节,可以去参考别人的东西,然后放到自己的项目里,这样你可以比较快的实现你的创意,实现效果带来的开心会让你继续下去的。当然如果你感受不到快乐,那我建议交给别人来做。
之后还会发出各类型号的详细文章,大家敬请期待,如果你觉得这篇文章对你有用,还请点个赞,在此先谢谢了。
照例一个小调查,您的反馈对我们非常重要,谢谢
资料链接
乐鑫文档中心
https://www.espressif.com/zh-hans/support/documents/technical-documents