Всё начинается довольно невинно.
У вас дома стоит растение. Его нужно поливать, но вспоминаете вы об этом либо слишком поздно, либо после того, как полили «на всякий случай» несколько дней назад. В какой-то момент вы покупаете ESP32, датчик влажности, небольшой насос, открываете несколько роликов на YouTube и понимаете: это же можно собрать за вечер.
И правда можно. Несколько проводов, немного кода: если почва сухая — включить насос. Через час на столе стоит первая система автополива, а в голове появляется приятное чувство, что теперь растение под контролем.
Потом проходит неделя.
Датчик показывает странные значения. Насос шумит, но воды почему-то почти не добавляет. Wi‑Fi отключается, и непонятно: растение не полили потому, что почва влажная, потому что устройство зависло или потому, что приложение не может достучаться до платы. Затем появляется второе растение. Потом хочется видеть историю. Потом хочется открыть данные в Home Assistant. Потом оказывается, что один и тот же датчик в кокосовом субстрате и обычной земле ведёт себя совершенно по-разному.
И простой вечерний проект становится проблемой и головной болью: появляется много деталей, о которых нужно думать одновременно, а писать, проверять и поддерживать всё это в одиночку становится сложно.
Из такого ощущения появился Smart Plant OS.
Это открытый проект системы ухода за растениями. Один ESP32 ухаживает за одним растением и полностью контролирует его: получает показания датчиков, следит за водой, хранит настройки, принимает решение о поливе и управляет насосом. Веб-приложение существует с самого начала: с ним можно управлять одним растением, а затем объединить все растения в одном интерфейсе Smart Plant OS.
Идея простая: добавить второе, пятое или десятое растение не должно означать, что пора собирать отдельную коллекцию скетчей, страниц и случайных настроек.
При этом система должна быть понятной. Если пропала связь, ESP32 всё равно должен понимать, можно ли безопасно поливать растение. Если датчик неисправен или давно не передавал данные, автоматика не должна делать вид, что всё нормально. Если бак пуст, насос не должен включаться. Если команда пришла повторно из-за ошибки сети, система должна распознать её и не запускать второй полив.
На словах это кажется очевидным. Но именно из таких мелочей и складывается устройство, которому можно доверять.
Когда я начал думать о Smart Plant OS, быстро стало понятно: написать код для датчика и насоса — самая лёгкая часть. Гораздо труднее заранее договориться, что именно система считает ошибкой, что она обязана сохранить после перезагрузки, какие данные показывать пользователю и как не превратить красивый интерфейс в источник опасных команд.
Поэтому проект начался с архитектуры и документации.
Сейчас в репозитории есть HTML-прототип интерфейса с демонстрационными данными. Он показывает, каким может быть приложение, но не управляет настоящим насосом и не пытается выглядеть готовым устройством. Зато уже описаны правила полива, форматы данных, события, ошибки, настройки, API-контракт и будущие интеграции.
Например, «влажность почвы» не выдаётся за абсолютную истину. Датчик сначала отдаёт сырое значение, а понятный индекс появляется только после калибровки под конкретный датчик и конкретный субстрат. Объём воды, рассчитанный по времени работы насоса, называется оценкой, а не точным измерением. Неисправный датчик, пустой бак и неизвестное состояние системы должны блокировать автоматический полив.
Это может показаться чрезмерной осторожностью для одного горшка. Но без таких правил домашняя автоматика быстро становится набором догадок: «вроде работало», «кажется, там стоит порог 40», «не знаю, почему вчера включился насос».
Есть и другая причина делать проект открытым.
Закрытые устройства часто удобны, пока всё идёт по плану. У них есть готовое приложение, поддержка, аккуратный сценарий первого запуска. И производители обычно внимательно относятся к стабильности своих продуктов.
Но у владельца почти всегда остаётся меньше свободы. Он не может увидеть, как именно принимаются решения. Не может спокойно использовать другой интерфейс. Не может добавить нужную интеграцию, если её нет в планах производителя. Он зависит от того, как долго устройство будет поддерживаться, будет ли доступно приложение и останется ли нужная функция после следующего обновления.
Smart Plant OS не пытается воевать с каждым готовым устройством на рынке. И не утверждает, что open source сам по себе лучше любого коммерческого продукта. Идея в другом: система для дома и растений должна быть доступна для понимания и развития тем людям, которые ей пользуются.
Если хочется поменять интерфейс — это возможно. Если хочется добавить Home Assistant — система должна быть к этому готова. Если нужна история на NAS или microSD — это не должно ломать базовую работу. Если кто-то нашёл ошибку или придумал лучшее правило — он может принести идею в общий проект.
И здесь появляется вайб-кодинг.
Несколько лет назад участие в таком проекте для многих начиналось с барьера: нужно знать язык программирования, устройство ESP32, работу с сетью, интерфейсами, датчиками, документацией и Git. Сейчас можно прийти с идеей, описать её ИИ, получить первый прототип, разобраться в нём и показать другим.
Это не отменяет инженерную работу. ИИ не проверит, выдержит ли питание запуск насоса. Не заметит, что датчик подключён неправильно. Не увидит залитое растение и не возьмёт на себя ответственность за ошибку. Но он помогает быстрее пройти путь от «я хочу поучаствовать» до конкретного результата: экрана интерфейса, проверки данных, примера API, тестового сценария, описания проблемы или первого наброска кода.
Именно поэтому мне нравится идея открытого проекта в эпоху вайб-кодинга. Он может стать не только местом, где опытные разработчики выкладывают код, а пространством, куда люди приходят учиться делать настоящие продукты вместе.
Кто-то увидит в документации непонятное место и перепишет его. Кто-то предложит сценарий, в котором автоматика должна остановиться. Кто-то соберёт прототип на своём железе и поделится измерениями. Кто-то сделает интерфейс понятнее. Кто-то с помощью ИИ подготовит изменение, которое затем пройдёт ревью и станет частью проекта.
Необязательно в одиночку писать всю Smart Plant OS. Достаточно захотеть сделать её немного лучше.
Сейчас как раз тот момент, когда можно влиять на основу. Интерфейс уже есть, архитектура и спецификация подготовлены, но прошивка ещё не успела превратить все ранние решения в неподвижный старый код. Можно обсуждать, спорить, предлагать и строить систему вместе.
Я хочу, чтобы в итоге получилось приложение, где человек видит все свои растения в одном месте, понимает их состояние и не зависит от непрозрачной логики. Чтобы каждый ESP32 заботился о конкретном растении, а вся система оставалась понятной, расширяемой и локальной.
Smart Plant OS пока только начинает путь. Но, возможно, именно это и делает момент интересным: присоединиться можно не к готовому продукту, где остаётся только нажать кнопку, а к проекту, в котором ещё можно повлиять на то, каким он станет.
Репозиторий: Smart Plant OS
Там уже есть архитектура, план разработки, контракт API и инструкция для участников.
Если вам хочется, чтобы умные устройства дома можно было не только купить, но и понять, изменить и развивать, присоединяйтесь.
ссылка на оригинал статьи https://habr.com/ru/articles/1098024/