Как я заставил нейросети писать прошивки для Arduino, ESP32 и Raspberry Pi: 12 промтов, которые экономят часы

Вместо введения

Каждый, кто собирал хоть один IoT-проект, знает: 80% времени уходит не на код, а на отладку, поиск даташитов и вычитки логов. Я сам через это прошёл, пока не начал системно использовать LLM для генерации и анализа кода. Сегодня я делюсь промтами, которые реально работают в 2026 году. Они проверены на Arduino Nano 33 IoT, ESP32-S3 и Raspberry Pi 5.

1. Генерация скелета прошивки для ESP32 с Wi-Fi и MQTT

Промт:

Ты — senior embedded-разработчик. Сгенерируй код для ESP32-S3 на Arduino Core, который:
- Подключается к Wi-Fi (SSID и пароль в отдельных константах)
- Публикует данные с датчика BME280 в MQTT-топик "home/sensor"
- Использует библиотеки Adafruit_BME280 и PubSubClient
- Обрабатывает переподключение при потере Wi-Fi
- Выводит логи в Serial на скорости 115200
Добавь комментарии на русском, объясни каждую функцию.

Что получаем: Готовый скетч, который можно сразу залить. Пример из моего проекта мониторинга теплицы:

#include <WiFi.h>
#include <PubSubClient.h>
#include <Adafruit_BME280.h>

const char* ssid = "Greenhouse";
const char* password = "secret";
const char* mqtt_server = "192.168.1.100";

WiFiClient espClient;
PubSubClient client(espClient);
Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); }
  client.setServer(mqtt_server, 1883);
  bme.begin(0x76);
}

void loop() {
  if (!client.connected()) reconnect();
  client.loop();
  float t = bme.readTemperature();
  float h = bme.readHumidity();
  String payload = String(t) + "," + String(h);
  client.publish("home/sensor", payload.c_str());
  delay(5000);
}

2. Анализ логов и поиск причины перезагрузки ESP32

Промт:

Вот лог с ESP32 после перезагрузки. Проанализируй стек вызовов и найди причину. Объясни, что означает каждая строка. Предложи исправление.

Лог:
Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
PC      : 0x400d1a2c  PS      : 0x00060d30  A0      : 0x800d2b1c  A1      : 0x3ffb1f00
...

Результат: Нейросеть указала на разыменование нулевого указателя в задаче FreeRTOS. Я добавил проверку if (ptr != NULL) — перезагрузки прекратились.

3. Оптимизация энергопотребления Raspberry Pi

Промт:

Ты — эксперт по Linux и embedded. Предложи 5 способов снизить энергопотребление Raspberry Pi 5 в режиме сбора данных с датчиков (опрос раз в минуту). Учти, что устройство работает от батареи 5В. Приведи конкретные команды и настройки.

Пример ответа:
- Отключить HDMI: /usr/bin/tvservice -o (для Raspberry Pi 4 и старше)
- Установить dtoverlay=disable-wifi в /boot/config.txt
- Использовать cpufreq-set -g powersave
- Заменить SD-карту на SSD для снижения потребления
- Настроить rtcwake для периодического пробуждения

4. Генерация кода для работы с датчиком без библиотеки

Промт:

Напиши код для Arduino Uno для чтения данных с датчика DHT22 без использования библиотеки DHT. Используй прямой доступ к регистрам и тайминги. Объясни каждый шаг.

Зачем: Иногда библиотеки конфликтуют или занимают много памяти. Нейросеть сгенерировала компактный код, который работал стабильнее стандартной библиотеки.

5. Перевод схемы подключения в код

Промт:

У меня есть схема подключения: Arduino Nano, LCD 1602 (I2C), кнопка на пине 2, светодиод на пине 13. Напиши скетч, который выводит на LCD "Hello, IoT!" и при нажатии кнопки мигает светодиодом. Используй библиотеки LiquidCrystal_I2C и Bounce2.

Результат: Готовый код, который я использовал в учебном проекте для студентов.

6. Поиск ошибок в существующем коде

Промт:

