Как стать автором
Обновить

Пишем Wake-on-LAN сервис на ESP8266 при помощи ChatGPT

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров12K
Всего голосов 48: ↑46 и ↓2+66
Комментарии20

Комментарии 20

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

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

Проффесионально пишу под микроконтроллеры. В частности под esp. ИИ сейчас постоянно пользуюсь. Автор абсолютно прав, ИИ ни каким образом программиста не заменяет. В сложных задачах он практически бесполезен. Но он может существенно облегчить рутину, и ускорить написание кода. Но человеку без знаний в программировании он не поможет написать код. И если программист не в состоянии решить какую то задачу без ИИ то и с ИИ он ее не решит.

Плюсую в этом плане, причём рутину вполне неочевидную тоже заменяет (если использовать нейронку с контекстом, которая может по необходимости ходить по проекту и читать другой код).

Прикрутил Gemini в VSCode, ради пробы озадачил — вот у меня система рендеринга меню на дисплее (полностью кастомная, никакой стандартной графической/UI либы нету), вот есть класс MenuListSelectionView, сделай такой же, но чтобы редактировать integer в заданных пределах, а не из списка.

Оно пару минут подумало и выдало готовый код, который почти сразу заработал как надо. Из исправлений было только убрать не размещать строку на стеке (т.е. в обработчике кнопок сделать strcpy, а в обработчике экрана уже её положить в контрол) — на тот момент баг в UI, который и человек с наскоку бы не понял. Ну и поменять местами кнопки вверх/вниз, т.к. логика выбора из списка (скроллим вниз — индекс увеличивается, вверх — уменьшается) отличается для человека от выбора числа (кнопка вниз уменьшает число, вверх — увеличивает).

На написание я бы потратил минут 15 чисто на тыкание клавиш, а так 2 минуты набрать промпт, 1 минута сгенерить, 2 минуты поправить вышеуказанное. Радостно!

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

Мне подобные помощники напоминают гугл-переводчик, который тоже является нейросетью. Если не знаешь английского или нужно перевести большой объем текста без строгих требований по качеству, то он сильно выручает, но в перспективе выгоднее всё-таки знать английский и переводить лишь отдельные незнакомые слова и фразы. Сейчас жалею, что в школе и университете слишком частое его использовал

Наверное, лучшее решение, если есть интернет, а интернета может не быть, и девайс превращается в тыкву.

Я правильно понимаю, что вы данную систему планируете использовать только внутри локальной сети?

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

Хм.. «интернета может и не быть» справедливо и для cdn откуда грузятся стили и скрипты, нет?)

В идеале это всё вместе с index.html можно запихнуть в SPIFFS, а у вебсервера просто включить флаг, что если маршрут не найден — отдать файл с соответствующим именем из флешки. Памяти там, как правило, достаточно.

Не на столько что бы вместить в себя целиком bootstrap с jquery, но шаг в верную сторону :)

Не знаю как на 8266, у меня на 32 аж мегабайт SPIFFS, туда слона запихать можно %)

Не, это на самом деле не много. Ключ к частичному решению все же tree shaking + сразу хранить в gzip. Сейчас просто нет браузеров что не умеют его декодить) еще fontawesome тянется весь ради пары иконок которые можно было и в svg вставить :)

ЗЫ, вообще есть версии не дорогие уже с 16 мегами флеша, вот там можно 12 выделить) и оставить под оту два раздела

Не встречал на 16, на 8 у официалов местных есть, да, но за баксов 15. При том что у китайцев на 4 метра да ещё и с доп оперативной — чуть меньше пяти. Как всегда нюанс в том, что последний килобайт памяти с наибольшей вероятностью будет битый %)

Ну и если ота не нужна, то грохнуть её раздел тоже вариант, кстати, да.

Не знаю вашей страны, но у нас есть у «официалов» https://www.chipdip.ru/product0/8004788539

Ключевое слово esp32 n16

Не встречал что бы память на есп была битая с коробки.

А, такие у нас есть и дёшево весьма https://akizukidenshi.com/catalog/g/g115675/

Но я ниже чем на WROVER не смотрю уже даже, и сразу с программатором и распиновкой на DIP, чтобы меньше заморачиваться

А мы как то привыкли к esp prog, да и обвязка минимальна все равно. Но они есть и wrover.

Вообще нейминг простой сейчас, в конце стоит n (размер флеш) p (размер Psram) например n16p8 означает 16mb flash, 8 psram

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

Пулл реквест примете если что?)) заранее спрашиваю

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий