- BrainTools - https://www.braintools.ru -
Меня зовут Александр Воробьев. За моими плечами разработка более 100 электронных устройств, пуско-наладка АСУ ТП и множество проектов, где нужно было “прикрутить” датчик к микроконтроллеру, написать веб-интерфейс и заставить это всё работать вместе. Каждый раз — это горы кода, даташитов и времени. В какой-то момент я задался вопросом: а можно ли автоматизировать этот процесс? Чтобы инженер думал над архитектурой, а не над синтаксисом? В этом посте я поделюсь своим путем создания инструмента, который позволяет собирать сложные IoT-системы за минуты с помощью AI-агента, и покажу это на реальных кейсах.
Боли [1] разработки
Тем, кто разрабатывал своё IoT устройство знаком этот процесс, который состоит из: выбор датчика, чтение даташита, поиск библиотек, написание кода для опроса, отладка протоколов (I2C, RS-485), написание веб-интерфейса. Это временные затраты (недели, а иногда даже и месяцы), необходимость держать в голове кучу информации, сложность интеграции “железа” от разных вендоров. У меня многие интересные IoT проекты так и не дошли до логического завершения ((( и были отправлены пылиться в ящик до лучших времён.
Приход ChatGPT и облегч��ние жизни программистам микроконтроллеров
Проектов, которые хотелось запустить копилось много, а времени на это не было от слова – совсем. И тут появился ОН! Искусственный Интеллект [2]! Точнее его продукт – ChatGPT. И тут понеслось. Я начал писать промпты для arduino и esp32 только в путь. Каждый день создавал новый проект. Какие проекты я не мог выполнить в связи с отсутствием скиллов я стал реализовывать за несколько часов. Но потом стал видеть ограничения – определенные библиотеки не подходили для определенных микроконтроллеров. Та библиотека, которая работала с Arduino UNO, не работала с ESP32C6 в связи с разностью архитектур и даже библиотека, которая без проблем компилировалась для ESP32 WROOM не работала с ESP32C6, например AsyncTCP и ESPAsyncWebServer. А тут я решил ещё разработать плату на базе ESP32C6 с основными интерфейсами – RS485, I2C, 0-10V, с аналоговыми входами, цифровыми входами (для индуктивных датчиков 12V) и аналоговыми выходами, ну и с 3мя реле.
Плата на базе ESP32C6 и ИИ агент к ней
Для ESP32C6 ситуация была жуткая – ИИ писал код, который не компилировался – то библиотека не работает, то плата уходит в watchdog, то по I2C нет передачи данных, так как у ESP32C6 – LowPower I2C, то ещё какая то фигня. Меня это стало бесить очень сильно. Плюс ко всему нужно было писать каждый раз порты в скетче для работы с моей платой. ИИ же не знал к какому конкретно порту подключен датчик. И тут я пришёл к тому, что нужно создавать своего ИИ агента с инструкциями, в которых я указал правила написания кода. Такие как –
Не используй библиотеки AsyncTCP и ESPAsyncWebServer
HTML должен быть валидным, адаптивным и быстрым
Для датчика DS18B20 используй только библиотеку OneWireNg
от Piotr Stolarz
При работе с I2C используй шину I2C Low Power (частота 100 кГц, питание 3.3 V).
Питание датчиков по шине I2C: 3V3_I2C и GND_I2C. Подтягивающие резисторы SDA/SCL (4.7–10 kΩ) к 3.3 V уже есть на плате, о них не надо писать пользователю
Пиши код без использования delay()
Для аналоговыех входов V_adc = (adc_value / 4095.0) 3.3;
V_sensor = V_adc (5100 + 10000) / 10000; // реальное напряжение 0–5 В
И так далее, естественно правил намного больше, чем я тут перечислил. ИИ агента я сделал на одной платформе, название которой пока не буду писать, ибо пока всё работает в тестовом режиме без коммерционализации.
Новые фишки моей платформы
Далее я стал добавлять новые фишки на сайт, такие как –
схема подключения датчиков к плате
описание библиотек, используемых в скетче
выбор датчика (DHT11, DHT22, DS18B20, BME280,…..), при выборе которого создаётся промпт для агента автоматически
в��бор модуля (DS1307 RTC, LN298, WS2812B, ……), при выборе которого создаётся промпт для агента автоматически
Интеграция с Алисой Яндекса
Выбор кейсов (умная теплица, умный дом, метеостанция, умная кормушка, мониторинг энергии и т.д….) в котором уже предусмотрена работа с определёнными датчиками и модулями.
Так же я добавил возможность видеть сколько памяти [3] микроконтроллера прошивка занимает

Маркетплейс датасетов и обучение [4] нейронок TinyML на платформе
Ну и главной изюминкой всего этого проекта явлется – Маркетплейс данных IoT, куда можно будет загружать готовые датасеты с датчиков для продажи или бесплатного пользования и возможность о��учения нейронок для микрокнтроллера.
Но это уже другая история….



Спасибо за внимание [5].
Автор: graff59
Источник [6]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/25999
URLs in this post:
[1] Боли: http://www.braintools.ru/article/9901
[2] Интеллект: http://www.braintools.ru/article/7605
[3] памяти: http://www.braintools.ru/article/4140
[4] обучение: http://www.braintools.ru/article/5125
[5] внимание: http://www.braintools.ru/article/7595
[6] Источник: https://habr.com/ru/articles/1002110/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1002110
Нажмите здесь для печати.