Arduino или ESP32: главные отличия и что выбрать
Сравнение Arduino и ESP32: скорость, ОЗУ, Wi-Fi, логика 5 V и 3,3 V, АЦП, пины и время работы от батареи, а также сравнение с Pico, общий код и выбор платы по типу проекта.
Arduino или ESP32? Короткий ответ такой: если проекту нужны Wi-Fi, Bluetooth, интернет или серьёзная вычислительная мощность, выбирай ESP32; если ты изучаешь основы электроники, хочешь без хлопот подключать датчики и модули на 5 V и повторять любой урок один в один, выбирай Arduino Uno. Обе платы программируются в Arduino IDE одними и теми же командами digitalWrite, analogRead и Serial. Настоящая разница — в железе: скорость, память, рабочее напряжение, пины и беспроводная связь.
В этом руководстве сравним Arduino Uno R3 с самой распространённой платой ESP32, ESP32 DevKit (с модулем ESP-WROOM-32), на реальных цифрах: что на практике значит разница в процессоре и памяти, на какие модули влияет выбор между 5 V и 3,3 V, как меняются аналоговый вход и PWM и сколько часов каждая плата проработает от батареи? Затем запустим один и тот же скетч на обеих платах, коротко посмотрим на Raspberry Pi Pico и сведём в таблицу, какую плату выбрать для каждого типа проекта.

Короткий ответ: что и когда выбрать?
| Твоя ситуация | Рекомендуемая плата | Почему? |
|---|---|---|
| Ты только начинаешь заниматься электроникой | Arduino Uno | 5 V, выносливые пины, больше всего примеров и уроков |
| Нужен Wi-Fi или интернет | ESP32 | Wi-Fi встроен, дополнительный модуль не нужен |
| Связь с телефоном по Bluetooth | ESP32 | Встроены классический Bluetooth и BLE |
| Будут модули и шилды на 5 V | Arduino Uno | Преобразователь уровней не нужен |
| Дисплеи, много светодиодов, большие данные | ESP32 | 520 КБ ОЗУ (у Uno 2 КБ) |
| Датчик, который месяцами работает от батареи | ESP32 (энергоэффективная плата) | Около 10 µA в глубоком сне |
| Программирование на Python | Raspberry Pi Pico | Очень зрелая поддержка MicroPython |
| Минимальный бюджет | ESP32 или Pico | Гораздо больше возможностей за цену клона Uno |
Что такое Arduino Uno и ESP32?
Arduino Uno R3 — самая известная плата платформы Arduino, разработанной в Италии. Её сердце — 8-битный микроконтроллер ATmega328P с частотой 16 MHz. Плата работает от 5 V, а расположение её пинов не меняется уже много лет, поэтому с ней совместимы сотни шилдов (плат расширения, которые вставляются сверху), книг и курсов. Простая конструкция позволяет точно видеть, что происходит: если записать в пин HIGH, на нём действительно будет 5 V. Новая Uno R4 получила 32-битный процессор Arm на 48 MHz и 32 КБ ОЗУ, а в версии R4 WiFi на плату добавлен ESP32-S3 для беспроводной связи; в этой статье под «Uno» понимается R3, которая до сих пор встречается чаще всего. Чтобы лучше познакомиться с платформой, прочитай статью Что такое Arduino?.

