Недорогая IoT-система мониторинга RAS на базе Raspberry Pi

Рециркуляционные аквакультурные системы (RAS) позволяют выращивать рыбу в высоких плотностях в контролируемой среде, но для этого необходимо постоянно следить за ключевыми параметрами воды, чтобы поддерживать её качество и здоровье рыб. Ручной контроль трудоёмок и подвержен ошибкам, что создаёт высокий риск серьёзных потерь. В этой работе описано создание автоматизированной системы мониторинга на базе Raspberry Pi, которая объединяет несколько датчиков — температуры, pH, проводимости, уровня воды и работы насосов — для непрерывного сбора данных в реальном времени. Особенность системы — программный алгоритм отбраковки выбросов, который повышает точность данных. Код полностью открыт и доступен на GitHub для дальнейшей доработки. Собранные данные отображаются на IoT-платформе ThingsBoard, что позволяет визуализировать информацию и анализировать её историю через защищённый протокол HTTPS. Кроме того, реализован проактивный механизм уведомлений через сервис Pushover, который мгновенно отправляет предупреждения на мобильные устройства, если какой-либо параметр выходит за допустимые пределы. В отличие от коммерческих решений, стоимость которых достигает нескольких тысяч евро и сопровождается высокими расходами на эксплуатацию и трудности интеграции, предложенная система надёжна, масштабируема и экономически выгодна — оборудование обойдётся менее чем в 150 евро.

1. Введение

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

Рециркуляционные аквакультурные системы (RAS) становятся одним из перспективных решений. Они позволяют вести высокоинтенсивное производство с минимальным водным следом за счёт постоянной фильтрации и повторного использования морской или пресной воды. Главная техническая задача при управлении RAS — поддерживать стабильную и качественную среду для роста рыбы. Ключевые параметры воды, такие как температура, pH, проводимость (показатель солёности и общего количества растворённых веществ) и уровень растворённого кислорода, должны находиться в узких, специфичных для вида, пределах. Это помогает минимизировать стресс, предотвращать заболевания и обеспечивать оптимальный рост. Кроме того, механические элементы системы — водяные насосы и аэраторы — критически важны: их отказ может быстро привести к росту аммиака, снижению кислорода и массовой гибели рыбы.

Традиционный ручной мониторинг с отбором проб и визуальной проверкой неэффективен. Он лишён преимуществ непрерывного наблюдения и не позволяет быстро реагировать на нештатные ситуации вне рабочего времени. Задержка между отклонением параметра и его обнаружением создаёт основной риск для производства.

Интеграция технологий Интернета вещей (IoT) меняет подход: автоматизированный мониторинг и управление в реальном времени становятся возможными. Системы IoT обеспечивают непрерывный поток данных, упрощают удалённое управление и позволяют принимать решения на основе данных, повышая продуктивность, устойчивость и благополучие рыб.

Ряд исследований показал, что IoT может эффективно использоваться для мониторинга аквакультуры, включая прудовые системы и отдельные параметры, например, растворённый кислород. Однако многие существующие решения фрагментированы, ограничены в функционале или зависят от дорогого проприетарного оборудования и ПО. Чаще всего в качестве контроллеров применяются Arduino, благодаря прямому подключению к аналоговым датчикам, или ESP32 — за мощность, универсальность и низкую стоимость.

В этой работе представлена комплексная, открытая и недорогая система мониторинга RAS стоимостью менее 150 евро, которая решает вышеописанные проблемы. Система построена на Raspberry Pi, использует открытое программное обеспечение и модульную архитектуру, обеспечивая непрерывный контроль широкого спектра параметров воды и работы оборудования. Ключевое улучшение — алгоритм отбраковки выбросов, который повышает точность данных и предотвращает ложные тревоги. Система интегрирована с IoT-платформами для визуализации и включает надёжную систему push-уведомлений, обеспечивая современное решение для аквакультурных операций без лишнего риска.

2. Материалы и методы

2.1. Аппаратная часть

Система разработана с модульной архитектурой, состоящей из уровня датчиков, уровня обработки и связи, а также уровня облачной визуализации и оповещения. Система построена на базе одноплатного компьютера Raspberry Pi 3 Model B+ 1 GB, который выполняет роль центрального процессора.

