Пайка на макетке — это классика, но не всегда удобно: нужен паяльник, флюс, время на остывание. А что, если собрать рабочий прототип IoT-устройства, не прикасаясь к паяльнику? AI уже умеет генерировать прошивки, разбирать ошибки компиляции, считать энергопотребление и даже помогать с MQTT-телеметрией. Главное — правильно ставить задачи.
В этой подборке — 15 проверенных промтов для Embedded-разработки. Каждый решает конкретную инженерную задачу: от генерации кода для ESP32 на MicroPython до отладки схемы по логам. Примеры приведены для реальных платформ — Arduino, ESP32, STM32. Все промты опробованы в работе над проектами разной сложности.
1. Генерация скелета прошивки на C++ для Arduino
Задача: быстро получить каркас программы с инициализацией периферии и основным циклом.
Промт:
Ты — опытный Embedded-разработчик. Напиши на C++ для Arduino Uno (ATmega328P) скелет прошивки, которая:
- инициализирует Serial на 9600 бод;
- настраивает пин 13 как выход для светодиода;
- в loop() мигает светодиодом с периодом 1 секунда без использования delay() (через millis()).
Добавь комментарии, поясняющие неблокирующую задержку. Код должен компилироваться в Arduino IDE без ошибок.
Пример использования: этот промт даёт готовый шаблон для мигания без блокировки. Вы копируете его в IDE, меняете пины и период — и экономите 10–15 минут на рутинной настройке.
2. Перевод кода с Arduino C++ на MicroPython для ESP32
Задача: перенести существующий скетч на MicroPython для быстрой разработки.
Промт:
Переведи следующий код Arduino C++ на MicroPython для ESP32. Сохрани логику работы, но используй модули machine и time. Обрати внимание на различия в работе с GPIO и таймерами. Вот код: [вставьте ваш скетч].
Пример: скетч мигания на C++ превращается в такой MicroPython-код:
from machine import Pin
from time import sleep
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
sleep(1)
Промт полезен при миграции проектов на ESP32, где MicroPython упрощает отладку.
3. Разбор ошибки компиляции
Задача: быстро понять, почему скетч не компилируется.
Промт:
Я компилирую скетч для ESP32 в Arduino IDE и получаю ошибку:
[вставьте полный текст ошибки]
Объясни причину и предложи исправление. Если ошибка связана с библиотекой, укажи, какую версию использовать или как заменить вызов.
Пример: ошибка invalid conversion from 'int' to 'IRrecv*' решается добавлением & перед объектом. AI подскажет точную строку и объяснит синтаксис.
4. Расчёт энергопотребления для батарейного устройства
Задача: оценить время работы от батареи и оптимизировать потребление.
Промт:
У меня есть ESP32, который просыпается каждые 10 минут, делает замер температуры и отправляет данные по Wi-Fi. Средний ток в активном режиме 120 мА, в глубоком сне 10 мкА. Питание от Li-Ion аккумулятора 2000 мА·ч. Рассчитай средний ток и время работы. Предложи способы увеличить автономность.
Пример: расчёт покажет, что при таких параметрах устройство проработает около 2 недель. AI предложит уменьшить частоту опроса или использовать более эффективный датчик.
5. Настройка MQTT-телеметрии для ESP32
Задача: подключить устройство к MQTT-брокеру и публиковать данные.
Промт:
Напиши код на MicroPython для ESP32, который подключается к Wi-Fi и MQTT-брокеру (например, test.mosquitto.org), публикует сообщение с показаниями датчика температуры каждые 30 секунд в топик 'home/kitchen/temp'. Используй библиотеку umqtt.simple. Добавь обработку ошибок подключения.
Пример: код будет включать настройку Wi-Fi, подключение к MQTT и цикл публикации. Проверяется на реальном брокере.
6. Интеграция с Home Assistant через MQTT Discovery
Задача: автоматическое обнаружение устройства в Home Assistant.
Промт:
Сгенерируй конфигурационный MQTT-топик для Home Assistant Discovery, чтобы датчик температуры с ESP32 автоматически появился в интерфейсе. Устройство: 'living_room_sensor', тип 'temperature', единицы '°C'. Используй формат JSON для discovery.
Пример: AI выдаст топик homeassistant/sensor/living_room_sensor/config с JSON-конфигом, который нужно опубликовать при старте. После этого датчик появится в HA без ручной настройки.
7. Отладка по логам последовательного порта
Задача: найти причину зависания или сбоя по выводу в Serial.
Промт:
Мой ESP32 периодически перезагружается. Вот лог с Serial-порта:
[вставьте лог]
Определи возможную причину (например, переполнение стека, watchdog, нехватка памяти) и предложи шаги для устранения.
Пример: лог содержит Brownout detector was triggered — AI подскажет добавить конденсатор по питанию или снизить нагрузку.
8. Подбор компонентов для схемы
Задача: выбрать резисторы, конденсаторы, стабилизаторы для проекта.
Промт:
Мне нужно подключить светодиод к пину ESP32 (3.3 В). Светодиод рассчитан на 2 В, 20 мА. Подбери токоограничивающий резистор. Также предложи схему питания ESP32 от 5 В с защитой от переполюсовки. Опиши компоненты и номиналы.
Пример: AI рассчитает резистор 65 Ом (ближайший стандартный — 68 Ом) и предложит диод Шоттки для защиты.
9. Генерация кода для STM32 на HAL
Задача: быстро создать проект для STM32 с использованием HAL-библиотеки.
Промт:
Напиши код на C для STM32F103 (Blue Pill) с использованием HAL. Настрой USART2 на 115200 бод, отправляй строку 'Hello' каждую секунду. Используй таймер для задержки. Код должен быть совместим с STM32CubeIDE.
Пример: AI сгенерирует инициализацию UART и таймера, которую можно вставить в main.c.
10. Конвертация аналогового сигнала в температуру
Задача: преобразовать показания термистора или LM35 в градусы Цельсия.
Промт:
У меня есть термистор NTC 10 кОм с бета-коэффициентом 3950, подключенный к аналоговому входу ESP32 через делитель напряжения с резистором 10 кОм. Напиши функцию на MicroPython для пересчёта ADC в температуру по уравнению Стейнхарта-Харта. Учти, что ADC 12-битный.
Пример: AI выдаст функцию с коэффициентами, которую можно сразу использовать.
11. Настройка Wi-Fi менеджера для ESP32
Задача: сделать устройство, которое при первом включении поднимает точку доступа для настройки Wi-Fi.
Промт:
Напиши код на MicroPython для ESP32, который при старте пытается подключиться к сохранённой Wi-Fi сети. Если не удаётся, создаёт точку доступа 'Setup' с паролем '12345678' и веб-сервер на порту 80 с формой для ввода SSID и пароля. После сохранения перезагружается.
Пример: AI сгенерирует код с использованием модулей network и socket. Это избавит от ручного прописывания credentials.
12. Оптимизация потребления: глубокий сон
Задача: снизить энергопотребление за счёт сна.
Промт:
Перепиши мой скетч для ESP32, чтобы он просыпался раз в час, читал температуру с датчика DS18B20 и отправлял по MQTT, а остальное время находился в глубоком сне. Используй таймер пробуждения. Приведи код на MicroPython.
Пример: AI добавит machine.deepsleep(3600 * 1000) и настроит пробуждение по таймеру.
13. Расчёт делителя напряжения для АЦП
Задача: измерить напряжение выше 3.3 В без повреждения входа.
Промт:
Мне нужно измерить напряжение 0-12 В с помощью АЦП ESP32 (максимум 3.3 В). Рассчитай резисторы для делителя напряжения. Предложи схему с защитой от перенапряжения.
Пример: AI подберёт резисторы 10 кОм и 3.3 кОм (коэффициент деления ~4), что даст на выходе 3 В при 12 В на входе.
14. Генерация JSON для телеметрии
Задача: сформировать структурированные данные для отправки.
Промт:
Создай JSON-структуру для телеметрии с полями: device_id, timestamp, temperature, humidity, battery_voltage. Напиши функцию на MicroPython для ESP32, которая заполняет эту структуру и сериализует в строку для отправки по MQTT.
Пример: AI выдаст код с использованием модуля json, который легко встроить в прошивку.
15. Поиск ошибки в схеме подключения
Задача: проверить правильность соединений до подачи питания.
Промт:
Я подключаю датчик DHT22 к ESP32: VCC к 3.3 В, GND к GND, DATA к пину 4. Проверь схему на типичные ошибки: не перепутаны ли пины, нужен ли подтягивающий резистор, не будет ли конфликта с другими функциями. Дай рекомендации.
Пример: AI напомнит, что для DHT22 нужен резистор 10 кОм между DATA и VCC, и предупредит, что пин 4 может использоваться для других целей при загрузке.
Эти промты помогают сократить время на рутину и сосредоточиться на логике проекта. Главное — проверять сгенерированный код на реальном железе и адаптировать под свои задачи. AI не заменит паяльник, но упростит разработку и отладку. Попробуйте эти промты в следующем проекте — и увидите, как вечер работы превращается в пару часов.
Комментарии