ESP32、ESP8266、Arduino Uno 怎么选?开发板实话对比

Cartoon illustration of an Arduino Uno, a NodeMCU ESP8266 and an ESP32 DevKit board side by side

做离线项目、围绕 5 V 电机和传感器来搭的,买 Arduino Uno;预算最紧又想要 WiFi 的,买 ESP8266 NodeMCU;需要蓝牙、摄像头或更大内存的,就上 ESP32。对大多数 IoT 项目和 FYP 来说,ESP32 DevKit 是最稳的全能选择。下面是一份实话实说的对比,坑也一并讲清楚。

ESP32、ESP8266 和 Arduino Uno,快速结论是什么?

在 MakerHub,我们被问得最多的一个问题就是”我该买哪块开发板?”,而答案基本绕不开 Arduino Uno、ESP8266 NodeMCU 和 ESP32 DevKit 这三块。简单版结论:Uno 是课堂上的老黄牛,ESP8266 是预算型 WiFi 开发板,ESP32 则是什么都能干的现代芯片。

Uno 说的是 5 V 的”语言”——和大多数学校机器人套件、常见传感器模块同一个电压。ESP8266 和 ESP32 说的是 3.3 V,而且芯片本身就自带 WiFi。还有第四个选项:ESP32-C3 Super Mini,把 ESP32 家族缩小到邮票大小,专为可穿戴设备和空间很紧的外壳而生。

ESP32、ESP8266 和 Arduino Uno 的规格差多少?

这张表几乎每一行都是 ESP32 DevKit 赢——真正的问题是,你的项目需不需要这些优势。数据来自官方的 Arduino Uno 文档ESP8266EX 数据手册ESP32 数据手册ESP32-C3 数据手册

规格 Arduino Uno(UNOCH34) ESP8266 NodeMCU(E82V3CH) ESP32 DevKit(32CP210) ESP32-C3 Super Mini(E32SPMN)
CPU 8 位 AVR ATmega328P,单核 32 位 Tensilica L106,单核 32 位 Xtensa LX6,双核 32 位 RISC-V,单核
主频 16 MHz 80 MHz(可提升至 160 MHz) 最高 240 MHz 160 MHz
内存(SRAM) 2 KB SRAM ~80 KB 用户 RAM(≈50 KB 可用堆内存) 520 KB SRAM 400 KB SRAM
闪存 32 KB 片上闪存 4 MB 模块闪存 4 MB 模块闪存 4 MB 闪存
WiFi 2.4 GHz 802.11 b/g/n 2.4 GHz 802.11 b/g/n 2.4 GHz 802.11 b/g/n
蓝牙 经典蓝牙 v4.2 + BLE 仅 BLE 5(无经典蓝牙)
ADC 10 位,6 个引脚(0–5 V) 10 位,1 个引脚(NodeMCU 上为 0–3.3 V) 12 位,18 个通道* 12 位,6 个通道(可用 5 个)
逻辑电平 5 V 3.3 V 3.3 V 3.3 V
引脚耐 5 V 输入 可以(原生 5 V) 不行 不行 不行
USB + 串口芯片 USB-B,CH340G Micro-USB,CH340 Micro-USB,CP2102 USB-C,原生 USB(无串口芯片)
价格档位 入门价位 最便宜的 WiFi 开发板 略高于 ESP8266 介于两者之间

*ESP32 的”18 个 ADC 通道”得诚实地打个星号:其中 10 个挂在 ADC2 上,而 ADC2 是和 WiFi 驱动共用的——WiFi 一跑起来,这些引脚的读数就不再可靠,所以模拟输入尽量规划在 ADC1 上(GPIO 32–39,其中 34–39 只能做输入)。即便如此,ESP32 还多出触摸感应、两路 DAC 和三个 UART,这些都是另外几块板没有的。

ESP8266 那唯一的 ADC 引脚也有自己的怪脾气:裸芯片只接受 0–1 V,是 NodeMCU 板上的分压电路把量程拉宽到了 0–3.3 V。如果直接往裸 ESP-12 模块的 ADC 引脚灌 3.3 V,那就超出规格了。

想看 ESP32 和 ESP8266 在 Arduino IDE 里的实机对比,Andreas Spiess 的这期讲解很值得一看:

你的项目该买哪块开发板?

学校的 RBT 课题,或者以电机、继电器和 5 V 传感器模块为主、完全不需要联网的项目,Arduino Uno 依然是对的选择。教程多到看不完,接错一根线也很少会把板子弄坏。我们的自动浇花项目就示范了一块 Uno 刚刚好够用——Uno 兼容开发板在这里

一旦计划里出现”用 WiFi 控制”这几个字,ESP8266 NodeMCU 就是预算党的答案。单核加一个模拟引脚确实是硬限制,但要做一个 DHT 传感器往 app 推读数,或者一个 WiFi 继电器,它完全够用——NodeMCU V3 在这里

做 FYP,我们默认推荐 ESP32 DevKit:经典蓝牙加 BLE、双核,RAM 也够一边跑 web 服务器一边记录传感器数据。只要项目提到摄像头、音频或 BLE beacon,就跳过 ESP8266,直接拿 ESP32 DevKit

当外壳空间比引脚数量更要紧时——可穿戴、徽章、藏起来的传感器——就轮到 ESP32-C3 Super Mini 出场了。它把 WiFi 和 BLE 5 装进硬币大小的板子里,USB 控制器直接做进芯片(USB-C 接口,不需要串口芯片)——看这里的 C3 Super Mini