Система интегрирует набор датчиков для комплексного мониторинга, начиная с цифрового термометра DS18B20 для точных измерений температуры воды через интерфейс 1-Wire. Для подключения аналоговых датчиков, включая pH-зонд BNC и электрод проводимости, использован высокоточный 16-битный АЦП ADS1115. АЦП ADS1115, использованный в качестве фронтенда для преобразования сигналов, применяет внутренний опорный источник напряжения 2.048 В для обеспечения стабильности измерений.

Фильтры не применялись в датчике тока ACS712-20A и pH-датчике. Кабели, использованные во всех соединениях, — F/UTP, имеющие простое фольгированное экранирование вокруг всех четырёх витых пар. GND от аналоговых датчиков подключён к GND АЦП. Этот же АЦП также обрабатывал данные от двух аналоговых датчиков тока (ACS712-20A), которые контролировали рециркуляционный и дозирующий насосы путём измерения их рабочего тока.

Ультразвуковой датчик расстояния (JSN-SR04T) подключён напрямую к GPIO Raspberry Pi и обеспечивал бесконтактное измерение уровня воды в верхнем резервуаре. Уровень воды использовался для расчёта объёма воды в системе.

Установлен модуль UPS HAT для Raspberry Pi, обеспечивающий бесперебойное питание и защиту от повреждения данных при перебоях или снижении напряжения. UPS физически подключается путём совмещения его с 40-пиновым разъёмом GPIO Raspberry Pi. Две литий-ионные батареи (тип 18650, 3000 мА·ч, 3.7 В) подключаются к специальному разъёму UPS.

7-дюймовый IPS-дисплей 1024×600 с ёмкостным сенсором и HDMI подключён к Raspberry Pi и служил основным интерфейсом для визуализации данных в реальном времени и локального управления системой. Дополнительно система подключалась к маршрутизатору через Ethernet и могла контролироваться по протоколу VNC с ПК в локальной сети. Система установлена в компактной фильтрационной RAS-установке plug-and-play, подключённой к 12 аквариумам по 174 литра. Все компоненты системы представлены на рисунке 1. Перечень материалов приведён в дополнительной таблице S1.

Рисунок 1.(a) Система закреплена на стене и оснащена 7-дюймовым экраном. Линия A подключает ультразвуковой датчик, линия B — датчик насоса рециркуляции ACS712-20A, линия C — датчики проводимости, pH и температуры, а линия D — датчик дозирующего насоса. (b) Корпус одноплатного компьютера Raspberry Pi 3 B+, установленный сверху, оснащён платой UPS HAT и АЦП ADS1155 для сбора данных. Сетевое подключение обеспечивается Ethernet-кабелем для стабильного доступа. Экран подключён отдельным USB-кабелем (сенсорный ввод) и HDMI-кабелем (видеосигнал). Основное питание подаётся через блок питания, подключённый к UPS HAT. (c) На левом изображении показаны датчики температуры, проводимости и pH. На правом изображении представлен BNC-контроллер в водонепроницаемом корпусе. (d) Ультразвуковой датчик (обведённый красным эллипсом) установлен в нижней части водонепроницаемого корпуса. (e) Линия насоса оснащена датчиком тока ACS712-20A.
Рисунок 1.
(a) Система закреплена на стене и оснащена 7-дюймовым экраном. Линия A подключает ультразвуковой датчик, линия B — датчик насоса рециркуляции ACS712-20A, линия C — датчики проводимости, pH и температуры, а линия D — датчик дозирующего насоса.
(b) Корпус одноплатного компьютера Raspberry Pi 3 B+, установленный сверху, оснащён платой UPS HAT и АЦП ADS1155 для сбора данных. Сетевое подключение обеспечивается Ethernet-кабелем для стабильного доступа. Экран подключён отдельным USB-кабелем (сенсорный ввод) и HDMI-кабелем (видеосигнал). Основное питание подаётся через блок питания, подключённый к UPS HAT.
(c) На левом изображении показаны датчики температуры, проводимости и pH. На правом изображении представлен BNC-контроллер в водонепроницаемом корпусе.
(d) Ультразвуковой датчик (обведённый красным эллипсом) установлен в нижней части водонепроницаемого корпуса.
(e) Линия насоса оснащена датчиком тока ACS712-20A.

Все датчики прошли строгую процедуру калибровки для обеспечения отслеживаемости измерений и определения неопределённости. Калибровки выполнялись в лабораторных условиях при 21.4 °C ± 1 °C. Датчики DS18B20 калибровались относительно сертифицированного ртутного стеклянного термометра в диапазоне 4 °C – 40 °C. Всего использовано 45 измерений. Расширенная неопределённость (k=2) составила ±0.096 °C. pH-зонд откалиброван по трём точкам с использованием буферных растворов pH 4.01, 7.00 и 10.01. Собрано 43 измерения после стабилизации сигнала. Рабочий диапазон pH-датчика — 4–10. Электрод проводимости откалиброван по 29 измерениям.

