Плату можно спаять за вечер, а вот довести самодельный контроллер до надежности, при которой на него можно оставить рыбу на ночь без присмотра, выходит намного дольше и дороже, чем кажется на старте.
Контроллер для узв своими руками на Arduino или ESP32 может снимать показания датчиков температуры, уровня и pH и включать реле по заданному условию, и для хозяйства с несколькими бассейнами такая автоматика реально экономит время на ручных обходах. Граница проходит там, где от контроллера начинает зависеть не удобство, а жизнь рыбы в ваше отсутствие: там самодельная плата без независимого резервного питания и без канала связи, не зависящего от домашнего роутера, становится слабым местом всей системы.
Оба варианта это платы для любительской электроники с открытой средой разработки, но для контроллера узв они закрывают разные задачи.
| Параметр | Arduino (Uno, Mega, Nano) | ESP32 |
|---|---|---|
| Связь с сетью | Нет своей, нужен отдельный модуль | Wi-Fi и Bluetooth встроены |
| Число входов и выходов | Больше на платах вроде Mega | Меньше, часть пинов занята под Wi-Fi |
| Потребление энергии | Низкое в простом режиме | Выше из-за постоянной радиосвязи |
| Типичная роль в системе | Съем датчиков и управление реле на месте | То же самое плюс отправка данных на сервер или в приложение |
На практике многие самодельные схемы используют Arduino как рабочую лошадку для снятия сигнала с датчиков и управления реле, а ESP32 или отдельный GSM/Wi-Fi модуль поверх нее уже для передачи данных наружу, потому что закладывать беспроводную связь в саму плату управления не всегда оправдано с точки зрения энергопотребления и надежности контактов.
Кислород и растворенный аммиак самому снять заметно сложнее и дороже: гальванический или оптический датчик кислорода с адекватной точностью стоит уже сопоставимо с частью готового прибора, а разбор трех технологий измерения кислорода и их цена подробно даны в статье обзор датчиков для рыбоводства.
Программную часть контроллера разумно наращивать по шагам, а не пытаться сразу написать полную логику управления фермой.
Плата с датчиками работает, пока есть питание и пока жива сеть, к которой она подключена. Это и есть две главные слабости типичной самодельной схемы.
Второе слабое место: канал связи. Контроллер на ESP32, который отправляет тревогу через домашний Wi-Fi роутер, зависит от того же самого источника питания, что и остальной объект: роутер обесточился вместе со светом, и сообщение просто некуда уйти. Независимый канал связи, не завязанный на локальную сеть объекта (например GSM модуль со своей сим-картой или готовый прибор с собственным модулем связи), закрывает именно этот сценарий, самый частый по факту среди реальных аварий на фермах.
Влажность в помещении с узв или рядом с прудом заметно выше обычной комнатной, и для самодельной платы это не менее опасный враг, чем ошибка в прошивке.
Даже опытный самостройщик, который уверенно спаял контроллер, разумно проводит границу там, где цена ошибки это не сгоревшая плата, а потерянная за ночь партия рыбы. Резервное питание самого прибора мониторинга, независимый от локальной сети канал оповещения и стабильная годами прошивка без зависаний это как раз то, ради чего часть хозяйств переходит на готовый прибор вместо полностью самодельной схемы, оставляя себе только не критичную автоматизацию по мелочи.
Аквастраж пока тоже проходит опытную проверку: подтверждена температура, остальные каналы требуют приемки. Предлагать его как готовую замену критичной сигнализации с независимой связью сейчас рано; кислород, pH и GSM готовыми не обещаем. Если хотите участвовать в проверке на своем хозяйстве, подберем опытный состав и согласуем сценарии приемки. Собираем пять подписанных бета-договоров до 7 декабря 2026 года, сборка начнется после пятого. Детали плюс 15%, работа в бете бесплатна, установка рядом отдельно.
В Аквастраже проверен канал температуры. Контроль питания, насоса и аэрации обсуждаем отдельно: сначала выбираем датчик и проверяем канал на площадке. Опишите один бассейн или узел, предложим состав бета-комплекта и смету.
Обсудить бета-комплектС самого простого узла: подключить один датчик температуры и вывести показание на экран или в последовательный порт компьютера, без реле и без сети. Только после того, как эта база работает стабильно неделями, есть смысл добавлять управление и связь.
Для локального снятия датчиков и управления реле без выхода в сеть Arduino достаточно. Как только нужна отправка данных или тревоги наружу, требуется либо ESP32 со встроенным Wi-Fi, либо отдельный сетевой или GSM модуль поверх обычной платы Arduino.
Технически да, но объем работы по надежности (резервное питание, независимая связь, защита от зависаний прошивки, защита входов от наводок) на практике сопоставим с разработкой отдельного прибора, а не с одним вечером пайки, и именно этот объем работы чаще всего недооценивают на старте.
Именно на такой случай критичные функции (питание, температура, связь) разумнее доверить готовому прибору с независимым резервным питанием и каналом связи, а самодельный контроллер оставить на некритичных задачах вроде подсветки или логирования, чтобы отказ платы в отсутствие хозяина не остался незамеченным до его возвращения.
Сама плата с одним датчиком собирается за вечер, но опыт самостройщиков на форумах сходится в одном: доведение схемы до состояния, когда на нее можно положиться без постоянной проверки руками, растягивается на месяцы, потому что именно на этом этапе всплывают редкие зависания прошивки, наводки от силовой части и ошибки в логике пороговых значений, которые не видны на столе при первом тесте.
Технически да, если хватает входов платы и провода до каждого датчика не превышают длину, на которой сигнал остается стабильным без усилителя. На практике это увеличивает цену отказа одной платы: авария в прошивке или обрыв питания одного контроллера сразу лишает контроля все подключенные к нему бассейны разом, а не один. Разделение на несколько независимых контроллеров по бассейнам снижает эту зависимость ценой более высокой суммарной стоимости обвязки и отдельного канала связи для каждого узла.
Совмещать оправдано, когда готовый прибор закрывает критичные для жизни рыбы параметры с независимым резервным питанием и связью, а самодельный контроллер берет на себя некритичную автоматику вроде подсветки, дозирования корма по расписанию или логирования показаний в свою базу данных для последующего анализа графиков. Дублировать критичные функции на самодельной плате смысла обычно нет: она не приблизится к надежности профильного прибора, а усложнит систему и добавит еще одну точку отказа.
Плата это меньшая часть сметы, основные деньги уходят на обвязку и защиту.
| Компонент | Ориентир по цене | Комментарий |
|---|---|---|
| ESP32 (базовая плата) | 690-990 руб | Модели с Wi-Fi и Bluetooth встроены |
| Датчик температуры DS18B20 герметичный | от 370 руб | Погрешность ±0,5 градуса в диапазоне минус 10 плюс 85 |
| Ультразвуковой датчик расстояния JSN-SR04T | от 445 руб | Мертвая зона около 25 см, разрешение 1 мм |
| Модуль реле на несколько каналов | 300-800 руб | Зависит от числа каналов и наличия оптронной развязки |
| Герметичный корпус IP54 и выше | от 500 руб | Растет с размером и числом кабельных вводов |
| Мини-ИБП или powerbank для резервного питания | от 3500 руб | Отдельно от основной силовой розетки объекта |
Итоговая сумма для одного бассейна с температурой, уровнем и одним реле обычно укладывается в 5-8 тысяч рублей без учета времени на пайку, отладку и доработку прошивки, а именно время редко закладывают в план на старте.
Watchdog это встроенный аппаратный таймер, который считает время до нуля и по достижении нуля перезагружает контроллер. Программа обязана периодически "кормить" таймер, то есть сбрасывать его вручную в рабочем цикле, пока все идет штатно. Если прошивка зависла и перестала доходить до строчки со сбросом таймера, watchdog срабатывает сам и делает аппаратный сброс без участия человека. На платах Arduino таймер считает обычно до нескольких секунд, у ESP32 схема сложнее: есть отдельный таймер задач внутри операционной системы FreeRTOS (Task WDT), таймер на уровне аппаратных прерываний (IRAM WDT) и таймер, который следит за питанием и часами реального времени даже в спящем режиме (RTC WDT). Библиотека для Arduino Core называется esp_task_wdt.h, и разработчики советуют включать сразу связку из task и RTC watchdog, чтобы закрыть и зависание кода, и провал по питанию.
На уровне псевдокода пороговая логика для одного датчика выглядит как последовательность из нескольких простых шагов, и именно в такой последовательности имеет смысл писать прошивку самому.
Проверка на правдоподобие из пункта два часто выпадает из самодельных прошивок первой версии, а именно она отличает рабочую систему от той, что после отвалившегося датчика начинает слать ложные тревоги или, хуже, молчать, приняв обрыв провода за "все в порядке".
Кроме связки Arduino и ESP32 на рынке остается более старая и дешевая плата ESP8266. У нее меньше выводов и один аналоговый вход вместо нескольких, поэтому для схемы с одним датчиком температуры и простой логикой ее достаточно, а как только нужно снять больше двух-трех аналоговых сигналов сразу (pH, уровень, ток), выводов начинает не хватать и разумнее сразу брать ESP32 с большим числом входов и двумя ядрами процессора, что дает свободу держать сетевую часть и чтение датчиков в разных потоках, не мешая друг другу.
Аналоговые сигналы, в первую очередь с pH-модуля и с датчика тока, чувствительнее к длине провода и наводкам, чем цифровые вроде DS18B20 с его собственным протоколом на одном проводе. Длинный аналоговый провод, проложенный рядом с силовым кабелем насоса или компрессора, ловит наводку от переключения реле и пусковых токов, и эта наводка выглядит на графике как случайный шум или резкий выброс, который легко перепутать с реальной аварией. Общее практическое правило для самодельной схемы: аналоговые провода тянуть отдельным жгутом от силовых, по возможности использовать экранированный кабель с заземлением экрана на одном конце, а окончательное решение по порогу принимать не по одному мгновенному отсчету, а по среднему значению за несколько измерений подряд, что само по себе фильтрует львиную долю случайных выбросов от наводок.
Экономия на отдельном источнике питания для самого контроллера выглядит невинно ровно до первого отключения света. Стоимость мини-ИБП или повербанка для платы и модуля связи начинается в районе трех с половиной тысяч рублей, это меньше, чем стоит одна ночь без сигнала при реальной аварии с насосом в холодное время года. Оценка стоимости конкретно вашей аварии по часам и по видам рыбы разобрана в статье пропала вода: что делать, там же по шагам расписано, что успевает произойти с рыбой и биофильтром, пока никто не в курсе отключения.
Для первого датчика и простой логики Arduino IDE со стандартными библиотеками более чем достаточно, порог входа низкий, а примеров кода под датчики температуры, уровня и реле в открытом доступе много. Как только логика разрастается до нескольких десятков строк условий, нескольких датчиков и вывода в сеть одновременно, разумно переходить на более серьезную среду вроде PlatformIO, которая дает версионирование библиотек, более удобную отладку и сборку под разные платы из одного проекта без переключения программ вручную. Само по себе усложнение среды не делает прошивку надежнее, но облегчает поддержку кода, когда его набирается достаточно, чтобы забыть, что делает каждая строчка через полгода после написания.
Самодельный контроллер требует не только написания кода один раз, но и регулярного контроля состояния, иначе перечисленные выше отказы накапливаются незаметно.
| Периодичность | Что проверять |
|---|---|
| Раз в неделю | Показания датчиков на разумность, сверка с ручным контрольным замером |
| Раз в месяц | Калибровка pH-модуля по буферным растворам, если он подключен |
| Раз в сезон | Осмотр корпуса на конденсат, состояние пайки и разъемов, замена влагопоглотителя |
| Раз в год | Тестовое зависание прошивки для проверки watchdog, тестовое отключение основного питания для проверки резерва |
Без такого календаря самодельная система обычно работает исправно ровно до первого реального отказа, потому что на столе при сборке проверяются только штатные сценарии, а не поведение схемы при обрыве датчика, скачке напряжения или зависании кода спустя месяцы непрерывной работы.
Готовые прошивки и библиотеки под датчики закрывают базовые задачи, чтение температуры или включение реле по порогу можно собрать почти без своего кода, копируя примеры производителя платы или библиотеки датчика. Сложность начинается там, где нужна своя логика проверки правдоподобия, комбинация нескольких условий сразу и надежная отправка тревоги наружу с учетом обрыва связи, вот тут без понимания языка программирования обойтись уже не получится, и именно этот участок работы обычно недооценивают, планируя один вечер на всю сборку.
Если после честного прохода по этому списку остаются пункты без галочки, разумнее оставить самодельную плату на некритичных задачах и закрыть жизненно важные параметры готовым прибором, а не тратить недели на доведение самоделки до того же уровня надежности, который в готовом решении уже встроен производителем.
Технические характеристики плат Arduino и ESP32 (число входов, наличие Wi-Fi, энергопотребление): официальная документация проектов Arduino и Espressif.
Текущий статус проверки и условия беты Аквастража: страница прибора на сайте akvastrazh.ru.
Точность и цена датчика температуры DS18B20: amperka.ru.
Цена и мертвая зона ультразвукового датчика JSN-SR04T: youbot.ru.
Принцип работы watchdog-таймера и аппаратный сброс по истечении времени: habr.com.
Типы watchdog в ESP32 (Task WDT, IRAM WDT, RTC WDT) и библиотека esp_task_wdt.h: geekmatic.in.ua.