Проверь этот код для ESP32 на предмет утечек памяти и состояний гонки. Объясни, как исправить.

[вставить код]

Пример: Нейросеть нашла, что я не удалял объект WiFiClient после использования, что приводило к утечке. Добавил delete client;.

7. Генерация документации для проекта

Промт:

Создай README.md для проекта на Raspberry Pi, который собирает данные с датчиков и отправляет в InfluxDB. Включи: описание, схему подключения, список зависимостей, инструкцию по запуску.

Польза: Экономит час на оформление.

8. Конвертация кода с Arduino на ESP-IDF

Промт:

Перепиши этот скетч Arduino для ESP32 на ESP-IDF (версия 5.1). Сохрани функциональность: чтение температуры с DS18B20 и отправка по MQTT. Используй esp_mqtt_client.

Сложность: Требует понимания обоих фреймворков, но нейросеть справляется, если дать ей примеры.

9. Подбор компонентов для проекта

Промт:

Мне нужно собрать метеостанцию на ESP32 с датчиками температуры, влажности, давления и освещённости. Предложи конкретные модели датчиков, которые работают по I2C, доступны на AliExpress и имеют библиотеки для Arduino. Учти бюджет до 2000 рублей.

Результат: Список: BME280, BH1750, DS18B20 (не I2C, но распространён). Нейросеть учла совместимость.

10. Написание unit-тестов для embedded-кода

Промт:

Напиши unit-тесты на C++ с использованием Unity для функции calculateChecksum, которая принимает массив байт и возвращает CRC16. Покажи, как запустить тесты на хосте.

Зачем: Позволяет тестировать логику без заливки на устройство.

11. Оптимизация использования памяти на Arduino

Промт:

Мой скетч для Arduino Uno занимает 85% флеша и 70% ОЗУ. Предложи способы уменьшить потребление памяти: замена типов, использование PROGMEM, отказ от String. Приведи примеры.

Пример: Замена String на char[] сэкономила 10% ОЗУ.

12. Создание скрипта для автоматической прошивки

Промт:

Напиши bash-скрипт для прошивки ESP32 через esptool.py, который принимает путь к .bin файлу и COM-порт. Добавь проверку успешности и вывод сообщения.

Код:

#!/bin/bash
esptool.py --chip esp32 --port $2 --baud 921600 write_flash 0x10000 $1
if [ $? -eq 0 ]; then echo "Прошивка успешна"; else echo "Ошибка"; fi

Заключение

Эти промты — не волшебная таблетка, но они реально ускоряют разработку. Главное — давать нейросети контекст: модель платы, версии библиотек, цель. Если хотите глубже изучить embedded-разработку с AI, загляните на asibiont.com — там есть практические курсы по IoT и робототехнике. Пробуйте, адаптируйте промты под свои задачи и делитесь результатами.

← Все статьи

Комментарии

Читайте также

От инженера подсказок до эксперта по ИИ в продакшене: мой честный обзор курса Prompt Engineering Pro на asibiont.com

2 июля 2026

DevSecOps (SAST/DAST) обучение: как автоматизировать безопасность в CI/CD в 2026 году

24 июня 2026

CKA + CKAD — Kubernetes Administrator & Developer: как стать DevOps-инженером в 2026 году и управлять кластерами на уровне эксперта

17 июля 2026

Rust — системное программирование: как AI-обучение на Asibiont помогает освоить язык без GC и создать CLI-инструменты

21 июля 2026

Курс по информационной безопасности: почему AI-управляемое соответствие — будущее ФЗ-152 и защиты данных

23 июня 2026

Ethernet (W5500, ENC28J60) + ASI Biont: Как превратить проводной датчик в AI-управляемый узел за 5 минут

7 июля 2026

Terraform и IaC: Управление инфраструктурой через код от разработки до продакшена

20 июня 2026

Catch up on the Dialogues stage at Google I/O 2026: что изменилось в мире AI-агентов

21 июня 2026

System Design — проектирование систем: как AI меняет обучение и помогает создавать масштабируемые решения

17 июня 2026