Для измерения уровня воды ультразвуковой датчик откалиброван относительно сертифицированной складной линейки. Уровень воды в контейнере во время калибровки варьировался от 1833 до 2043 литров. На каждом из 29 уровней записаны показания датчика и сравнимы с прямым измерением. Рабочий диапазон сенсора — 0–2340 литров, что соответствует максимальному объёму системы. Сам датчик имеет рабочий диапазон 25–400 см.

Основное ПО — единый Python-скрипт (Python 3.11.2), построенный вокруг класса SensorMonitor. Модуль сбора данных включает методы чтения отдельных датчиков. Ключевая часть кода — метод get_filtered_sample. Эта функция получает несколько выборок (по умолчанию 10), сортирует их, удаляет два самых высоких и два самых низких значения, а затем возвращает среднее из оставшихся шести. Такой метод существенно снижает шум и количество выбросов, повышая целостность данных.

Модуль связи использует HTTPS-клиент для отправки данных на IoT-платформу ThingsBoard. Используются SSL/TLS и сертификаты системы. Такая архитектура обеспечивает гибкость при создании панелей мониторинга и настройке независимых правил оповещений. Модуль управления данными выполняет две основные функции:

локальное логирование в CSV на SD-карту и одновременное резервное копирование на USB-накопитель;

публикацию фильтрованных данных в ThingsBoard.

Модуль оповещений выполняет критический мониторинг через метод check_alerts. Значения датчиков сравниваются с порогами. При нарушениях система формирует сообщение и вызывает метод send_pushover_notification, который сразу отправляет push-уведомление на мобильное устройство.

2.2. Рабочий процесс и обработка ошибок

Система работает в цикле с таймером на основе объекта Timer из модуля threading. После запуска класс SensorMonitor инициализирует всё оборудование и сетевые соединения. Затем запускается главный цикл collect_and_publish, повторяющийся с заданным интервалом (например, каждые 10 минут).

Каждый цикл включает:
• последовательное чтение и фильтрацию данных всех датчиков;
• публикацию данных в облако ThingsBoard;
• сохранение данных в CSV с временной меткой;
• проверку порогов и отправку уведомлений через Pushover при нарушениях.

Пороговые значения, интервалы, пины оборудования и секретные токены не зашиты в код — они хранятся в конфигурационных и переменных окружения.

Архитектура системы рассчитана на работу 24/7 и включает несколько функций надёжности:
• обширные try-except блоки для предотвращения падения системы;
• подробное логирование (информация, предупреждения, ошибки);
• безопасное отключение при низком заряде батареи:
– при 30% отправляется предупреждение;
– при 10% выполняется безопасное отключение;
• метод cleanup сбрасывает GPIO и закрывает соединения при авариях или ручной остановке.

2.3. Экспериментальная реализация

Эксперимент проводился в течение одного месяца в RAS, оснащённой IoT-системой. 120 молоди Sparus aurata (85.6 ± 8.5 г) получены с коммерческой фермы и случайно распределены по 12 резервуарам. Рыба содержалась при световом режиме 12 ч свет / 12 ч темнота и кормилась вручную дважды в день. Холодильная установка настроена на 21 °C, а pH корректировался NaOH при падении ниже 7. Дозирующий насос работал на 1900 об/мин, а рециркуляционный — на стандартных 2800 об/мин. Статистическая обработка включала вычисление MAE, RMSE, коэффициента детерминации R², анализ Бланд–Алтмана, регрессию Пассинга–Баблока и коэффициент Кендалла τ.

3. Результаты

Представлена электрическая схема системы (рисунок 2). Разработанная система успешно собирала, обрабатывала и передавала данные со всех датчиков (температура, pH, проводимость, объём воды, состояние насосов) на протяжении месячного периода работы. Во время отключения электричества система продолжала работу 2.5 часа. Главный цикл выполнялся каждые 10 минут без сбоев, всего выполнено 4302 цикла сбора данных. Статистика данных — в таблице 1. Две панели мониторинга ThingsBoard также созданы (рисунок 3).

