Embedded-разработка

Embedded-разработка для IoT-устройств: STM32, ESP32, embedded Linux

Гайд для CTO IoT-стартапа и главного инженера: выбор MCU (STM32 / ESP32 / NXP), RTOS vs bare-metal, embedded Linux, OTA-обновления. Бюджет 2-12 млн ₽, срок 3-9 месяцев.

Обновлено: 15 мая 2026 г.

Embedded-разработка для IoT — это создание прошивки, работающей на ограниченных по ресурсам микроконтроллерах или одноплатных компьютерах, обеспечивающей сбор данных с датчиков, обмен с другими системами по промышленным протоколам, защищённую связь с облаком и удалённое обновление. От качества embedded-разработки зависит, проработает ли устройство 5-10 лет в промышленной среде, выдержит ли температурные и электромагнитные нагрузки, и можно ли его обновить без выезда сервисной бригады.

Эта статья — для CTO IoT-стартапа, главного инженера производства, founder’а hardware-стартапа с прототипом. Без академической теории, с реальными платформами 2026 года, выбором между bare-metal, RTOS и embedded Linux, бюджетами 2-12 млн ₽ и типовыми ошибками embedded-проектов.

Выбор микроконтроллера

Выбор MCU — первое решение проекта, определяющее границы возможностей устройства.

STM32 (STMicroelectronics) — отраслевой стандарт для промышленных и измерительных задач.

  • STM32F4 — базовый уровень, ARM Cortex-M4, до 180 МГц, 1-2 МБ flash. Цена модулей 200-600 ₽. Подходит для большинства промышленных датчиков и контроллеров.
  • STM32H7 — производительные задачи, Cortex-M7, до 480 МГц, до 2 МБ flash. Цена 800-2000 ₽. Подходит для сложных алгоритмов, DSP, нескольких параллельных протоколов.
  • STM32L4 / L5 — ультра-энергоэффективные, для устройств с батарейным питанием. Подходит для удалённых датчиков, носимой электроники.

Доступность STM32 в РФ в 2026 году нормализована, поставки идут через параллельный импорт и официальных дистрибьюторов.

ESP32 (Espressif) — самый массовый MCU для подключённых устройств.

  • Встроенные Wi-Fi и Bluetooth — не нужны дополнительные модули
  • Мощный двухъядерный процессор, до 240 МГц
  • Цена 200-500 ₽ за модуль
  • Большое сообщество, библиотеки для всего, развитая экосистема

Варианты:

  • ESP32-S3 — для AI-нагрузок (vector extensions для inference)
  • ESP32-C3 — бюджетный, RISC-V, для простых задач
  • ESP32-C6 — последнее поколение с поддержкой Wi-Fi 6 и Bluetooth 5.4

ESP32 удобен для прототипирования и для устройств, где Wi-Fi или Bluetooth — основной канал связи.

NXP i.MX RT — для задач между MCU и SoC. ARM Cortex-M7/M33, до 1 ГГц, расширенная периферия. Цена 1000-3000 ₽. Подходит для сложных устройств с требованиями к производительности.

Raspberry Pi RP2040 — для прототипов и hobby-проектов. ARM Cortex-M0+, 133 МГц. Низкая цена, простая работа, но ограниченная производительность.

Отечественные MCU. К1986, К1921 (Миландр), КОМДИВ (НИИЭТ) — для специфических задач, где требуется отечественное происхождение. Реальная экосистема и инструментарий пока уступают зарубежным аналогам.

Bare-metal, RTOS или embedded Linux

Выбор «операционной среды» — второе ключевое решение.

Bare-metal (без операционной системы).

  • Прямое программирование на голом железе, без планировщика
  • Минимальное энергопотребление и память
  • Гарантированная отзывчивость
  • Сложно поддерживать рост функциональности

Подходит для:

  • Простых датчиков с одним протоколом (например, термопара с Modbus)
  • Устройств с батарейным питанием и долгим временем работы
  • Критичных по времени задач (управление в реальном времени)