ESP32 же — это 32-битная система на кристалле (SoC), которую Espressif выпустила в 2016 году, с Wi-Fi и Bluetooth на одном чипе. Плата, которую ты держишь в руках, — отладочная плата с этим чипом: на ней есть преобразователь USB–UART, стабилизатор на 3,3 V и кнопки EN и BOOT. Важная деталь: ESP32 — не Arduino, но благодаря ядру Arduino от Espressif она программируется в Arduino IDE точно так же. Для настройки и первых проектов хорошо начать со статьи Что такое ESP32?.
Большая сравнительная таблица: Arduino Uno, ESP32 и Raspberry Pi Pico
| Параметр | Arduino Uno R3 | ESP32 DevKit (WROOM-32) | Raspberry Pi Pico |
|---|---|---|---|
| Процессор | ATmega328P, 8-битный AVR | Xtensa LX6, 32 бита, два ядра | RP2040, 32-битный Arm Cortex-M0+, два ядра |
| Тактовая частота | 16 MHz | До 240 MHz | 133 MHz |
| ОЗУ (SRAM) | 2 КБ | 520 КБ | 264 КБ |
| Память программ (flash) | 32 КБ (0,5 КБ занимает загрузчик) | Обычно 4 МБ | 2 МБ |
| EEPROM | 1 КБ | Нет (эмулируется во flash) | Нет (файловая система во flash) |
| Логическое напряжение | 5 V | 3,3 V (5 V не выдерживает) | 3,3 V (5 V не выдерживает) |
| Питание | USB 5 V или 7–12 V (разъём/VIN) | USB 5 V или 5 V на VIN | USB 5 V или 1,8–5,5 V на VSYS |
| Доступные GPIO | 20 (14 цифровых + 6 аналоговых) | Около 25 (без пинов с ограничениями) | 26 |
| Аналоговые входы (АЦП) | 6 каналов, 10 бит | 18 каналов, 12 бит (при включённом Wi-Fi только ADC1) | 3 канала, 12 бит |
| Аналоговый выход (ЦАП) | Нет | 2 канала, 8 бит | Нет |
| PWM | 6 пинов, 8 бит, 490/980 Hz | 16 каналов, настраиваемая частота, почти на любом пине | 16 каналов, на всех GPIO |
| Wi-Fi | Нет | 802.11 b/g/n, 2,4 GHz | Нет (есть у Pico W) |
| Bluetooth | Нет | Bluetooth 4.2: Classic + BLE | Нет (есть у Pico W) |
| UART / I2C / SPI | 1 / 1 / 1 | 3 / 2 / 2 (доступны пользователю) | 2 / 2 / 2 |
| Ток на пин | Рекомендуется 20 mA (максимум 40 mA) | Рекомендуется около 20 mA | 4 mA по умолчанию (настраивается до 12 mA) |
| Типичный ток платы | Около 45 mA | 50–130 mA в среднем с Wi-Fi, пики 240 mA | Около 25 mA |
| Самый глубокий сон | Чип меньше 1 µA, плата около 30 mA | Чип около 10 µA в глубоком сне | Плата около 1 mA в режиме dormant |
| Программирование | Arduino C/C++ | Arduino C/C++, ESP-IDF, MicroPython | MicroPython, C/C++ SDK, Arduino |
| Примерная цена | Оригинал 25–30 $, клон 5–10 $ | Клон DevKit 4–8 $ | 4 $ (Pico W 6 $) |
Процессор и память: что значат цифры на практике?
Процессор Uno выполняет около 16 миллионов инструкций в секунду и за раз работает с 8-битными числами; одна операция с 32-битным long или float занимает десятки инструкций, а аппаратного блока вычислений с плавающей точкой (FPU) нет. ESP32 работает на 240 MHz с 32-битными числами и имеет FPU одинарной точности. Поэтому в расчётах, где много float, ESP32 может быть быстрее Uno в десятки и даже сотни раз. Когда мигаешь светодиодом или читаешь датчик несколько раз в секунду, разницы не заметно, но она становится решающей для фильтрации, обработки звука, шифрования или расчёта анимаций для сотен светодиодов. Маленький совет: FPU у ESP32 работает только с float, а операции с double выполняются программно и заметно медленнее.
С разницей в памяти столкнёшься гораздо чаще. 2 КБ ОЗУ у Uno делятся между твоими переменными, буферами Serial и местом, которое резервируют библиотеки. Когда ОЗУ заканчивается, компилятор обычно не предупреждает: программа случайным образом зависает или ведёт себя странно. Типичные ситуации, в которых у Uno быстро кончается ОЗУ:
- OLED-дисплей: один только буфер кадра дисплея SSD1306 128×64 занимает 1 КБ, половину ОЗУ (см. OLED-дисплей на Arduino).
- Адресные светодиоды: каждый светодиод WS2812B занимает 3 байта, так что ленте на 300 светодиодов нужно 900 байт (см. WS2812B NeoPixel).
- Данные из интернета: JSON от сервиса погоды может весить несколько КБ; в Uno он не помещается, а на ESP32 обрабатывается легко.
- Склейка строк: объекты String, которые постоянно растут внутри цикла, дробят маленькую ОЗУ и через несколько часов могут привести к сбою.
- SD-карта: библиотека SD резервирует буфер сектора на 512 байт; вместе с библиотеками дисплея и датчиков предел наступает быстро.
Разница в напряжении: 5 V против 3,3 V
Это отличие упускают чаще всего. Пины Uno работают с логикой 5 V: выход HIGH — это 5 V, а входы выше 3 V считаются HIGH. Пины ESP32 работают с логикой 3,3 V и не выдерживают 5 V. Если подать на пин 5 V, ESP32 может погибнуть не сразу, но внутренние защитные диоды получают нагрузку, и чип может выйти из строя со временем или разом. В обратную сторону проблем меньше: сигнал HIGH 3,3 V от ESP32 едва перешагивает порог Uno в 3 V, поэтому обычно читается как HIGH, но и это не считается надёжной схемой. Вот как распространённые модули ведут себя с каждой платой:
| Модуль | С Arduino Uno | С ESP32 | Примечание |
|---|---|---|---|
| Датчик расстояния HC-SR04 | Напрямую | Делитель напряжения на линии ECHO | Пин ECHO выдаёт 5 V |
| Модуль реле на 5 V | Напрямую | Большинство работает, некоторые не выключаются | У модулей с активным низким уровнем HIGH 3,3 V может не полностью отпустить реле |
| Сервопривод SG90 | Напрямую | Сигнал напрямую, питание от 5 V | Не питай сервопривод от пина 3V3 платы |
| DHT11 / DHT22 | Напрямую | Напрямую на 3,3 V | Работает при обоих напряжениях |
| I2C LCD (16x2) | Напрямую | Питание 5 V, желателен преобразователь уровней | Подтягивающие резисторы модуля тянут линии к 5 V |
| SSD1306 OLED | Напрямую | Напрямую (3V3) | На плате есть стабилизатор |
| Лента WS2812B | Напрямую | Обычно работает | Для гарантированного результата нужен преобразователь уровней, например 74AHCT125 |
| MPU6050 (GY-521) | Напрямую | Напрямую (3V3) | На плате есть стабилизатор на 3,3 V |
Пины, аналоговый вход и PWM
На Uno все 20 пинов ведут себя примерно одинаково: каждый может быть входом или выходом, спокойно отдаёт до 20 mA и не влияет на загрузку. У ESP32 DevKit на бумаге пинов больше, но они не равноценны: GPIO 6–11 соединены со встроенной flash-памятью и недоступны, GPIO 34–39 работают только на вход, а GPIO 0, 2, 5, 12 и 15 при загрузке должны быть на определённых уровнях. На практике можно спокойно пользоваться примерно 20–25 пинами. Карту пинов своей платы смотри в утилите Распиновка.
Для аналогового входа 10-битный АЦП Uno делит диапазон 0–5 V на 1024 шага; каждый шаг — около 4,9 mV, а показания довольно линейны. 12-битный АЦП ESP32 даёт 4096 шагов, но с настройками по умолчанию не различает значения ниже примерно 0,15 V и выше 3,1 V, шумит, а пины ADC2 при включённом Wi-Fi вообще не работают. Если на ESP32 нужно точное напряжение, используй analogReadMilliVolts() и подключай датчик к пинам ADC1 (GPIO 32–39). По PWM впереди ESP32: Uno даёт 8-битный PWM только на 6 пинах с частотой 490 или 980 Hz, а ESP32 может вывести 16 каналов с настраиваемыми частотой и разрешением почти на любой выходной пин. Кроме того, у неё есть 2 ЦАП (GPIO 25 и 26), которые выдают настоящее аналоговое напряжение. Основы PWM разобраны в статье Что такое PWM?.
Один и тот же скетч на обеих платах: что меняется?
Хорошая новость: всё, что изучено на Arduino, подходит и для ESP32. Скетч ниже читает потенциометр, выводит напряжение в монитор порта и включает встроенный светодиод, когда значение переходит середину. Строка #if defined(ESP32) определяет, для какой платы компилируется код, и меняет только номер пина, опорное напряжение и разрешение АЦП. Подключи крайние ножки потенциометра к 5V и GND на Uno или к 3V3 и GND на ESP32, среднюю ножку — к A0 на Uno или к GPIO 34 на ESP32, затем открой монитор порта на скорости 115200 бод. Главные отличия за пределами кода собраны в таблице.
1// Aynı kod Uno ve ESP32'de çalışır / The same sketch runs on Uno and ESP32
2#if defined(ESP32)
3const int LED_PIN = 2; // DevKit dahili LED / DevKit onboard LED
4const int POT_PIN = 34; // ADC1 pini, Wi-Fi ile de çalışır / ADC1 pin, works with Wi-Fi too
5const float VREF = 3.3; // ESP32 pinleri 3,3 V / ESP32 pins are 3.3 V
6const int ADC_MAX = 4095; // 12 bit
7#else
8const int LED_PIN = 13; // Uno dahili LED / Uno onboard LED
9const int POT_PIN = A0;
10const float VREF = 5.0; // Uno referansı 5 V / Uno reference is 5 V
11const int ADC_MAX = 1023; // 10 bit
12#endif
13
14void setup() {
15 Serial.begin(115200);
16 pinMode(LED_PIN, OUTPUT);
17}
18
19void loop() {
20 int raw = analogRead(POT_PIN);
21 float volts = raw * VREF / ADC_MAX;
22 Serial.print("Ham / raw: ");
23 Serial.print(raw);
24 Serial.print(" Gerilim / voltage: ");
25 Serial.println(volts, 2);
26 digitalWrite(LED_PIN, raw > ADC_MAX / 2 ? HIGH : LOW); // yarıdan fazlaysa LED yanar / LED on above half
27 delay(250);
28}| Тема | Arduino Uno | ESP32 |
|---|---|---|
| Встроенный светодиод | Пин 13 | GPIO 2 на большинстве клонов DevKit (на DevKitC от Espressif его нет) |
| Диапазон analogRead | 0–1023 (10 бит) | 0–4095 (12 бит) |
| Внешние прерывания (attachInterrupt) | Только пины 2 и 3 | Почти все пины (добавь IRAM_ATTR к функции прерывания) |
| Второй последовательный порт | Нужен SoftwareSerial | Аппаратный Serial2 (GPIO 16 и 17) |
| EEPROM | Настоящая EEPROM, 1 КБ | Во flash; EEPROM.commit() или Preferences |
| Загрузка кода | Одним нажатием | На некоторых платах нужно нажимать кнопку BOOT |
| Время компиляции | Несколько секунд | Первая сборка может занять около минуты |
Wi-Fi, Bluetooth и интернет
По-настоящему ESP32 выделяет беспроводная связь. Плата подключается к сетям Wi-Fi 2,4 GHz, может создать собственную точку доступа, запускает веб-сервер, отправляет данные в систему умного дома по MQTT, получает время из интернета по NTP и может обновлять прошивку по воздуху (OTA). Со стороны Bluetooth поддерживаются и классический Bluetooth (профиль последовательного порта, SPP), и энергоэффективный BLE, а через ESP-NOW несколько ESP32 могут общаться друг с другом без роутера. Ничего из этого в Uno не встроено: для Bluetooth нужен модуль вроде HC-05, а для Wi-Fi — отдельный чип, например ESP-01, плюс AT-команды. Скетч ниже читает тот же потенциометр, но уже по Wi-Fi: открой адрес из монитора порта в браузере телефона, подключённого к той же сети, и увидишь напряжение в милливольтах, а страница будет сама обновляться каждые две секунды.
1#include <WiFi.h>
2#include <WebServer.h>
3
4const char* ssid = "AgAdi"; // Wi-Fi adın / your Wi-Fi name
5const char* password = "Sifre123"; // Wi-Fi şifren / your Wi-Fi password
6const int POT_PIN = 34; // ADC1 pini / ADC1 pin
7
8WebServer server(80);
9
10void handleRoot() {
11 uint32_t mv = analogReadMilliVolts(POT_PIN); // kalibre edilmiş mV / calibrated mV
12 String html = "<meta name='viewport' content='width=device-width'>"
13 "<meta http-equiv='refresh' content='2'>"
14 "<h1>ESP32</h1><p>Pot: ";
15 html += mv;
16 html += " mV</p>";
17 server.send(200, "text/html", html);
18}
19
20void setup() {
21 Serial.begin(115200);
22 WiFi.begin(ssid, password);
23 while (WiFi.status() != WL_CONNECTED) delay(500);
24 Serial.print("Telefonda aç / open on your phone: http://");
25 Serial.println(WiFi.localIP());
26 server.on("/", handleRoot);
27 server.begin();
28}
29
30void loop() {
31 server.handleClient();
32}Энергопотребление и работа от батарей
На бумаге ESP32 — одновременно самая прожорливая и самая экономная плата. При отправке данных по Wi-Fi она потребляет пики до 240 mA, поэтому от слабого USB-порта перезагружается с ошибкой «Brownout detector was triggered» (сработал детектор просадки питания). Зато в глубоком сне чип потребляет всего около 10 µA. Плата Uno в простое берёт около 45 mA; даже когда ATmega328P спит, преобразователь USB–UART, стабилизатор и светодиод питания продолжают потреблять около 30 mA. Разберём пример: аккумулятора на 2000 mAh непрерывно работающей Uno хватит примерно на 2000 / 45 ≈ 44 часа. ESP32 с постоянно включённым Wi-Fi (в среднем 100 mA) проработает около 20 часов. Но если ESP32 раз в 10 минут просыпается на 3 секунды, отправляет показание при 120 mA и оставшиеся 597 секунд спит при 10 µA, средний ток будет (3 × 120 + 597 × 0,01) / 600 ≈ 0,61 mA, и тот же аккумулятор теоретически продержится больше 3000 часов, то есть более четырёх месяцев. Для такого результата нужна энергоэффективная плата или голый модуль: стабилизатор и USB-чип на стандартных DevKit даже во сне потребляют несколько mA. Свой сценарий можно посчитать в утилите время работы от батареи.
Где здесь место Raspberry Pi Pico?
Третий сильный вариант — Raspberry Pi Pico. У её чипа RP2040 два ядра Cortex-M0+ на 133 MHz, 264 КБ ОЗУ и 2 МБ flash, а стоит она около 4 $. Как и ESP32, она работает от 3,3 V и даёт 26 GPIO, но аналоговых входов у неё всего 3. Главные её сильные стороны — очень зрелая поддержка MicroPython, простая загрузка прошивки (плата видна на компьютере как USB-флешка) и блоки PIO, которые генерируют протоколы с точными таймингами, не нагружая процессор. Если нужна беспроводная связь, выбирай Pico W (Wi-Fi и Bluetooth), если нужна мощность — Pico 2 с чипом RP2350. Подробнее в статье Что такое Raspberry Pi Pico?. То же чтение потенциометра на Pico в MicroPython выглядит так (средняя ножка к GP26, крайние к 3V3 и GND):
1from machine import ADC, Pin
2import time
3
4pot = ADC(26) # GP26 = ADC0, potansiyometre orta ucu / pot wiper
5led = Pin("LED", Pin.OUT) # dahili LED (Pico ve Pico W) / onboard LED (Pico and Pico W)
6
7while True:
8 raw = pot.read_u16() # 0–65535 (12 bit ölçüm ölçeklenir / 12-bit reading, scaled)
9 volts = raw * 3.3 / 65535
10 print("Ham / raw:", raw, " Gerilim / voltage: {:.2f}".format(volts))
11 led.value(raw > 32767) # yarıdan fazlaysa yanar / on above half
12 time.sleep(0.25)Цена и простота обучения
Одна только цена редко решает вопрос. Оригинальная Uno R3 стоит около 25–30 $, а клоны с USB-чипом CH340 продаются за 5–10 $; клоны ESP32 DevKit стоят 4–8 $, а Pico — 4 $. Так что разницы в цене между ESP32 и клоном Uno почти нет; настоящие расходы видны в дополнениях: чтобы подключить модули на 5 V к ESP32, понадобятся несколько резисторов или преобразователь уровней за 1–2 $, а чтобы добавить Wi-Fi к Uno, нужен отдельный модуль. В обучении впереди Uno: выбираешь плату и нажимаешь «Загрузка» (Upload), сообщения об ошибках и примеры не меняются годами, а с модулями на 5 V нет несовпадения напряжений. Для ESP32 сначала нужно установить пакет плат Espressif и при необходимости драйвер USB-чипа (CP2102 или CH340), выбрать правильную модель платы, а на некоторых платах ещё и удерживать кнопку BOOT при загрузке; к тому же часть примеров в интернете написана для старых версий ядра и может не скомпилироваться (например, в ядре 3.x вместо ledcSetup используется ledcAttach). На эти препятствия уходит несколько часов, но если ты собираешь схемы впервые, на Uno проще понять, в чём проблема — в коде или в подключении.
Какую плату выбрать для какого проекта?
| Проект | Лучшая плата | Почему? |
|---|---|---|
| Первые уроки со светодиодами, кнопками и зуммером | Arduino Uno | Прощает ошибки, 5 V, масса примеров |
| Машинка-робот (L298N, HC-SR04) | Arduino Uno | Работает с модулями на 5 V напрямую |
| Метеостанция с Wi-Fi | ESP32 | Отправляет данные на телефон и в интернет |
| Умный дом на реле | ESP32 | Веб, MQTT и интеграция с голосовыми ассистентами |
| Bluetooth-пульт с телефона | ESP32 | BLE и классический Bluetooth встроены |
| Удалённый датчик на батарейках | ESP32 (энергоэффективная плата) | Глубокий сон и короткие сеансы Wi-Fi |
| Изучение Python | Raspberry Pi Pico | MicroPython здесь полноправный язык |
| Сотни адресных светодиодов | ESP32 или Pico | Много ОЗУ, быстрый процессор |
| Трансляция изображения с камеры | ESP32-CAM | Камера и слот microSD на плате |
| Шилды для моторов и шилды на 5 V | Arduino Uno | Шилды рассчитаны на расположение пинов Uno |
Частые ошибки и заблуждения
- «ESP32 всегда лучше»: она мощнее, но пины на 3,3 V, чувствительные к загрузке пины, кнопка BOOT и просадки питания могут измотать новичка. Для изучения основ у Uno меньше сюрпризов.
- Подключать датчик на 5 V к ESP32 напрямую: сигналы 5 V, например выход ECHO у HC-SR04, без делителя могут повредить пин.
- Читать пин ADC2 при включённом Wi-Fi: GPIO 0, 2, 4, 12–15 и 25–27 не читают аналоговые значения, пока работает Wi-Fi; перенеси датчик на GPIO 32–39.
- Забывать про ОЗУ Uno: если код компилируется, а плата случайно зависает, возможно, закончилась ОЗУ; помещай постоянный текст в F("...") и не склеивай String в цикле.
- Питать ESP32 от слабого USB: если плата перезагружается при запуске Wi-Fi, возьми хороший кабель для передачи данных и адаптер, который даёт не меньше 1 A.
- Путать Pico и Pico W: у обычной Pico нет Wi-Fi; для беспроводного проекта покупай модель с буквой W в названии.
Короче говоря, Arduino Uno — плата для обучения, ESP32 — плата для подключения к сети, а Raspberry Pi Pico — плата для экспериментов с Python. Если не можешь решить, какая модель из семейства Arduino тебе подходит, загляни в статью Какую Arduino купить?. В приложении BlueGrays есть десятки проектов для Arduino, ESP32 и Pico — от мигания светодиодом до веб-сервера на Wi-Fi и от часов с NTP до погодного дисплея, каждый с пошаговой схемой и кодом.
Частые вопросы
ESP32 лучше, чем Arduino?
По чистой мощности, памяти и беспроводной связи — да: ESP32 работает на 240 MHz, у неё 520 КБ ОЗУ, Wi-Fi и Bluetooth. Но из-за пинов на 3,3 V, ограниченных GPIO и более сложной загрузки у Arduino Uno для новичков меньше сюрпризов. Какая лучше, зависит от того, что нужно проекту.
Можно ли программировать ESP32 в Arduino IDE?
Да. После добавления пакета плат esp32 от Espressif в Arduino IDE ESP32 программируется командами Arduino. Функции pinMode, digitalWrite, analogRead, Serial и Wire работают так же; меняются в основном номера пинов и уровни напряжения.
Работает ли код для Arduino на ESP32?
Большая часть кода работает с небольшими изменениями. Нужно поменять номера пинов под ESP32, учесть, что analogRead возвращает 0–4095, и заменить код, который обращается к регистрам AVR или к библиотекам вроде SoftwareSerial, аналогами для ESP32.
Можно ли добавить Wi-Fi к Arduino Uno?
Да: модуль вроде ESP-01 (ESP8266) можно использовать через последовательный порт с AT-командами, а можно купить Uno R4 WiFi. Но ESP-01 нужны питание 3,3 V и согласование уровней, а 2 КБ ОЗУ у Uno с трудом справляются с веб-задачами. Поэтому в большинстве случаев проще и дешевле сразу взять ESP32.
Arduino или Raspberry Pi Pico?
Чтобы остаться в экосистеме Arduino с C/C++, работать с модулями на 5 V и находить больше всего примеров, лучше подходит Arduino Uno; для программирования на Python, низкой цены и точных таймингов с PIO выбирай Raspberry Pi Pico. Pico работает от 3,3 V, поэтому с сигналами 5 V нужна осторожность, как и с ESP32.
Можно ли использовать ESP32 с датчиками на 5 V?
Если датчик работает и от 3,3 V, проще всего питать его от пина 3V3. Для датчиков, которые работают только от 5 V и выдают 5 V, поставь на выходную линию делитель напряжения или преобразователь уровней. Если подать 5 V прямо на пины ESP32, можно повредить чип.
Что собрать после прочтения
Все проекты
Мигающий светодиод
Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