迷你的 ESP32-C3 Super Mini 与 ESP32 DevKit、Arduino Uno 的尺寸对比插图
ESP32-C3 Super Mini 摆在 ESP32 DevKit 和 Uno 旁边——一样的 WiFi,只占一小块地方。
如果你的项目是…… 买这块
学校 RBT / 机器人项目,用电机和 5 V 传感器,不联网 Arduino Uno 兼容开发板
预算最省的简单 WiFi/IoT 项目 ESP8266 NodeMCU V3
摄像头、蓝牙、网页仪表盘或多任务 IoT(大多数 FYP) ESP32 DevKit
需要 WiFi/BLE 的可穿戴或空间受限项目 ESP32-C3 Super Mini
决策树概念图:电机、WiFi、摄像头或可穿戴项目各适合哪块微控制器开发板
让开发板去配合项目,而不是反过来。

在这几块板之间切换时,最容易踩什么坑?

3.3 V 逻辑电平的坑。ESP8266 和 ESP32 用的是 3.3 V 逻辑电平,引脚并不耐 5 V,但大多数常见传感器模块都是按 Uno 的 5 V 世界设计的。有的在 3.3 V 下照常工作,有的会把 5 V 反灌回来、慢慢把 ESP 的引脚”煮熟”,有的干脆读出乱码。逐个确认每个模块的输出电压;凡是输出 5 V 的,就加分压电路或电平转换器。

警示插图:不要把 5 伏传感器信号直接接到 3.3 伏微控制器引脚上
5 V 传感器信号要先过分压电路或电平转换器,才能接到 3.3 V 引脚上。

供电的坑。ESP32 和 ESP8266 的 WiFi 射频会产生远高于待机电流的瞬时尖峰——Espressif 的硬件设计指南要求 3.3 V 供电至少能稳定输出 500 mA。碰上供电偏弱的 USB 口,或者一条只能充电的细线,WiFi 一启动,板子就掉电重启。打算用锂电池供电?先读我们的 TP4056 安全给 18650 充电指南

引脚标号的坑。NodeMCU 板上印的 D0–D8 和 ESP8266 的 GPIO 编号并不一致——D1 是 GPIO5,D2 是 GPIO4——千万别默认它们对得上。ESP32 那边则有几个 strapping 引脚(GPIO 0、2、12、15),上电瞬间如果被什么东西拉错了方向,板子可能直接无法启动。

真实客户身上最常见的问题

在我们收到的”board rosak”(板子坏了)对话里,ESP32 和 NodeMCU 是绝对的常客——但板子几乎从来都没有真的坏。

“esp32 tak detect/error 2/boot button”——这是我们每个星期都会见到的主题,里面其实藏着三种修法。装对 USB 串口驱动(我们的 ESP32 DevKit 用 CP2102,NodeMCU 和 Uno 兼容板用 CH340),换一条真正能传数据的 USB 线,如果 IDE 卡在”Connecting…”,就按住 BOOT 按钮直到上传开始。完整步骤在《ESP32 无法识别 / 上传失败——解决方法》

另一个常客:5 V 的超声波或红外模块,在 Uno 上一切正常,接到 ESP32 上读数却乱跳——就是上面说的逻辑电平的坑,不是板子出了问题。

最隐蔽的一种:程序一路跑得好好的,一执行到 WiFi.begin() 板子就开始循环重启。解决办法通常是换条更好的线或换个 USB 口,而不是改代码——是 WiFi 射频的电流尖峰把疲弱的供电拉垮了。

FAQ

Arduino Uno 可以连 WiFi 吗?

Uno 本身完全没有无线模块。你可以外挂一个 WiFi 模块,但通常比直接用 ESP8266 或 ESP32 更折腾——后两者自带 WiFi,而且同样用 Arduino IDE 编程。

我的 Arduino 代码能在 ESP32 或 ESP8266 上跑吗?

大部分可以。在 Arduino IDE 里装上 ESP32 或 ESP8266 的开发板支持包,同一份 C++ 程序就能编译,但要做一些调整:引脚编号不同,少数只支持 AVR 的库编译不过,所有默认 5 V 逻辑电平的部分都要重新考虑。

为什么我的 ESP8266 只有一个模拟引脚?

ESP8266 芯片确实只有一个 ADC 通道——这是芯片层面的限制,不是板子的毛病。如果你的项目要读多个模拟传感器,选 ESP32,或者外加一个 I2C 接口的 ADC 模块。

FYP 用哪块开发板最好?

大多数情况下是 ESP32 DevKit。它有足够的余量同时应付 WiFi 仪表盘、蓝牙、摄像头和传感器记录,项目中途改需求也不用被迫换板。只有完全离线、全部用 5 V 元件的项目才选 Uno。

ESP32-C3 Super Mini 和普通 ESP32 一样吗?

ESP32-C3 是另一颗芯片:单核 RISC-V、主频 160 MHz,带 WiFi 和 BLE 5,但没有经典蓝牙,引脚也更少。它适合小体积项目;需要经典蓝牙、双核或更多外设,就选完整的 DevKit。

最后更新:2026年8月。有问题?WhatsApp 联系我们

Leave a Reply

Your email address will not be published. Required fields are marked *