Як користуватися ESP Agent

Збираєш пристрій у конструкторі або просто описуєш завдання словами — агент пише код, компілює, лагодить помилки та заливає у плату. Нижче — усе, що варто знати першого дня. П'ять хвилин читання заощадять кілька доларів і пару годин.

1. Конструктор пристрою — найпростіший шлях

Кнопка 🧩 у шапці. Замість описувати залізо словами, зберіть його з каталогу: що підключено, на які піни, що робить. Агент отримує точну схему й нічого не додумує — а саме здогадки про залізо дають найбільше зайвих правок.

🖊 У кожної плитки є поле «що робить» — один рядок про роль цієї деталі: «реле вмикає нагрів», «кнопка скидає лічильник», «цей DS18B20 міряє воду в баку, а другий — повітря в кімнаті». Не пропускайте його. Зі складу агент бачить, ЩО підключено і на які виводи, але не знає, НАВІЩО: два однакові датчики без пояснення — просто два датчики, і який з них де, він обере навмання. Рядок іде в завдання прямо за елементом.

Пін можна лишити «авто»: агент добере безпечний і скаже у відповіді, куди паяти. Якщо плата вже спаяна — задайте піни самі, інакше агент обере свої.

Конструктор заразом ловить те, що новачок помічає вже з паяльником у руках: два елементи на одному піні, дисплей, який не влізе в пам'ять чипа, вивід без ШІМ там, де він потрібен, серво чи мотор від 3.3 В. Про «авто»-піни та конфлікти він попереджає прямо у вікні.

Набір = пристрій. Склад можна зберегти під іменем (💾 у шапці вікна) і потім збирати з нього нові пристрої. Під час надсилання проєкт називається так само, як набір — якщо ви не дали проєкту імені самі; своє ім'я застосунок не перебиває, а дубль розведе («433 2»).

Змінив плату — виводи скидаються на «авто», і про це пише рядок прямо у вікні. Так і задумано: той самий номер у різних чипів означає РІЗНІ ніжки («2» в ESP32 — це GPIO2, в ATtiny13 — сьома ніжка), тож старий вибір тут не годиться. Оберіть виводи заново під нове залізо. Якщо плата інша, а карта виводів у неї та сама (Uno і Nano), нічого не скидається.

2. Редактор екрана — розкладка мишкою

Кнопка 🎨. Розставте написи, числа й шкали так, як вони мають виглядати на дисплеї, і агент повторить це в коді. Пояснювати словами «температура згори ліворуч, великим» не треба — він отримає й координати, і розміри, і кольори.

Кнопки вирівнювання важливіші за координати. Натискання «по центру» передає агентові намір, і він порахує позицію формулою ширина/2, а не зашиє число з макета. Інакше на іншій роздільності все поїде.

Підтримуються й символьні LCD (1602, 2004 і подібні): там сітка не в пікселях, а у знакомісцях, координати йдуть агентові як «рядок 2, позиція 5», а шрифти й кольори ховаються — на такому дисплеї їх просто немає.

🖱 Правий клік по елементу → «Опис» — ось де макет перетворюється на завдання. Агент бачить картинку: велике число вгорі ліворуч. Що це ТЕМПЕРАТУРА, він не знає. У полі «що це показує» пишіть сенс: «температура з BME280», «час із RTC», «скільки лишилося до поливу». Якщо склад уже зібраний у конструкторі, над полем з'явиться випадайка «— обрати зі складу пристрою —»: берете джерело звідти одним клацанням, без одруків і різночитань у назвах. У завдання це піде поміткою «сенс: …» прямо за елементом — так напис на екрані пов'язується з деталлю зі складу.

У тому ж меню — «Перехід на екран…»: якщо екранів кілька, вкажіть, який з них відкриється при виборі цього пункту, і агент збере готову навігацію, а не вигадає свою. А в самого екрана є нотатка «коли показується / чим перемикається» — кнопкою, таймером, подією.

3. Зберемо проєкт цілком — на прикладі термостата

Три інструменти вище — це три окремі шматки одного завдання. Ось як вони складаються разом. Приклад: термостат, який тримає температуру в теплиці.

Крок 1. Склад. Кнопка 🧩, плата ESP32, чотири елементи з каталогу: DS18B20, реле, дисплей ST7789, енкодер із кнопкою. Виводи лишаємо «авто» — якщо плата ще не спаяна, хай агент обере безпечні й скаже, куди паяти.

Крок 2. Що робить кожна деталь. У полі «що робить» біля кожної плитки: DS18B20 — «міряє температуру в теплиці»; реле — «вмикає нагрівач»; енкодер — «крутимо — змінюємо уставку, натиснули — зберегли». Це той крок, який найчастіше пропускають, а саме він перетворює список заліза на пристрій.