Мигающий светодиод на ESP32
Учит базовой работе с выходами GPIO на ESP32. Эффект мигания получается включением и выключением светодиода с цифрового пина. Это ESP32-версия классического проекта мигания на Arduino UNO; базовые команды мигания в среде Arduino те же, но расположение пинов ESP32 и уровни GPIO 3,3 V отличаются от Arduino UNO.

Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W)
Первый проект серии Raspberry Pi Pico! Мигаем зелёным встроенным светодиодом, чтобы проверить, что плата работает, — классический первый опыт «Hello World». НИКАКИХ внешних компонентов, только Pico и USB-кабель. Код написан на MicroPython (официальном языке, поддерживаемом Raspberry Pi Foundation). Изучи в Thonny IDE класс machine.Pin, режим Pin.OUT, методы led.on()/off() и time.sleep(). Каждое переключение видно в выводе (REPL).

Температура и влажность с DHT11
Насколько тепло в твоей комнате и влажный ли воздух или сухой? Датчик DHT11 измеряет температуру и влажность, а Arduino выводит значения на двухстрочный LCD-экран и обновляет их каждые пару секунд. Ес

Регулировка яркости светодиода потенциометром на ESP32 (аналог → PWM)
В этом проекте яркость светодиода плавно регулируется потенциометром. Пин АЦП ESP32 читает напряжение 0–3,3V с потенциометра, затем это значение превращается в сигнал PWM (широтно-импульсная модуляция) и подаётся на светодиод. В результате при повороте потенциометра светодиод постепенно становится ярче или тусклее. В Arduino Core 3.0+ можно сразу использовать analogWrite(); на ESP32-S2/S3 разрешение АЦП фиксировано — 12 бит.

Подключение ESP32 к Wi-Fi в режиме STA (с экраном LCD)
В этом проекте ESP32 надёжно и устойчиво к сбоям подключается к домашней сети Wi-Fi в режиме станции (STA). SSID и пароль хранятся в отдельном файле secrets.h, чтобы не утекли в Git; настроено автоматическое переподключение, а уровень сигнала RSSI и IP-адрес выводятся на I2C LCD-экран. Встроенный светодиод служит индикатором состояния. Это менеджер подключения уровня реальных устройств.

Асинхронный веб-сервер на ESP32 (с выводом IP на LCD)
В этом проекте ESP32 превращается в асинхронный веб-сервер, которым можно управлять с телефона или компьютера в той же сети Wi-Fi. Благодаря библиотеке ESPAsyncWebServer сервер может обрабатывать несколько запросов одновременно (в отличие от классического WebServer.h, который блокируется на одном запросе). Открыв IP-адрес ESP32 в браузере, ты нажимаешь кнопки ON/OFF (маршруты /on и /off) и включаешь и выключаешь светодиод на GPIO 5.

ESP32 HTTPClient + API погоды (с экраном LCD)
В этом проекте ESP32 через HTTPClient.h делает вызов REST API к сервису погоды (wttr.in) через интернет. Полученный ответ в JSON разбирается с помощью ArduinoJson v7, а город, температура, влажность, погода и ветер выводятся на I2C LCD на турецком и английском. wttr.in бесплатен и не требует ключа API — достаточно указать любое название города, чтобы получить текущую погоду. Данные автоматически обновляются каждые 30 минут.
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