RTOS (Real-Time Operating System).

  • FreeRTOS — самая массовая, бесплатна, портирована на сотни МК. Простая, документация и комьюнити в порядке.
  • Zephyr — современная альтернатива от Linux Foundation. Более развитая экосистема драйверов и подсистем (Bluetooth, USB, файловые системы), модульная архитектура. Активно развивается.
  • ThreadX — RTOS от Microsoft (бывший Express Logic), коммерческая, сертифицирована для медицинских и автомобильных применений.

Подходит для:

  • Устройств средней сложности
  • Параллельной работы нескольких задач (опрос датчиков + сетевой обмен + локальная логика)
  • Реализации нескольких протоколов

Embedded Linux.

  • Полноценная ОС для устройств с высокой производительностью
  • Платформы: Raspberry Pi CM4, NXP i.MX, Allwinner H, Rockchip
  • Доступны все возможности Linux (драйверы, сеть, файловые системы, графика)
  • Контейнеризация (Docker), удобный OTA

Подходит для:

  • Шлюзов (edge gateway), агрегирующих данные с многих устройств
  • Сложных терминалов с дисплеями и GUI
  • Устройств с тяжёлой обработкой (ML inference, видео)

Стандартный выбор:

  • Простой датчик → bare-metal на STM32 или ESP32
  • IoT-устройство среднего класса → FreeRTOS или Zephyr
  • Шлюз или сложное устройство → embedded Linux

Buildroot vs Yocto для embedded Linux

Если выбрано embedded Linux — нужен инструмент сборки кастомного дистрибутива под целевое устройство.

Buildroot.

  • Простой и быстрый
  • Описание системы — один или несколько config-файлов
  • Сборка 30-60 минут первая, инкрементально быстрее
  • Подходит для команд 2-5 разработчиков и проектов сроком до года
  • Документация компактная, легко освоить

Yocto / OpenEmbedded.

  • Мощный и гибкий, но сложный
  • Описание системы — рецепты (recipes) и слои (layers)
  • Сборка 2-8 часов первая, далее инкрементально
  • Подходит для сложных проектов, нескольких поколений устройств, корпоративных процессов
  • Стандарт для крупных производителей (Bosch, Siemens, Toradex)

Стандартный выбор для стартапа и среднего проекта — Buildroot. Для крупного промышленного проекта или нескольких поколений устройств — Yocto.

OTA-обновления: обязательная инфраструктура

OTA (Over-The-Air) — удалённое обновление прошивки через сеть, без физического подключения программатора. В современном IoT — обязательная часть архитектуры.

Зачем нужно:

  • Экономика. Без OTA любая ошибка требует физического выезда. На тысячах устройств это разорительно.
  • Безопасность. Критические патчи (CVE в сетевых стеках, криптобиблиотеках) должны раскатываться оперативно.
  • Развитие. Добавление функциональности без замены железа.

Стандартная архитектура OTA:

  1. Bootloader с поддержкой A/B-разделов или fallback. Прошивка имеет два слота: текущий и резервный. Обновление пишется в свободный слот, после успешной проверки происходит переключение. При сбое — возврат к предыдущему рабочему слоту.

  2. Подписанные прошивки. Каждый бинарник подписывается секретным ключом (ECDSA или HMAC), bootloader проверяет подпись перед прошивкой. Защищает от подделок.

  3. Проверка целостности. Хеш-сумма прошивки сверяется перед запуском.

  4. Отказоустойчивый процесс. Watchdog проверяет, что новая прошивка стартует. Если нет — автоматический откат.

  5. Транспорт. HTTPS (для устройств с подключением к серверу обновлений) или MQTT (для устройств в pub-sub архитектуре). Для embedded Linux — Mender, RAUC, SWUpdate.

На MCU — обычно реализуется с использованием библиотек MCUBoot или собственного бутлоадера. На embedded Linux — Mender, RAUC, SWUpdate.

Промышленные протоколы

Современная embedded-прошивка для IoT поддерживает 2-4 протокола для гибкости интеграций.

ПротоколИспользованиеСложность реализации
Modbus RTU (RS-485)Обмен с PLC и SCADAМинимум 5-10 КБ кода
Modbus TCPТо же по Ethernet5-15 КБ
OPC UAСерьёзные промышленные системы100-500 КБ на embedded
CAN / CANopenАвтомобильная и промышленная техника10-30 КБ
ProfinetОборудование Siemens-совместимоеЛицензия + 30-80 КБ
MQTTIIoT, pub-sub5-15 КБ
CoAPREST-like для constrained устройств5-20 КБ
LoRaWANАгро, утилиты, дальняя связьРадио + библиотека
HTTPSПрямая связь с облаком30-100 КБ
WebSocketReal-time связь10-30 КБ
gRPC (на embedded Linux)Современный микросервисный обменНа Linux — без проблем

