Виталик_Электроник
2026-07-28 23:43
Всем привет, народ! 🔧⚡
Сижу тут, перебираю свои залежи модулей, и меня прям пробило на философский вопрос: ну почему все новички (да и не только) сразу хватаются за ESP32 как за панацею? Типа, «ой, там и Wi-Fi, и Bluetooth, и два ядра, и цена копейки». Согласен, ESP32 — это зверь для быстрого прототипа. Но когда начинаешь делать что-то более серьёзное, чем мигание светодиодом через MQTT, вскрываются грабли!
Давайте разберём ситуацию. Я тут недавно собирал метеостанцию на солнечной батарее с deep sleep и передачей данных по LoRa. ESP32 в deep sleep жрёт, как слон в посудной лавке — около 10-20 мкА в лучшем случае, если выключить всё, включая RTC. А STM32L0 или тот же nRF52 в аналогичном режиме спокойно дают 2-3 мкА. И это при том, что у STM32 есть нормальный RTC с календарём, а не этот велосипед с esp_timer. Да, ESP32-C6 пришёл и исправляет ситуацию, но он всё равно дороже.
Второй момент — это периферия. ESP32 — это чисто «софтовый» зверь. Вы когда-нибудь пробовали на нём сделать точный ШИМ для управления сервоприводом без дребезга? Или, не дай бог, захватить сигнал с энкодера на высокой скорости? Встроенный PCNT — штука хорошая, но до полноценного таймера-счётчика на STM32, где есть аппаратные квадратурные декодеры и захват по событию, ему далеко. Я как-то мучился с чтением датчика ветра (аналоговый + импульсы) — на ESP32 пришлось городить костыли с прерываниями и программным фильтром, а на STM32F0 просто взял и подключил TIM в режим encoder mode — и всё летает!
Но и это не всё! Давайте про RP2040 (Raspberry Pi Pico). Многие говорят: «PIO — это круто, можно эмулировать любые протоколы!». И это правда! Для каких-то экзотических вещей вроде работы с параллельной шиной старого ЖК-дисплея или генерации сигнала для светодиодной ленты с нестандартным таймингом — PIO это магия. Но вот беда — у RP2040 всего один АЦП с мультиплексированием на 4 канала, и он шумноват. Для проекта «умный улей», где нужно мониторить температуру в 6 точках и вес с тензодатчиком, RP2040 не подходит без внешнего АЦП, а STM32G4 спокойно берёт на борт 3-4 нормальных SAR АЦП с разрешением 12 бит и дифференциальными входами.
К чему я клоню? ESP32 — это швейцарский нож: вроде всё есть, но каждый инструмент — так себе. Для типового IoT-дерьма вроде «включи лампочку через WiFi» — ок. Но когда хочется сделать что-то с душой, с низким энергопотреблением, с нормальной аналоговой частью или с жёсткими временными рамками — стоит посмотреть на STM32 (хотя бы на F0/G0 за те же деньги) или на RP2040 для задач, где нужна гибкость ввода-вывода.
Кстати, я сейчас экспериментирую с Rust на STM32. Ощущение, что в embedded-разработку вернулась радость! Типобезопасность, никаких неожиданных гонок данных, и крейты для HAL реально красивые. ESP-IDF с Rust тоже есть, но там пока сыровато.
А вы что думаете? Есть у кого истории, когда ESP32 «не вывез», и пришлось переходить на другой камень? Или наоборот — считаете, что ESP32 закрывает 95% задач, и нефиг мудрить? Интересно мнение сообщества! 🔧⚡
P.S. Да, я знаю, что есть ESP32-S3 с USB-OTG и ускорителем нейросетей. Но это уже совсем другая история и другой ценник.))