Fermozavr DIY — продолжаем собирать собственную систему мониторинга
В предыдущей статье мы разбирались, какую информацию должна показывать наша система мониторинга и как ей правильно работать с показаниями датчиков.
Теперь можно посмотреть, что из этого получилось на практике.
Мы сделали первую рабочую версию интерфейса. В ней уже есть графики, журнал измерений, предупреждения о возможных заморозках и возможность самостоятельно настраивать информационные панели.
И самое интересное — всё это можно попробовать прямо сейчас.
Правда, есть одна особенность: настоящих измерений пока нет. Датчики ещё в пути, поэтому для проверки мы вводим показания вручную. Это позволяет проверить работу программы, не дожидаясь сборки оборудования.
Что у нас получилось

Перед нами первая версия панели мониторинга.
Слева находится список дашбордов — отдельных экранов, которые можно настроить под разные задачи. В основной части отображаются показания датчиков, предупреждения, графики и журнал измерений.
Сейчас на экране три основных показателя:
- температура воздуха;
- относительная влажность воздуха;
- температура опорного датчика Pt100.
Рядом находятся две информационные карточки.
Первая оценивает ситуацию с возможным заморозком: находится ли температура в заданном диапазоне и как она изменяется.
Вторая проверяет, попадают ли температура и влажность в диапазоны, которые пользователь указал для проведения обработки растений.
Сразу уточним: это информационные подсказки, а не готовые агрономические рекомендации. Система пока не умеет прогнозировать заморозки или самостоятельно определять подходящее время для опрыскивания.
Ниже расположены график и журнал измерений. На графике удобно наблюдать за изменением показаний, а в журнале сохраняются исходные значения и сопутствующая информация.
Все числа на наших скриншотах — тестовые. Мы специально подобрали их, чтобы проверить разные варианты поведения программы.
Интерфейс можно настроить под себя
Мы не хотели делать один экран, одинаковый для всех пользователей.
В одном хозяйстве важнее следить за температурой ночью. В другом — наблюдать за влажностью в теплице. А во время испытаний датчиков нам понадобится совсем другой набор показателей.
Поэтому интерфейс построен из отдельных карточек.
Сейчас доступны шесть типов:
| Карточка | Для чего нужна |
|---|---|
| Показание | Отображает выбранный параметр конкретного датчика |
| Заморозок | Показывает оценку температуры и её изменения |
| Окно обработки | Сравнивает температуру и влажность с заданными диапазонами |
| График | Отображает изменение показаний во времени |
| Журнал | Показывает записи измерений и заметки |
| Заметка | Позволяет оставить текстовое напоминание прямо на экране |
Нажав кнопку «Править», можно добавить нужные карточки, убрать лишние, изменить их размеры и расположение.
Если эксперимент с оформлением оказался неудачным, кнопка «Собрать заново» восстановит первоначальный вариант панели «Узел T/RH».
При этом удаление карточки с экрана не удаляет сами измерения из журнала.
Несколько экранов для разных задач
Ещё одна возможность — создавать собственные дашборды.
Например, можно сделать три отдельных экрана.
«Ночь» — температура воздуха, температура у земли, предупреждение о возможном заморозке и график за последние часы.
«Теплица» — температура, влажность и графики изменения микроклимата.
«Испытательный стенд» — показания нескольких датчиков рядом с опорным Pt100, чтобы сравнивать их поведение.
Это лишь примеры настройки. Сейчас программа позволяет работать с теми параметрами, которые уже поддерживаются, а показания мы вводим вручную.
Каждый дашборд сохраняет свою раскладку. Можно переключаться между экранами, не настраивая всё заново.
А что происходит с точностью показаний?

В прошлых статьях мы подробно обсуждали, почему большое количество цифр после запятой ещё не означает высокую точность измерения.
Теперь этот принцип реализован в интерфейсе.
Например, в журнале влажность записана как 61,28 %, а на информационной карточке отображается 61 %.
Исходное значение не теряется. Оно сохраняется в журнале, но для быстрого просмотра используется округлённое число.
Аналогично температура на карточках отображается с точностью до одной десятой градуса.
При этом правила обработки показаний не зависят от того, как пользователь расположил или оформил карточки.
Графики и журнал