Рисунок 2. Электрическая схема системы мониторинга RAS
Рисунок 2. Электрическая схема системы мониторинга RAS
Рисунок 3. Две различные панели, разработанные на платформе ThingsBoard для мониторинга данных датчиков.Верхняя панель отображает текущие данные с интервалом 10 минут, а нижняя — временные ряды в соответствии с настройками.
Рисунок 3. Две различные панели, разработанные на платформе ThingsBoard для мониторинга данных датчиков.
Верхняя панель отображает текущие данные с интервалом 10 минут, а нижняя — временные ряды в соответствии с настройками.
Table 1. Параметры, измеренные установленными эталонными датчиками (среднее ± SD), средняя абсолютная ошибка (MAE), среднеквадратическая ошибка (RMSE) и R-квадрат.
Table 1. Параметры, измеренные установленными эталонными датчиками (среднее ± SD), средняя абсолютная ошибка (MAE), среднеквадратическая ошибка (RMSE) и R-квадрат.

Производительность системы датчиков проверена по сравнению со стандартизированными датчиками. Для параметров окружающей среды средние значения датчиков близки к эталонным: температура (21.43 ± 0.49 против 21.36 ± 0.46 °C), pH (7.46 ± 0.21 против 7.50 ± 0.23) и электропроводность (1570.3 ± 3.2 против 1569.8 ± 3.8 µS/см). Это подтверждается низкими значениями ошибок: средняя абсолютная ошибка (MAE) составила 0.12 °C, 0.08 и 0.84 µS/см соответственно. Сильные коэффициенты корреляции (Figure 4) (R²: 0.91, 0.83, 0.88 и 0.91) подтверждают высокую линейную зависимость между данными датчиков и эталонов.

Для измерения объема воды система продемонстрировала сильную корреляцию (R² = 0.91) с эталонным стандартом, характеризуясь низкой абсолютной ошибкой (MAE = 11.7 L, RMSE = 17.4 L).
Система управления дозирующим насосом работала как запланировано со средней скоростью 1897 и низким стандартным отклонением (217 RPM).

Результаты анализа Бланд–Алтман представлены в Supplh3entary Figure S2 и Supplh3entary Table S2. Центральная сплошная желтая линия представляет среднюю разницу (смещение) между двумя методами измерения, а верхняя и нижняя пунктирные линии показывают 95% пределы согласия (средняя разница ± 1.96 стандартных отклонений разниц).

Результаты далее подтверждены регрессией Пасcинг–Баблок (Supplh3entary Figure S3). Коэффициент τ Кендалла, который является непараметрической мерой порядковой ассоциации между датчиками и данными калибраторов, варьировал между 0.77–0.85 (Supplh3entary Table S2).

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

Рисунок 4. Калибровочные кривые для датчиков температуры ((A); n = 45), pH ((B); n = 43), электропроводности ((C); n = 36) и объема воды ((D); n = 29) (точечные линии). Красные пунктирные линии представляют верхние 95% доверительные интервалы, синие — нижние 95% доверительные интервалы.
Рисунок 4. Калибровочные кривые для датчиков температуры ((A); n = 45), pH ((B); n = 43), электропроводности ((C); n = 36) и объема воды ((D); n = 29) (точечные линии). Красные пунктирные линии представляют верхние 95% доверительные интервалы, синие — нижние 95% доверительные интервалы.

4. Обсуждение

В аквакультуре значительные исследования и разработки направлены на создание автоматизированных систем для комплексного мониторинга и своевременного оповещения, когда параметры воды отклоняются от нормальных значений. Представленная система обеспечивает единую платформу для мониторинга ключевых параметров RAS, таких как температура, pH, электропроводность, уровень воды и работа насосов. Использование аналого-цифрового преобразователя ADS1115 и программного алгоритма фильтрации обеспечивает стабильные и надежные показания датчиков, свободные от электрических шумов, типичных для проектов на Raspberry Pi. Использование отдельных HTTPS-токенов устройства для каждого потока данных, хотя и требует большего первоначального конфигурирования IoT-платформы, обеспечивает гибкость в построении панелей и правил оповещения. Интеграция мобильных push-уведомлений обеспечивает высоконадёжный механизм оповещения с малой задержкой, превосходящий традиционные уведомления по электронной почте.

Arduino-система разработана для выращивания азиатского сибаса, демонстрируя аналогичный уровень точности, и включала важные датчики (например, растворённого кислорода, аммиака). Эти датчики эффективны и важны, но их использование может увеличить стоимость. Альтернативой может быть использование датчика тока (ACS712) для мониторинга работы генератора воздуха вместо DO-датчика, однако следует учитывать, что отказ генератора не является единственной причиной дефицита кислорода в рыбоводных емкостях. В целом для обеспечения целостности данных настоятельно рекомендуется использовать датчики высокого качества.

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

