赞
踩
本专栏主要内容是记录基于ESP32的开发工作,包括介绍 ESP32 基础知识、开发环境搭建、基础外设使用、蓝牙、WiFi 、与微信小程序联动等知识,达到自己动手做一些智能硬件的目的。
开发过程中主要参考官方资料,包括官网、规格书、参考手册、编程指南、驱动包等。
本专栏适合对ESP32感兴趣,想要找一个简单入手教程的同学。
(2-1)开发环境搭建(基于Arduino)
(2-2)开发环境搭建(基于VS Code+PlatformIO)
(2-3)开发环境搭建(基于ESP-IDF软件)
(3-1)基础外设使用(GPIO)
(3-2)基础外设使用(USART)
笔者此前做过 STM32 的开发工作,使用过 HC05、ESP8266 模块。由于对智能家居比较感兴趣,所以选择乐鑫科技的 ESP32 作为开发硬件,在此基础上逐步探索 ESP32 的更多应用,达到自己动手做一些智能硬件的目的,使用此笔记来记录开发 ESP32 开发过程。
ESP 分组计划介绍 ESP32 基础知识、开发环境搭建、基础外设使用、蓝牙、WiFi 、使用微信小程序控制开发板硬件等,后续有想写的再补充。
开发过程中主要参考官方资料,包括官网、规格书、参考手册、编程指南、驱动包等。
❗强调一句,本文章只是对笔者自己开发过程的一个记录,不含有教程属性,不对结果负责,有写的不对的地方欢迎大家友善讨论。
之前使用 ESP8266 模组的时候,感觉乐鑫的文档做的很不错,后面出了各种型号的 ESP32,最近有时间,想入手一块 ESP32 的板子。点进乐鑫的官网,面对着琳琅满目的系列有点不知道怎么选。从我需求来说,想找一块带 WiFi 和蓝牙的板子,通过乐鑫的选型工具,最终选择了下面的模组。
虽然是选完了,但还是有点不太懂,比如 ESP32
、ESP32-S
、ESP32-C
、ESP32-H
、ESP32-WROOM-32E
、ESP32-D0WD-V3
都是啥意思。尤其是在网上看到这样一张图。
但看官网的介绍,S3 系列也有了低功耗蓝牙。有点懵,还是以官网介绍为准吧。
我们按照由大到小的分类来看 ESP32 系列。目前官网列出的 ESP32 主要系列有以下。(截止 2023-12-8)
系列 | MCU & WiFi & Bluetooh | **MCU ** | 单双核 | 系列拥有的芯片 |
---|---|---|---|---|
ESP32-S2 | 32-bit MCU & 2.4 GHz Wi-Fi | Xtensa 32 位 LX7 | 单核 | ESP32-S2、ESP32-S2FH2、ESP32-S2FH4、ESP32-S2FN4R2、ESP32-S2R2 |
ESP32-S3 | 32-bit MCU & 2.4 GHz Wi-Fi & Bluetooth 5 (LE) | Xtensa 32 位 LX7 | 双核 | ESP32-S3、ESP32-S3FN8、ESP32-S3R2、ESP32-S3R8、ESP32-S3R8V、ESP32-S3R16V、ESP32-S3FH4R2 |
ESP32-C2 | 32-bit RISC-V MCU & 2.4 GHz Wi-Fi & Bluetooth 5 (LE) | 32 位 RISC-V 处理器 | 单核 | ESP8684H1、ESP8684H2、ESP8684H4 |
ESP32-C3 | 32-bit RISC-V MCU & 2.4 GHz Wi-Fi & Bluetooth 5 (LE) | 32 位 RISC-V 处理器 | 单核 | ESP32-C3、ESP32-C3FN4、ESP32-C3FH4、ESP32-C3FH4AZ |
ESP32-C6 | 32-bit RISC-V MCU & 2.4 GHz Wi-Fi 6 & Bluetooth 5 (LE) & IEEE 802.15.4 | 32 位 RISC-V 处理器 | 单核 | ESP32-C6、ESP32-C6FH4 |
ESP32-H2 | 32-bit RISC-V MCU & Bluetooth 5 (LE) & IEEE 802.15.4 | 32 位 RISC-V 处理器 | 单核 | ESP32-H2FH2、ESP32-H2FH4 |
ESP32 | 32-bit MCU & 2.4 GHz Wi-Fi & BT/Bluetooth LE | Xtensa 32 位 LX6 | 单/双核 | ESP32-DOWD-V3、ESP32-DOWDR2-V3、ESP32-U4WDH、ESP32-SOWD、ESP32-DOWD、ESP32-DOWDQ6、ESP32-DOWDQ6-V3 |
对于每一个具体的系列,比如 ESP32,其含有像ESP32-DOWD-V3
、ESP32-DOWDR2-V3
等不同的芯片,这些芯片之间有什么差异会放在芯片的章节搭配上芯片命名规则看更清晰。(呃,我的文章是在语雀写的,语雀支持文档内章节的跳转,但CSDN貌似不支持)
以我购买的ESP32-DevKitC-32E
开发板为例,板载的模组为ESP32-WROOM-32E
,板载的芯片为ESP32-DOWD-V3
。
那开发板和模组有啥关系呢?控制变量法,我们选择采用同一模组的不同型号开发板看看。例如下面这个音频开发板ESP32-LyraT V4.3
和以太网开发板ESP32-Ethernet-Kit
,采用的模组都是ESP32-WROVER-E
,看一下他们的框图。
由上图可见,采用同一型号模组的不同型号开发板,主要是其板载的硬件资源不一样,而硬件是与功能强相关的。比如有两块开发板都是用的是 STM32H743IGT6
芯片,一块板子要用来和其他板子进行RS485
通信,那板子上就需要有电平转换芯片。一块板子用来做电机控制,那就需要有电机控制芯片。
所以,在模组的外围接上与功能相对应的外围电路,即可组成开发板。像我购买的开发板,没有什么特殊的音视频需求,WiFi 和蓝牙需求模组均可以满足,就无须额外接电路,把电源、复位、IO 引出即可。
有点不太明白的是,60 多块钱的开发板,怎么不多接一个 LED 灯在 GPIO 上,看板子的布局也不是特别紧凑。是想着不占用任何一个 IO?全提供给用户使用?
模组和芯片有啥关系呢?把选型工具图中右侧的框图放大就能看出来了。给芯片接上电源、晶振、复位电路、SPI Flash、天线之后,就变成了模组。
同一个型号的模组例如ESP32-WROOM-32E
所用的芯片是一样的,那为啥同一个模组下还分那么多的后缀型号呢?区别就在于模组内封装的 SPI Flash、PSRAM、适用的环境温度不一样,看下表即可。
再比如与ESP32-WROOM-32E
很像的还有一个模组叫ESP32-WROOM-32UE
,一个字母之差,区别就在于两者的天线形式不一样,所导致的模组尺寸也不一样。两个模组内含有的型号都很相似。
以我购买的ESP32-DevKitC-32E
开发板为例,板载的模组为ESP32-WROOM-32E
,板载的芯片为ESP32-DOWD-V3
。
不同的芯片,主要是其内核数量、封装 Flash 大小、封装、芯片版本不一样。
再来一次,以我购买的ESP32-DevKitC-32E
开发板为例,板载的模组为ESP32-WROOM-32E
,板载的芯片为ESP32-DOWD-V3
为例。
我手上的开发板型号为ESP32-DevKitC-32E
,使用的模组为 ESP32-WROOM-32E
。
开发板图片如下。
主要组件 | 基本介绍 |
---|---|
ESP32-WROOM-32 | 基于 ESP32 的模组。更多详情,请见 《ESP32-WROOM-32 技术规格书》。 |
EN | 复位按键。 |
Boot | 下载按键。按下 Boot 键并保持,同时按一下 EN 键(此时不要松开 Boot 键)进入“固件下载”模式,通过串口下载固件。 |
USB-to-UART 桥接器 | 单芯片 USB-UART 桥接器,可提供高达 3 Mbps 的传输速率。 |
Micro USB 接口。 | USB 接口,可用作电路板的供电电源,或连接 PC 和 ESP32-WROOM-32 模组的通信接口。 |
5V Power On LED | 开发板通电后(USB 或外部 5 V),该指示灯将亮起。更多信息,请见 相关文档 中的原理图。 |
I/O | 板上模组的绝大部分管脚均已引出至开发板的排针。用户可以对 ESP32 进行编程,实现 PWM、ADC、DAC、I2C、I2S、SPI 等多种功能。 |
实物图正面如下。
背面如下,由于ESP32-DevKitC-32E
没有板载的 LED 灯,所以在其 GPIO16
和GND
之间接了一个 LED 灯,方便观察程序运行现象。
下图是在 wokwi 的网站上制作的上述GPIO16
到GND
的连接图,还可以编写代码来验证硬件连接的正确性。有点像之前学 51 时候,用来仿真代码的 proteus。
ESP32 是集成 2.4 GHz Wi-Fi 和蓝牙双模的单芯片方案,采用台积电 (TSMC) 低功耗 40 纳米工艺,具有超高的射频性能、稳定性、通用性和可靠性,以及超低的功耗,满足不同的功耗需求,适用于各种应用场景。芯片的功能框图如下。
ESP32 开发板上最核心的就是其使用的模组了,模组内封装了 CPU、外设、Flash、SRAM、晶振等组件,然后将电源、复位、启动模式选择等引脚留给外面的底板和连接器。
开发板使用的模组是ESP32-WROOM-32E
,ESP32-WROOM-32E
是一款通用型 Wi-Fi + Bluetooth + Bluetooth LE MCU 模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务,例如语音编码、音频流和 MP3 解码等。 ESP32-WROOM-32E
采用 PCB 板载天线。ESP32-WROOM-32E
模组采用的核心芯片是 ESP32 系列的ESP32-D0WD-V3
。ESP32-D0WD-V3
芯片具有可扩展、自适应的特点。两个 CPU 核可以被单独控制。CPU 时钟频率的调节范围为 80 MHz 到 240 MHz。用户可以关闭 CPU 的电源,利用低功耗协处理器监测外设的状态变化或某些模拟量是否超出阈值。ESP32 还集成了丰富的外设,包括电容式触摸传感器、SD 卡接口、以太网接口、高速 SPI、UART、I2S 和 I2C 等。
ESP32-WROOM-32E
共有 38 个管脚。管脚布局如下。管脚定义查看模组的数据手册-3.2 章节即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。