На графике можно выбрать, какие показания отображать вместе, и установить временной интервал: последний час, четыре часа, двенадцать часов, сутки или весь доступный период.
Например, во время испытаний мы сможем вывести рядом температуру от нескольких датчиков и посмотреть, насколько согласованно они реагируют на изменения условий.
Сейчас график отображается в виде линии, соединяющей отдельные измерения. Дополнительные варианты отображения пока не реализованы.
Журнал хранит более подробную информацию: время измерения, название датчика, параметр, исходное значение и, если нужно, заметку.
В заметке можно указать обстоятельства измерения: например, что датчик находился на солнце, рядом был сквозняк или открывалась крышка испытательной ёмкости.
Позже такие записи помогут разобраться, почему показания изменились.
Как попробовать систему самостоятельно
Для запуска не нужны ни датчики, ни микроконтроллеры, ни специальное оборудование.
Достаточно компьютера с установленным Python 3.
Исходный код находится в нашем репозитории Fermozavr DIY на GitHub.
После получения файлов проекта откройте терминал в корневой папке репозитория и выполните:
python3 station/server.py
На некоторых компьютерах с Windows вместо python3 используется команда python.
После запуска откройте в браузере:
http://127.0.0.1:8321
Программа работает локально на вашем компьютере. Для неё не нужен облачный сервис, регистрация или отдельная база данных на сервере.
Дополнительные Python-библиотеки устанавливать тоже не требуется.
Проверяем работу на тестовых измерениях
В нижней части страницы есть форма «Строка в журнал».
Через неё можно добавить собственное измерение, указав время, датчик, измеряемую величину и значение.
Попробуем небольшой эксперимент.
Сначала добавим измерение температуры воздуха +2,0 °C, указав время «40 минут назад».
Затем добавим второе измерение того же датчика: +1,4 °C с текущим временем.
Теперь на карточке заморозка должна появиться информация о том, что температура находится в заданном диапазоне и снижается.
Программа рассчитает изменение: −0,6 °C за 40 минут.
Можно попробовать другие значения, посмотреть, как меняются сообщения, добавить второй датчик или создать собственный дашборд.
Это хороший способ проверить, насколько понятны интерфейс и предупреждения, ещё до подключения настоящего оборудования.
Важно: все введённые значения сохраняются в локальной базе. Если вы закроете браузер и позже снова запустите программу на том же компьютере, записи и настройки останутся на месте.
Что пока не реализовано
Хотя интерфейс уже работает, до полноценной системы мониторинга ещё далеко.
Сейчас мы проверяем программную часть. Она позволяет вводить и хранить измерения, отображать их и применять разработанные правила.
Но некоторые важные возможности появятся позже.
Автоматическое получение измерений. Пока данные вводятся вручную. После сборки испытательного стенда программа должна начать получать их от подключённого оборудования.
Карта участка. В будущем хотим видеть расположение измерительных узлов и их актуальные показания непосредственно на карте поля или теплицы.
Дополнительные показатели. В планах — расширение набора измерений и расчётных параметров, включая VPD, после проверки пригодности используемых датчиков.
Работа в полевых условиях. Понадобятся автономное питание, беспроводная передача данных и контроль состояния измерительных узлов.
Всё это отдельные этапы проекта. Сейчас наша задача — убедиться, что уже созданная программная основа удобна и работает правильно.
Нам нужна ваша помощь
Мы можем долго обсуждать расположение карточек и внешний вид графиков. Но гораздо полезнее узнать, как такой интерфейс воспринимают люди, которым предстоит пользоваться им в хозяйстве.
Поэтому предлагаем попробовать первую версию и поделиться впечатлениями.
Нас особенно интересует:
- Какие показатели вы хотели бы видеть на главном экране? Достаточно температуры и влажности или нужно что-то ещё?
- Удобно ли разделять информацию на несколько дашбордов? Или лучше разместить всё на одной странице?
- Понятны ли предупреждения? Например, сообщение «В полосе и падает» при снижении температуры с +2,0 до +1,4 °C.
- Чего не хватает в интерфейсе? Возможно, какой-то карточки, способа отображения данных или более удобной настройки графиков.
Оставить предложения можно через страницу участия в Fermozavr DIY или написать нам на info@fermozavr.ru.
За ходом проекта можно следить в нашем Telegram-канале «Фермозавр».
Что дальше?
Следующий важный этап — работа с настоящим оборудованием.
Нам предстоит собрать испытательный стенд, подключить датчики, проверить их показания и начать получать реальные измерения в созданном интерфейсе.
Тогда появится возможность сравнить не только характеристики датчиков из документации, но и их поведение в одинаковых условиях.
А пока программа уже доступна для экспериментов.
Попробуйте собрать свой экран мониторинга. Возможно, именно ваши замечания помогут сделать следующую версию удобнее.
Fermozavr DIY — открытый проект. Исходный код и условия использования опубликованы в репозитории. Программное обеспечение предназначено для самостоятельного изучения и экспериментов; коммерческое использование регулируется лицензией проекта.