Эта работа представляет недорогую и устойчивую IoT-систему мониторинга RAS, соответствующую мировой тенденции «Точной аквакультуры». Система автоматизирует трудоемкий и подверженный ошибкам процесс ручного сбора данных, обеспечивает видимость состояния системы в реальном времени через облачную панель и предоставляет немедленные уведомления о критических проблемах, значительно снижая риск потери рыбного молодняка. Наблюдаемая низкая средняя разница указывает на минимальную систематическую ошибку, что говорит об отсутствии стабильного переоценивания или недооценивания данных датчиками. На практике сигнал тревоги о сбое насоса через push-уведомление стал ключевым фактором предотвращения гибели рыб в ходе эксперимента. Кроме того, платформу ThingsBoard можно установить на мобильные устройства, что позволяет отслеживать данные в реальном времени.

Разработанная система также служит основой для будущего расширения в нескольких ключевых направлениях. Первый шаг — добавление новых датчиков: растворённого кислорода, окислительно-восстановительного потенциала (ORP), аммиака и озона. Следующее направление — добавление механизмов управления для создания системы с обратной связью: автоматическое включение насосов, нагревателей, холодильников или клапанов для регулировки DO или pH на основе данных в реальном времени. Дополнительно существует потенциал для прогнозного обслуживания и анализа: использование облачных ML-моделей для прогнозирования отказов оборудования по трендам тока, оптимизации кормления по истории качества воды и с учётом поведенческих данных рыб. Будущие версии системы могут значительно расширить функциональность за счет добавления расходомеров и счетчиков энергии, что позволит создать полноценную платформу управления ресурсами. Расходомеры дадут точные данные об использовании воды и скорости рециркуляции, а энергомониторы — о потреблении энергии насосами, холодильниками и аэраторами. Такое объединённое отслеживание потоков воды и энергии критически важно для повышения устойчивости и экономической эффективности аквакультуры.

5. Выводы

В данном исследовании успешно разработана, реализована и подтверждена комплексная, недорогая и открытая IoT-система мониторинга рециркуляционных систем (RAS). Система, построенная на базе Raspberry Pi и открытого ПО, продемонстрировала устойчивую и надежную работу 24/7 в течение одного месяца, автономно собрав и обработав более 4300 циклов данных.

Ключевые достижения работы:

Интеграция всех критических параметров — температуры воды, pH, электропроводности, объёма воды и состояния насосов — в одной платформе.

Алгоритм программного исключения выбросов обеспечил высокую достоверность данных, что подтверждено сильной корреляцией с эталонными датчиками (R² 0.83–0.91).

Архитектура системы связала сбор данных с оперативной полезной информацией: ThingsBoard — для визуализации, Pushover — для моментальных оповещений.

Низкая стоимость (<150 EUR) и открытый код делают систему доступной альтернативой коммерческим решениям.

В заключение, система предоставляет проверенный шаблон для демократизации технологий точной аквакультуры. Автоматизация ручного мониторинга и внедрение анализа данных существенно снижают производственные риски, повышают эффективность и улучшают устойчивость современных аквакультурных хозяйств. Будущие разработки будут сосредоточены на внедрении автоматического управления (closed-loop), добавлении расширенных датчиков и использовании машинного обучения для предиктивной аналитики.

Аббревиатуры

ADC — Analog-to-Digital Converter
API — Application Programming Interface
CSV — Comma-Separated Value
DO — Dissolved Oxygen
GPIO — General Purpose Input/Output
GUI — Graphical User Interface
IoT — Internet of Things
MAE — Mean Absolute Error
HTTPS — Hypertext Transfer Protocol Secure
ORP — Oxidation–Reduction Potential
RAS — Recirculating Aquaculture Systh3
RMSE — Root Mean Square Error
RPM — Revolutions Per Minute
UI — User Interface
UPS HAT — Uninterruptible Power Supply Hardware Attached on Top
USB — Universal Serial Bus
VNC — Virtual Network Computing

-----

Emmanouil E. Malandrakis. Design and Implementation of a Cost-Effective IoT-Based Monitoring and Alerting System for Recirculating Aquaculture Systems (RAS). Sensors 2025, 25(21), 6692

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

twenty four ÷ = three