Крок 3. Екран. Кнопка 🎨: велике число посередині, менше число під ним, напис «НАГРІВ» у кутку. Правим кліком ставимо сенс кожному: велике — «поточна температура з DS18B20» (її можна обрати зі складу випадайкою), маленьке — «задана уставка», напис — «горить, коли реле увімкнене».

Крок 4. Загальна логіка. Поле внизу конструктора — те, чого не видно ні зі складу, ні з макета: «тримати уставку з гістерезисом 0.5 °C, щоб реле не клацало; уставка зберігається в пам'яті й не губиться при вимкненні; при обриві датчика — вимкнути нагрів і написати на екрані помилку».

Крок 5. Перевірка й надсилання. Кнопка «👁 Що піде» показує рівно той текст, який отримає агент, — прочитайте його перед надсиланням. Далі «📎 Надіслати агенту»: він напише код, скомпілює, полагодить свої помилки й запропонує прошити.

⚠ Різниця між «зроби термостат» і цими п'ятьма кроками — не в обсязі тексту, а в кількості здогадок. Усе, що не сказано, агент домислить сам: який датчик де, що означає цифра на екрані, чи потрібен гістерезис. Здогадки про залізо дають найбільше зайвих правок — і саме на них ідуть гроші й час.

4. Веб-сторінка пристрою

Кнопка «+ WEB» у конструкторі додає сторінку, яка відкриється у браузері за адресою плати. Малювати її не треба — опишіть словами, що на ній має бути («показання температури, кнопка поливу, налаштування мережі»), розкладку обере агент.

Коли плата увійде в мережу, у шапці застосунку засвітиться 🌐 — там видно живу сторінку. Натисніть «✎ Правка» і змінюйте просто на ній: текст, колір тексту й тла, розмір, порядок (тягніть мишею або стрілками ↑↓), зайве прибирайте. Правий клік по елементу відкриває меню з пунктом «Опис» — сказати словами, що з ним зробити. Кнопка «📤 Агенту» надішле список правок і знімок; код править агент.

Якщо поле «Wi-Fi для налагодження» в налаштуваннях порожнє, агент спитає кнопками: вказати мережу (швидко для налагодження) чи зробити точку доступу з формою вибору мережі — саме так має працювати готовий пристрій, і домашній пароль не потрапить у прошивку.

5. Як давати завдання

Конструктор не обов'язковий: те саме можна просто описати текстом. Способи змішуються — склад із конструктора, а особливості словами в тому ж повідомленні.

Головне правило: агент робить рівно те, що попросили. Він не здогадується, що ви мали на увазі, — він обирає найімовірніший варіант. Що докладніше ТЗ, то менше правок потім.

Розмито «зроби мигалку» Агент сам обере пін, період і стиль коду. Може додати Serial, може розбити на файли. Далі почнуться правки.
Зрозуміло «мигалка на GPIO2, період 500 мс, без Serial, одним файлом» Обирати нічого — результат передбачуваний з першого разу.

Що корисно вказати: пін, інтервали та швидкості, чи потрібен Serial і на якій швидкості, скільки файлів, яку бібліотеку використати (якщо є улюблена), як поводитись при помилці (наприклад, «якщо датчик не відповідає — блимай світлодіодом»).

Якщо агент поставить запитання текстом у чаті — просто дай відповідь наступним повідомленням. Він навмисно питає, а не гадає, коли розвилка важлива.

6. Як сформулювати, щоб зрозуміли з першого разу

Модель не читає думок і не бачить вашого столу. Вона бере найімовірніший варіант із того, що написано. Тому працює просте правило: описуйте результат і обстановку, а не спосіб написання коду.

Кажи, що має вийти, а не як це писати. «Зроби усереднення по 10 замірах» — це вже вказівка, як кодити. «Показання не повинні стрибати» — це результат, і агент сам добере фільтр, який пасує вашому датчику.

Дай обстановку — залізо й живлення. Який саме модуль, як підключений, від чого живиться. «Дисплей не працює» і «дисплей ST7789 на SPI, підсвітка на 3.3 В напряму, екран білий» — це два різні запити, і другий розв'язується одразу.

Опишіть симптом, а не діагноз. Якщо сказати «поправ ініціалізацію дисплея», агент лагодитиме ініціалізацію, навіть якщо річ у живленні. Скажіть, що ви бачите: «сміття у правій третині екрана», «перші 2 секунди все гаразд, потім гасне».

Назвіть межі. Що вже працює і чіпати не треба, чого робити не можна, скільки пам'яті в запасі. Без цього агент може «заразом» переписати робочий шматок.

