Вопрос, который задаёт каждый IoT-инженер
Вы проектируете устройство: датчик, контроллер, шлюз или потребительский гаджет. Первый вопрос — какой микроконтроллер взять? В 90% случаев выбор сводится к двум семействам: STM32 от STMicroelectronics и ESP32 от Espressif. Оба популярны, оба доступны, оба имеют огромную экосистему. Но они принципиально разные — и неправильный выбор обойдётся в месяцы переделок.
В этой статье — инженерное сравнение без маркетинга. Таблицы, цифры, конкретные сценарии.
Архитектура и производительность
STM32
Семейство STM32 включает более 1 000 моделей на ядрах ARM Cortex-M (M0, M0+, M3, M4, M7, M33). Это означает, что вы выбираете ровно тот уровень производительности, который нужен:
- STM32F0 (Cortex-M0, 48 МГц) — простые датчики, минимальное потребление
- STM32F4 (Cortex-M4, 168 МГц, FPU) — обработка сигналов, моторы, аудио
- STM32H7 (Cortex-M7, 480 МГц, двуядерный) — обработка изображений, ML на краю
Ключевое преимущество: детерминированное время выполнения. Cortex-M не имеет кэша команд (в младших моделях), что критично для real-time задач.
ESP32
ESP32 — это Xtensa LX6 (двуядерный, 240 МГц) или RISC-V (в ESP32-C3/C6). Вычислительная мощность сопоставима со STM32F4, но архитектура заточена под другое:
- Встроенный Wi-Fi 802.11 b/g/n и Bluetooth/BLE
- Аппаратное шифрование (AES, SHA, RSA)
- 520 КБ SRAM + до 16 МБ внешней Flash через SPI
ESP32-S3 добавил ядро для нейросетей (vector instructions), что делает его интересным для edge AI.
Вердикт по производительности
| Параметр | STM32 | ESP32 |
|---|---|---|
| Частота (максимум) | 480 МГц (H7) | 240 МГц (S3) |
| Ядра | 1–2 (Cortex-M) | 2 (Xtensa/RISC-V) |
| FPU | Есть (F4+) | Есть |
| Real-time гарантии | Отличные | Ограниченные |
| ML на краю | STM32H7 + X-CUBE-AI | ESP32-S3 (vector) |
STM32 выигрывает в real-time и детерминизме. ESP32 выигрывает в задачах, где нужен Wi-Fi + вычисления без жёстких временных ограничений.
Беспроводная связь
Здесь разрыв максимальный.
ESP32: всё встроено
ESP32 — это в первую очередь Wi-Fi/BLE чип, к которому добавили микроконтроллер. Wi-Fi и Bluetooth работают «из коробки», без внешних модулей:
- ESP32 — Wi-Fi + Bluetooth Classic + BLE 4.2
- ESP32-S3 — Wi-Fi + BLE 5.0
- ESP32-C6 — Wi-Fi 6 + BLE 5.3 + 802.15.4 (Thread/Zigbee)
- ESP32-H2 — BLE 5.3 + 802.15.4 (Thread/Zigbee), без Wi-Fi
Для «умного дома» и потребительских IoT-устройств ESP32 — очевидный выбор. Один чип, одна антенна, одна плата.
STM32: модульный подход
В линейке STM32 только серия STM32WB (BLE 5.4 + 802.15.4) и STM32WL (LoRa/Sub-GHz) имеют встроенную радиочасть. Для Wi-Fi нужен внешний модуль — и чаще всего это… ESP32 в роли Wi-Fi-моста.
Но для промышленного IoT это преимущество: вы выбираете радиомодуль под задачу (LoRa, NB-IoT, LTE-M, Sigfox) и подключаете его по UART/SPI. Модульность даёт гибкость.
Вердикт по связи
| Сценарий | Лучший выбор |
|---|---|
| Wi-Fi + BLE потребительское устройство | ESP32 |
| Thread/Matter для умного дома | ESP32-C6/H2 |
| LoRa на большие расстояния | STM32WL |
| NB-IoT/LTE-M (сотовый IoT) | STM32 + внешний модем |
| BLE-only (маячки, датчики) | STM32WB или ESP32-C3 |
Энергопотребление
Критический параметр для устройств на батарейках.
STM32: чемпион по спячке
STM32L-серия (Ultra-Low-Power) — эталон энергоэффективности:
- Stop Mode 2: 1.0 мкА (STM32L4) с сохранением RAM
- Standby: 0.3 мкА (STM32L0)
- Быстрый выход из сна: 5 мкс до рабочего режима
STM32U5 на 40-нм процессе вышел на 110 мкА/МГц в активном режиме — это один из лучших показателей в индустрии.
ESP32: компромисс
ESP32 потребляет значительно больше из-за радиочасти:
- Active (Wi-Fi TX): 180–240 мА
- Modem Sleep: 20 мА (CPU работает, радио выключено)
- Light Sleep: 0.8 мА
- Deep Sleep: 10 мкА (только RTC и ULP-сопроцессор)
10 мкА в deep sleep — это в 30 раз больше, чем у STM32L0 в standby. Для устройства на батарейке CR2032, которое просыпается раз в час, это разница между 2 годами и 5 годами автономной работы.
Вердикт по энергопотреблению
STM32L/U серия выигрывает однозначно. Если устройство работает от батарейки и не требует постоянного Wi-Fi — STM32. Если нужен Wi-Fi, ESP32 неизбежен, но закладывайте аккумулятор побольше.
Периферия и аналоговые возможности
STM32: промышленный уровень
STM32 предлагает богатый набор периферии, особенно аналоговой:
- АЦП: до 16 бит, 5 Msps (STM32H7), с аппаратным oversampling
- ЦАП: 12 бит, 2 канала
- Таймеры: Advanced-control (для управления моторами, PWM до 6 каналов с dead-time)
- CAN FD: встроенный (критично для автомобильных и промышленных шин)
- USB OTG HS: с PHY (некоторые модели)
- SDMMC: для SD-карт на полной скорости
ESP32: достаточно для IoT
- АЦП: 12 бит, но с нелинейностью и шумом (калибровка обязательна)
- ЦАП: 8 бит, 2 канала (только ESP32, убран в S3)
- Таймеры: базовые, без advanced motor control
- Нет CAN (только через внешний трансивер + SPI)
- USB OTG: есть в ESP32-S2/S3
Вердикт по периферии
STM32 выигрывает в задачах с точными аналоговыми измерениями, управлением моторами и промышленными протоколами. Для типового IoT (считать датчик, отправить в облако) ESP32 достаточно.
Экосистема и инструменты разработки
STM32
- STM32CubeIDE (Eclipse-based, бесплатный) + STM32CubeMX (визуальный конфигуратор)
- HAL и LL драйверы — два уровня абстракции
- RTOS: FreeRTOS (официально поддерживается), Zephyr, Azure RTOS
- Отладка: полноценный SWD/JTAG, любой J-Link/ST-Link
- Документация: Reference Manual на 2000+ страниц, Application Notes на каждый случай
Кривая обучения крутая. Для мигания светодиодом нужно настроить тактирование, GPIO, возможно HAL — это 50 строк кода вместо 3. Но для серийного продукта это плюс: вы контролируете каждый регистр.
ESP32
- ESP-IDF (официальный SDK на C) или Arduino (для быстрого прототипирования)
- PlatformIO — удобная интеграция с VS Code
- Огромное сообщество: Arduino-скетчи, MicroPython, CircuitPython
- Отладка: JTAG через USB (ESP32-S3), но чаще printf-отладка
- Документация: хорошая, но не уровня STM32
Порог входа минимальный. С Arduino IDE вы получаете рабочий Wi-Fi-датчик за 30 минут. Это и сила, и слабость: Arduino-код не подходит для серийного продукта с требованиями к надёжности.
Доступность и цена
Цена чипов (2026, при заказе 1000 шт.)
| Чип | Ядро | Flash | Wi-Fi/BLE | Цена (ориентир) |
|---|---|---|---|---|
| ESP32-C3 | RISC-V, 160 МГц | 4 МБ | Wi-Fi + BLE 5.0 | ~$1.2 |
| ESP32-S3 | Xtensa, 240 МГц | 8 МБ | Wi-Fi + BLE 5.0 | ~$2.0 |
| STM32F103C8 | Cortex-M3, 72 МГц | 64 КБ | Нет | ~$1.5 |
| STM32F411CE | Cortex-M4, 100 МГц | 512 КБ | Нет | ~$3.0 |
| STM32L476RG | Cortex-M4, 80 МГц | 1 МБ | Нет | ~$4.5 |
| STM32WB55 | Cortex-M4, 64 МГц | 1 МБ | BLE 5.4 | ~$5.0 |
ESP32 дешевле, особенно с учётом встроенного Wi-Fi. Для STM32 с Wi-Fi нужно добавить внешний модуль ($2–5), что убивает ценовое преимущество.
Доступность
После кризиса полупроводников 2021–2023 обе линейки восстановили поставки. Но ESP32 производится Espressif (единственный поставщик), а STM32 — STMicroelectronics (крупный европейский производитель с multiple fabs). Для проектов с требованиями по импортозамещению или диверсификации поставщиков стоит учитывать этот фактор.
Сертификация и продакшен
Для серийного продукта важно:
| Параметр | STM32 | ESP32 |
|---|---|---|
| Рабочая температура | –40…+125°C (некоторые) | –40…+85°C |
| Автомобильная сертификация | AEC-Q100 (STM32A) | Нет |
| Медицинское применение | Да (IEC 62304) | Ограниченно |
| Срок поддержки | 10+ лет гарантированно | ~5–7 лет |
| Lifecycle management | Документирован | Ограничен |
Для промышленных и автомобильных проектов STM32 — единственный разумный вариант. Для потребительских устройств ESP32 вполне подходит.
Матрица выбора: что брать?
| Ваш проект | Рекомендация | Почему |
|---|---|---|
| Wi-Fi датчик для умного дома | ESP32-C3 | Дёшево, Wi-Fi + BLE из коробки |
| Промышленный контроллер | STM32F4/G4 | CAN, real-time, –40°C, 10+ лет |
| Носимое устройство на батарейке | STM32L4/U5 | 0.3 мкА в standby |
| IoT-шлюз (Wi-Fi → LoRa/Modbus) | ESP32-S3 + STM32 | ESP для связи, STM для периферии |
| Прототип для стартапа | ESP32-S3 | Быстрый старт, Arduino/MicroPython |
| Серийное устройство 100K+ шт. | ESP32-C3 (потреб.) / STM32 (пром.) | Цена vs надёжность |
| Автомобильная электроника | STM32 (AEC-Q100) | Единственный сертифицированный |
| Устройство с точным АЦП | STM32L4/H7 | 16 бит, 5 Msps |
| Edge AI (распознавание на устройстве) | ESP32-S3 или STM32H7 | S3 проще, H7 мощнее |
| Matter/Thread для умного дома | ESP32-C6 | Wi-Fi 6 + Thread из коробки |
Гибридный подход: когда берут оба
В сложных IoT-системах STM32 и ESP32 часто работают в паре:
- STM32 управляет периферией (датчики, моторы, аналог) в real-time
- ESP32 обеспечивает связь (Wi-Fi/BLE) и OTA-обновления
- Общение между ними по UART или SPI
Этот подход используется в промышленных IoT-шлюзах, умных счётчиках, системах мониторинга. Каждый чип делает то, в чём он лучший.
Итого
Нет «лучшего» микроконтроллера — есть правильный выбор под задачу:
- ESP32 — когда нужен Wi-Fi/BLE, быстрый старт, низкая цена. Потребительские устройства, умный дом, прототипы.
- STM32 — когда нужен real-time, низкое потребление, промышленная надёжность, богатая периферия. Промышленность, автомотив, медицина, батарейные устройства.
Главная ошибка — выбирать микроконтроллер по знакомству («я знаю Arduino, значит ESP32») вместо требований проекта. Вторая — не закладывать запас по ресурсам: если сейчас занято 80% Flash, через полгода OTA-обновления не влезут.
Если вы проектируете IoT-устройство и не уверены в выборе платформы — мы делаем экспресс-аудит IoT-идеи за 25 000 ₽: архитектура, компоненты, стоимость прототипа и серии за 5 рабочих дней. Или посмотрите наши услуги по IoT и embedded-разработке.