Рубрики
Технологии

Очередной вайбкодинг-проект. С небольшим нюансом. Для…

Очередной вайбкодинг-проект. С небольшим нюансом.

Для начала — немного о моём бэкграунде. Я сервисный инженер с 18-летним стажем. Инженер не в том значении, которое стало особенно популярным в последнее время, а тот самый, такой слесарь Михалыч с завода, только с двумя незаконченными высшими и техническим английским. Инструментарий у меня — не Python, venv и VS Code, а вполне осязаемые ключи, отвёртки, мультиметры и прочие осциллографы.

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

Вообще у Михалычей это любимое развлечение — делать себе специальные инструменты. Рекомендую старые выпуски Доктора Дью: в них раскрывается вся глубина таких развлечений. А раз появилась идея, надо её реализовать.

Пойти я решил следующим путём: подключить к ESP32 набор датчиков, собирать с них данные и отображать всё через веб-интерфейс. Каких датчиков и что собирать — в данном контексте не важно, потому что подключить датчик не проблема, разобраться, как он работает, тоже. Получить работающую прошивку — в теории… так же. Но, как всегда, есть нюанс, причём неожиданный: описание платы у продавца на Алиэкспресс.

ESP32-S3 имеет несколько типов, отличающихся конфигурацией Flash и внешней PSRAM. Если неправильно указать параметры памяти — прошивка улетает в циклическую перезагрузку. И вы думаете, я об этом знал? Нет, конечно, откуда? В результате потратил пару дней, переписывая прошивку и пытаясь понять, что, собственно, происходит. А тут ещё у Хабра эти курсы про прикладной ИИ.

В какой-то момент психанул и навайбкодил вот это:

WEP — Wepwawet ESP32 Profiler — утилита для диагностики плат ESP32

Интерфейс.
Интерфейс.

Задача: подключить случайную ESP32 и вытащить информацию об её аппаратной конфигурации.

Что хотелось получить:

  • определить модель микроконтроллера и его ревизию;

  • выяснить размер Flash-памяти;

  • определить наличие, объём и конфигурацию PSRAM;

  • подобрать корректные параметры для PlatformIO;

  • сформировать platformio.ini.

Что умеет приложение сейчас?

  • обнаружение портов с подключёнными устройствами;

  • получение аппаратной информации с платы;

  • сбор доступных сведений о микроконтроллере и Flash-памяти;

  • формирование отчётов в JSON и CSV;

  • генерация конфигурации platformio.ini для PlatformIO.

Из чего собрал?

Технологический стек:

  • Python 3.11, Textual, pySerial, esptool, JSON и CSV, pytest и Ruff.

ИИ в разработке: Copilot и ChatGPT

Ссылка на репозиторий: GitHub — Wepwawet ESP32 Profiler

А теперь вернёмся к низкому порогу входа в разработку.

И порог действительно низкий. Судя по мне, ниже уже некуда.

Если бы я решил написать эту программу самостоятельно, мне пришлось бы сначала освоить Python. А это в моём случае, видимо, невозможно в силу объективных причин, поэтому в процессе я так и не стал Python-разработчиком.

И вот на этом этапе я вполне понимаю чувства, которые возникают у разработчиков, когда речь заходит о вайбкодинге. Я испытываю аналогичные чувства, когда в «мою» технику лезут «кулибины» и «мастера золотые руки».

Но есть и другая сторона.

В обычной практике получить инструмент, который я хочу сделать, — это либо заплатить за готовое оборудование порядка двух-трёх тысяч евро, либо продолжать тратить собственное время на диагностику по косвенным признакам.

И тут ИИ-разработка даёт хороший инструмент для достижения результатов, которые в обычной жизни были бы мне практически недоступны.

Я не стал программистом. Я не могу самостоятельно написать такой проект с нуля. Но в итоге я его получил. И появляется вопрос: низкий порог входа в разработку — это действительно плохо?

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