Подробнее по каждому протоколу — гайд по промышленным протоколам.

Безопасность: Secure Boot, шифрование, ключи

Безопасность в IoT — не «добавим потом», а архитектурное решение с первого дня. Стандартный набор мер:

Secure Boot. Бутлоадер прошит в OTP-памяти MCU (или защищённой flash), проверяет подпись прошивки перед запуском. Защищает от подмены прошивки. Реализуется с использованием встроенных средств MCU (STM32 Secure Bootloader, ESP32 Secure Boot) или собственного решения.

Шифрование прошивки. Бинарник зашифрован, ключ хранится в защищённой памяти MCU. Защищает от reverse engineering. Реализуется встроенными средствами MCU.

Защищённое хранение ключей. Серверные сертификаты, ключи криптографии хранятся в защищённой памяти (Secure Element, eFuse, специальный регион flash). На embedded Linux — Trusted Execution Environment (TEE), HSM.

TLS для всех сетевых соединений. Никаких HTTP, MQTT без шифрования, plain Modbus TCP по интернету. Только TLS 1.2+ с разрешёнными шифронаборами.

Уникальные ключи на устройство. Каждое устройство имеет свой набор ключей, привязанных к серийному номеру. При компрометации одного устройства — не компрометируется флот.

Для объектов КИИ дополнительно — сертифицированные СКЗИ (КриптоПро, ViPNet), специальные требования ФСТЭК. См. защита КИИ на it-fusion.ru.

Промышленные условия эксплуатации

Embedded-устройства для производства должны выдерживать:

  • Температурный диапазон -40..+85°C для индустриальных, до +125°C для специфических
  • EMI (электромагнитные помехи) — A class для промышленных условий, специальные требования для электростанций и подстанций
  • Защита от ESD (электростатические разряды) — минимум 8 кВ contact discharge
  • Влажность — 0-95% non-condensing, для уличных применений с конденсатом
  • Вибрации и удары — по требованиям конкретного применения
  • Пыль и влага — корпус с защитой IP54-IP67 в зависимости от размещения

Эти требования влияют на выбор компонентов, схемотехнику, разводку PCB, корпус. Дешёвые консьюмерские компоненты с диапазоном 0-70°C не подходят для промышленных условий — нужны индустриальные версии.

Сроки и бюджет

Тип устройстваСрокБюджет
Простая прошивка датчика (1 протокол, RTOS опционально)2-4 мес0.8-2 млн ₽
IoT-устройство среднего класса (RTOS, 2-3 протокола, OTA)4-7 мес2-5 млн ₽
Сложное устройство (embedded Linux, web-интерфейс, сложная логика)6-12 мес5-12 млн ₽
Разработка с нуля включая железо (схемотехника, PCB)+2-4 мес+1-4 млн ₽
Сертификация (ЕАС, ФСТЭК при необходимости)+2-4 мес+0.5-2 млн ₽

Связь с другими блоками

См. подробнее:

Типовые ошибки

Ошибка 1: Прототип на консьюмерских компонентах, продакшен на тех же. Прототип работает на ESP32 в офисе, на производстве отказы из-за EMI и температуры. Лечение — индустриальные компоненты с самого начала разработки прошивки.

Ошибка 2: Игнор OTA на старте. «Сделаем потом, когда будут тысячи устройств». На 100 устройствах любой баг требует выезда. Лечение — OTA в архитектуре с первого дня.

Ошибка 3: Plain-текстовые протоколы по интернету. Modbus TCP, MQTT без TLS прямо в облако. Любой может перехватить и подменить данные. Лечение — TLS обязателен для всех сетевых соединений.

Ошибка 4: Один ключ на весь флот. Все устройства подписаны и шифруются одним ключом. Утечка с одного — компрометация всех. Лечение — уникальные ключи на устройство.

FAQ об embedded-разработке

См. блок FAQ ниже — 7 главных вопросов CTO и главных инженеров.

Embedded-разработка для IoT — это не «прошить контроллер», а 3-12-месячный проект с правильным выбором MCU, RTOS, инфраструктуры OTA, безопасности, протоколов. Реальный диапазон — 2-12 млн ₽ для разных уровней сложности. Главные риски — консьюмерская элементная база, игнор OTA, plain-текстовые протоколы. Если планируете embedded — начните с архитектурного обследования: 2-3 недели на выбор платформы, оценку периферии, проектирование OTA. Это окупится на этапе масштабирования флота в разы.

Стандарты и регуляторы

Архитектура и реализация описанных систем опирается на международные и российские стандарты. Эти документы — обязательный справочный фундамент для проектирования и эксплуатации:

  • IEC 62541 (OPC UA) — индустриальный стандарт безопасного и совместимого обмена данными между промышленным оборудованием и системами верхнего уровня (SCADA, MES, ERP).
  • IEC 61131-3 (Programmable controllers) — стандарт языков программирования промышленных контроллеров (Ladder Diagram, Function Block Diagram, Structured Text, Instruction List, Sequential Function Chart). Российский эквивалент — ГОСТ Р МЭК 61131-3-2016.
  • IEC 62443 (Industrial cybersecurity) — серия стандартов кибербезопасности промышленных автоматизированных систем (IACS), включая защиту АСУ ТП, SCADA, PLC. Базовый стандарт для построения защищённой архитектуры объектов КИИ.
  • IEC 61511 (Functional safety — SIS) — функциональная безопасность приборных систем безопасности (Safety Instrumented Systems) на технологических объектах: нефтегаз, химия, энергетика.

FAQ о embedded

Какие микроконтроллеры использовать для IoT-устройств в 2026?

Зависит от задачи. STM32 (STMicroelectronics) — отраслевой стандарт для промышленных и измерительных задач: F4 для базового уровня, H7 для требовательных вычислений, L4 для энергоэффективности. ESP32 (Espressif) — самый массовый для подключённых устройств: встроенный Wi-Fi и Bluetooth, мощный двухъядерный процессор, цена 200-500 ₽ за модуль. Варианты — S3 для AI-нагрузок, C3 для бюджетных решений. NXP i.MX RT — для задач, где нужна мощность ARM Cortex-M7/M33 с advanced peripheral set. Raspberry Pi RP2040 — для прототипов и hobby-проектов. На российском рынке также — отечественные К1986, К1921 (Миландр) для специфических задач. Доступность ESP32 и STM32 в 2026 году нормализована, поставки идут через параллельный импорт и официальных дистрибьюторов.

RTOS, bare-metal или embedded Linux — что выбрать?

Зависит от сложности приложения и требований к времени отклика. Bare-metal — без операционной системы, прямое программирование на голом железе. Подходит для простых задач (датчик с одним протоколом), минимальное энергопотребление, гарантированная отзывчивость, но сложно поддерживать рост функциональности. RTOS (Real-Time Operating System) — лёгкая ОС с приоритетным планировщиком. FreeRTOS — самая массовая, бесплатна, портирована на сотни МК. Zephyr — современная альтернатива от Linux Foundation, более развитая экосистема драйверов и подсистем. Подходит для устройств средней сложности (несколько задач, протоколы, состояния). Embedded Linux — полноценная ОС для сложных устройств с высокой производительностью (Raspberry Pi CM4, NXP i.MX, Allwinner). Подходит, когда нужны графика, сложные сетевые стеки, контейнеры, OTA. Стандартный выбор: bare-metal для простых датчиков, FreeRTOS/Zephyr для большинства IoT-устройств, embedded Linux для шлюзов и сложных терминалов.

Чем отличаются Buildroot и Yocto для embedded Linux?

Оба инструмента служат для сборки кастомного дистрибутива Linux под целевое embedded-устройство. Buildroot — простой и быстрый. Описание системы — один или несколько config-файлов. Быстрая сборка (30-60 минут на первое полное собрание, потом инкрементально). Подходит для проектов до средней сложности, для команд без специализированного embedded-Linux инженера. Yocto / OpenEmbedded — мощный и гибкий, но сложный. Описание системы — рецепты (recipes) и слои (layers). Сборка значительно дольше (2-8 часов первая, далее инкрементально). Подходит для сложных проектов, где нужна тонкая настройка, поддержка множества платформ, корпоративные процессы. Стандартный выбор: Buildroot — для команд 2-5 разработчиков и проектов сроком до года. Yocto — для крупных проектов, нескольких поколений устройств, когда нужны воспроизводимость и масштабирование.