Одна задача за раз. П'ять вимог в одному повідомленні — це п'ять шансів, що одна загубиться. Зробіть каркас, перевірте на платі, потім додавайте.

Так доведеться переробляти «зроби нормально термометр з екраном» Не сказано ні про датчик, ні про дисплей, ні що таке «нормально». Агент обере все сам — і майже напевно не те, що лежить у вас на столі.
Так зрозуміють одразу «DS18B20 на GPIO4, OLED SSD1306 128×64 по I2C (SDA 21, SCL 22). Раз на 2 секунди показуй температуру великим по центру, з одним знаком після коми. Якщо датчик не відповідає — покажи риску, а не нуль» Залізо названо, поведінку задано, крайній випадок обумовлено. Переробляти нічого.

Якщо агент усе ж зрозумів не так — не переписуйте запит з нуля в новому чаті. Поправте у тому самому діалозі («період не 500, а 200 мс»): він пам'ятає контекст, і це швидше й дешевше, ніж пояснювати все наново.

7. Чому той самий запит дає різний код

Це не баг і не «агент сьогодні не в гуморі». Так влаштовані ШІ-моделі: вони добирають слова ймовірнісно, тому двох однакових відповідей не буває в принципі. Згори накладається ще кілька речей:

Ручки «роби завжди однаково» (temperature) у сучасних моделей немає.

Звідси практичний висновок: правте по ходу в тому самому діалозі («зміни період на 200 мс», «прибери Serial») замість «перепиши заново». У тому самому діалозі агент бачить готовий скетч і змінює пару рядків — це швидше й помітно дешевше, ніж писати все з нуля.

8. Код не завжди виходить з першого разу — це нормально

Перша версія майже ніколи не буває остаточною, і це не ознака того, що щось пішло не так. Агент не бачить вашої плати і дротів: частина речей вилазить лише на живому залізі — інша партія дисплея, просідання живлення, деренчання кнопки, бібліотека під іншу версію ядра. Доведення ходами — це штатний спосіб роботи, а не боротьба з інструментом.

Мовчання — найгірший варіант: якщо не сказати, що не так, агент вважатиме, що все запрацювало. Скажеш — доведе.

9. Чотири кнопки, які важливо не плутати

🧹 Очистити екран

Чат став чистим, але агент усе пам'ятає, і файли на місці. Це просто прибирання на екрані.

🗒 Новий

Агент забуває розмову, старий скетч їде до теки «_архів». Починає з нуля — і знову по-своєму. Беріть, коли завдання змінилося.

📁+ Новий проєкт

Окрема плата, діалог і тека. Зручно, коли паралельно ведеш кілька пристроїв.

⚡ Прошити

Заливає готовий скетч без ШІ — а отже, не витрачає гроші. Коли код уже написаний і плату треба просто перепрошити, просіть не агента, а тисніть цю кнопку.

10. Якщо хід обірвався

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

Файли та скетчі при цьому цілі. Досить написати «продовжуй, код у проєкті» — агент прочитає скетч і доробить. Втрачати нічого не треба, переписувати заново теж.

11. Старт, Про і Преміум: у чому різниця на практиці

У будь-якої моделі є стеля відповіді — скільки вона може написати за один хід. Це не те саме, що «скільки вона читає»: читати вона може дуже багато.

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

Преміум — топова модель: найсильніше мислення для найважчих проєктів, витрата вища, ніж на Про.

Це чесна різниця тарифів, а не налаштування: лімітом її не вилікувати. Прості задачі — Старт, складні проєкти — Про, найважчі — Преміум.

12. Плата

13. На що йдуть гроші

Ви платите за роботу моделі, і її відповідь коштує дорожче за ваше запитання — у рази. Звідси все інше:

Залишок видно прямо в застосунку, у статус-барі.

14. Два ядра ESP32

У ESP32 є дві версії ядра (низькорівнева основа, на якій збирається код): нове 3.x (за замовчуванням) і старе 2.0.17. Обидва стоять поруч і не заважають одне одному; для класичних плат ESP32 у шапці є кнопка 3.x / 2.x.

15. Навчається під ваш проєкт

Під час роботи агент запам'ятовує те, що реально спрацювало в цьому проєкті — розпіновку, версію бібліотеки, таймінги дисплея, фікс конкретної помилки. Наступного разу він не добирає те саме заново — це швидше й дешевше.

Пам'ять — це підказка, а не наказ. Ваша команда завжди важливіша: якщо щось із запам'ятованого більше не підходить — просто скажіть, агент послухає вас і виправить запис.

Знання лежать усередині проєкту, тож переїжджають разом із вашими бекапами.

⬇ Завантажити для Windows Отримати ключ