ESP32 和 ESP8266 有什么区别?您应该在项目中使用 ESP32 还是 ESP8266?在本文中,我们将比较 ESP32 和 ESP8266,并介绍每种板的优缺点。
ESP32 和 ESP8266 是廉价的 Wi-Fi 模块,非常适合物联网 (IoT) 和家庭自动化领域的 DIY 项目。
两种芯片都有一个 32 位处理器。ESP32是双核160MHz 至 240MHz CPU,而 ESP8266 是单核处理器,运行频率为 80MHz。
这些模块带有支持各种协议的 GPIO,如 SPI、I2C、UART、ADC、DAC 和 PWM。最好的是这些板带有无线网络,这使它们与其他微控制器(如Arduino )区分开来。这意味着您可以通过 Wi-Fi 或蓝牙(在 ESP32 的情况下)以非常低的价格轻松地远程控制和监控设备。
或者,如果您不需要使用其无线功能,您可以使用 ESP32/ESP8266 来控制输入和输出,就像使用 Arduino 一样。但是,您应该考虑到 Arduino 使用 5V 逻辑工作,而 ESP32 和 ESP8266 工作在 3.3V。
目录
规格:ESP32 与 ESP8266
ESP32是ESP8266的继任者。它增加了一个额外的 CPU 内核、更快的 Wi-Fi、更多的 GPIO,并支持蓝牙 4.2 和蓝牙低功耗。此外,ESP32 带有可用于将 ESP32 从深度睡眠中唤醒的触敏引脚、内置霍尔效应传感器和内置温度传感器(最新版本的 ESP32 不附带内置温度传感器了)。
两块板都很便宜,但 ESP32 的成本略高。虽然 ESP32 的价格约为 22~40人民币,但 ESP8266 的价格为12~30人民币(但这实际上取决于您从哪里获得它们以及您购买的是什么型号)。
下表显示了 ESP8266 和 ESP32 芯片之间的主要区别(表格改编自AMICA_IO)。
ESP8266
|
ESP32
|
|
---|---|---|
单片机
|
Xtensa 单核 32 位 L106
|
Xtensa 双核 32 位 LX6,具有 600 DMIPS
|
802.11 b/g/n 无线网络
|
HT20
|
HT40
|
蓝牙
|
X
|
蓝牙 4.2 和 BLE
|
典型频率
|
80兆赫
|
160兆赫
|
SRAM
|
X
|
✓
|
闪光
|
X
|
✓
|
通用输入输出接口
|
17
|
34
|
硬件/软件PWM
|
无 / 8 通道
|
无 / 16 通道
|
SPI/I2C/I2S/UART
|
2/1/2/2
|
4/2/2/2
|
ADC
|
10位
|
12 位
|
能够
|
X
|
✓
|
以太网 MAC 接口
|
X
|
✓
|
触摸传感器
|
X
|
✓
|
温度感应器
|
X
|
✓(旧版本)
|
霍尔效应传感器
|
X
|
✓
|
工作温度
|
-40ºC 至 125ºC
|
-40ºC 至 125ºC
|
价格
|
10元
|
18元
|
哪里买(这个)
|
某宝可行
|
使用 ESP32 或 ESP8266 裸芯片并不容易或实用,尤其是在测试和原型设计时。大多数时候,您会想要使用 ESP32 和 ESP8266 开发板。这些电路板配备了为芯片供电、将其连接到计算机、轻松上传代码的电路、连接外围设备的引脚、内置电源和控制 LED 以及其他有用功能所需的所有电路。
我们比较常用的 ESP32 和 ESP8266 开发板是ESP32 DEVKIT DOIT 开发板和ESP8266 ESP-12E NodeMCU Kit,这些是我们推荐给初学者的。但是,您可以选择许多其他型号的开发板。
ESP32 上有更多 GPIO
ESP32的GPIO比ESP8266多,您可以决定哪些引脚是 UART、I2C、SPI——您需要在代码中进行设置。这是可能的,因为 ESP32 芯片的多路复用功能允许您将多个功能分配给同一个引脚。
如果代码上不设置,默认在定义的管脚上,如下图(以ESP32 DEVKIT V1 DOIT板(36GPIOS版)为例)——管脚位置可以因制造商而异)。
为了进行比较,这里是ESP8266 ESP-12E NodeMCU 开发板的引脚图。
PWM、ADC 等
Arduino IDE – ESP32 与 ESP8266
有很多方法可以对 ESP32 和 ESP8266 板进行编程。两个板都可以使用 Arduino IDE 或其他 IDE(如带有 PlatformIO 扩展的 VS Code )使用 Arduino 内核进行编程。
这些都是不错的,特别是对于那些习惯于对 Arduino 板进行编程并熟悉 Arduino“编程语言”的人。
使用 Arduino IDE 开始使用 ESP32 或 ESP8266 并运行您的第一个项目非常简单。您可以遵循以下指南:
尽管您可以使用 Arduino IDE 对这两个板进行编程,但它们可能与相同的库和函数不兼容。一些库仅与其中一个板兼容。这意味着大多数情况下,您的 ESP8266 代码将与 ESP32 不兼容。但是,通常,您需要进行一些修改。
我们有一个使用 Arduino IDE 的 ESP32 和 ESP8266 板的免费教程和项目的教程集合,您可能会发现它们很有用:
MicroPython Firwmare – ESP32 与 ESP8266
另一种对 ESP32 和 ESP8266 板进行编程的流行方法是使用 MicroPython 固件。
MicroPython是针对微控制器和嵌入式系统的 Python 3 的重新实现。MicroPython 与常规 Python 非常相似。因此,如果您已经知道如何使用 Python 编程,那么您也知道如何使用 MicroPython 进行编程。
在 MicroPython 中,大多数 Python 脚本都与这两个板兼容(与使用 Arduino IDE 时不同)。这意味着大多数时候,您可以对 ESP32 和 ESP8266 使用相同的脚本。
您可以按照我们的免费指南快速开始使用 ESP32 和 ESP8266 上的 MicroPython 固件:
- ESP8266使用micropython编程
- ESP32使用micropython编程 (努力添加中)
选择ESP32 还是 ESP8266?
所以,此时您可能想知道: 我应该买 ESP8266 还是 ESP32?
这真的取决于你想做什么。两块板各有利弊。
ESP8266 比 ESP32 便宜。虽然它没有那么多功能,但它适用于大多数简单的 DIY IoT 项目。但是,它在 GPIO 映射中存在一些限制,并且它可能没有足够的引脚来执行您打算执行的操作。如果是这种情况,你应该得到一个 ESP32。
ESP32 比 ESP8266 功能强大得多,具有更多多功能的 GPIO,更快的 Wi-Fi,并支持蓝牙。但是,很多人认为 ESP32 比 ESP8266 更难处理,因为它更复杂。相反,在我们看来,对 ESP32 进行编程就像对 ESP8266 一样容易,特别是如果您打算使用“Arduino 语言”或 MicroPython 对其进行编程。
ESP32 也有一些缺点。ESP32 比 ESP8266 贵。因此,如果您正在构建一个简单的物联网项目,ESP8266 可能会以较低的价格实现这一目标。此外,由于 ESP8266 比 ESP32“旧”,一些库和功能为 ESP8266 开发得更好,您会发现更多资源(论坛、有相同问题的人以及如何解决这些问题等)。然而,随着时间的推移,ESP32 被广泛采用,这些在开发和库方面的差异将不会被注意到。
我的个人经验:在 2021 年,我几乎只将 ESP32 用于 IoT 项目。它更加通用,并且具有更多功能,例如蓝牙、不同的唤醒源、许多外围设备等等。此外,在我看来,价格差异并不是什么大问题。一旦你转移到 ESP32,你就不想回到 ESP8266。
总结
希望我们对 ESP32 与 ESP8266 的分析对你也很有用。
总结一下 ESP32 和 ESP8266 之间的主要区别:
- ESP32 比 ESP8266 快;
- ESP32 的 GPIO 更多,功能更丰富;
- ESP32 支持 18 个通道(启用ADC的引脚)上的模拟测量,而 ESP8266 上仅支持一个 10 位 ADC 引脚;
- ESP32 支持蓝牙,而 ESP8266 不支持;
- ESP32为双核,ESP8266为单核;
- ESP8266 比 ESP32 便宜;
- ESP8266 拥有更广泛的社区(虽然我们认为在这一点上,差异不是那么大);
- 对于许多物联网和 Wi-Fi 项目,ESP8266 可以以更低的价格完成这项工作;
- 两个板都可以使用 Arduino IDE 或其他支持的 IDE 使用 Arduino 内核进行编程。
- 两个板都支持 MicroPython 固件。
ESP32联网速度要快得多