Что такое OTA-обновления и почему они критичны?

OTA (Over-The-Air) — удалённое обновление прошивки устройства через сеть, без физического подключения программатора. Критично, потому что. 1. Без OTA любая ошибка в прошивке требует физического выезда к устройству — на тысячах устройств это разорительно. 2. Безопасность: критические патчи (CVE в сетевых стеках, криптобиблиотеках) должны раскатываться оперативно. 3. Развитие функциональности: добавление фич без замены железа. Стандартная архитектура OTA. Bootloader с поддержкой A/B-разделов или fallback. Подписанные прошивки (HMAC или ECDSA). Проверка целостности перед прошивкой. Отказоустойчивый процесс: при неудаче — откат к предыдущей рабочей версии. Транспорт — HTTPS или MQTT. На MCU — обычно реализуется с использованием библиотек MCUBoot или собственного загрузчика. На embedded Linux — Mender, RAUC, SWUpdate.

Сколько стоит embedded-разработка прошивки для IoT?

Реальный диапазон. Простая прошивка датчика на MCU с одним протоколом (Modbus RTU или MQTT, без сложной обработки) — 800 тыс. — 2 млн ₽, срок 2-4 месяца. Прошивка IoT-устройства среднего класса (RTOS, несколько протоколов, OTA, защищённая связь) — 2-5 млн ₽, срок 4-7 месяцев. Сложное устройство (embedded Linux, web-интерфейс, сложная логика, кастомное железо) — 5-12 млн ₽, срок 6-12 месяцев. Если разработка идёт с нуля включая железо (схемотехника, разводка PCB, прототипирование) — добавляется 1-4 млн ₽ и 2-4 месяца. Сертификация (декларация соответствия, ЕАС, при необходимости ФСТЭК) — 0.5-2 млн ₽ и 2-4 месяца.

Какие промышленные протоколы поддерживают современные embedded-устройства?

Зависит от назначения. Промышленные устройства. Modbus RTU — обмен с PLC и SCADA по RS-485, минимальная реализация — 5-10 КБ кода. Modbus TCP — то же по Ethernet. OPC UA — современный стандарт для серьёзных промышленных систем, требует 100-500 КБ кода на embedded. CAN / CANopen — для автомобильной и промышленной техники. Profinet — для оборудования Siemens-совместимого. MQTT — лёгкий pub-sub протокол для IIoT, минимальная реализация 5-15 КБ. CoAP — REST-like для constrained устройств. LoRaWAN — широко в агро, утилитах. HTTPS — для прямой связи с облаком. На embedded Linux дополнительно — gRPC, WebSocket, расширенные стеки MQTT с QoS 2. Современная прошивка обычно поддерживает 2-4 протокола в одном устройстве для гибкости интеграций.

Что входит в полный стек embedded-разработки для IoT?

Стандартный набор работ. 1. Архитектурное проектирование — выбор MCU/SoC, RTOS, разбиение на задачи. 2. Драйверы периферии — UART, SPI, I2C, ADC, специфические сенсоры. 3. RTOS-инфраструктура — задачи, очереди, мьютексы. 4. Реализация протоколов — Modbus, OPC UA, MQTT (что нужно по ТЗ). 5. Сетевой стек — TCP/IP (lwIP или вендорский), TLS для безопасности. 6. Локальное хранение — flash-файловая система (LittleFS, SPIFFS) или EEPROM. 7. Бутлоадер с поддержкой OTA — MCUBoot или кастомный. 8. Защита (Secure Boot, шифрование прошивки, ключи в HSM). 9. Тестирование — модульные тесты, unit testing на железе, нагрузочные тесты. 10. Документация для производства (как прошить, как настроить, как откалибровать). 11. Поддержка после релиза. Полный цикл одного устройства — обычно 6-12 человек-месяцев работы embedded-инженера.