Автоматизированная система удаленного управления теплицей
Условия
Юные фермеры решили автоматизировать свою теплицу, установив в нее автоматизированную систему контроля и управления климатом.
Автоматизированная система состоит из:
- Четыре равноудалённых друг от друга датчика температуры и влажности воздуха, что позволяет корректно определять среднюю температуру воздуха и влажности в теплице
- Шесть датчиков влажности почвы, каждый из которых установлен в свою собственную тепличную бороздку
- Автоматизированный привод удаленного открытия форточек теплицы для обеспечения проветривания
- Шесть систем автоматизированного полива грядки, каждая из которых установлена в собственную тепличную бороздку по аналогии с датчиками влажности почвы
- Едина система увлажнения воздуха в теплице.
Автоматизированная система представляет из себя комплекс специальных измерительных и управляющих приборов, взаимодействие с которыми осуществляется по средствам API:
Получение измерений с датчиков температуры и влажности осуществляется запросом GET на адрес https://dt.miet.ru/ppo_it/api/temp_hum/<number>, где <number> – порядковый номер устройства от 1 до 4.
Пример корректного ответа датчика температуры и влажности воздуха в формате JSON:
{
"id": device_id,
"temperature": temp_value,
"humidity": hum_value
}
Где device_id – номер устройства, temp_value – температура воздуха в момент запроса, hum_value – влажность воздуха в момент запроса
Получение измерений с датчиков влажности почвы осуществляется запросом GET на адрес https://dt.miet.ru/ppo_it/api/hum/<number>, где <number> – порядковый номер устройства от 1 до 6.
Пример корректного ответа датчика влажности почвы в формате JSON:
{
"id": device_id,
"humidity": hum_value
}
Где device_id – номер устройства, hum_value – влажность воздуха в момент запроса
Управление автоматизированным приводом открытия форточек осуществляется запросом PATCH на адрес https://dt.miet.ru/ppo_it/api/fork_drive/ со следующими параметрами:
{
"state": state_value
}
Где state_value принимает значение 0 – закрыть форточку, 1 – открыть форточку
Управление автоматизированным поливом грядки осуществляется запросом PATCH на адрес https://dt.miet.ru/ppo_it/api/watering со следующими параметрами:
{
"id": device_id
"state": state_value
}
Где device_id – номер устройства от 1 до 6, state_value принимает значение 0 – закрыть полив, 1 – открыть полив
Управление единой системой увлажнения осуществляется запросом PATCH на адрес https://dt.miet.ru/ppo_it/api/total_hum со следующими параметрами:
{
"state": state_value
}
Где state_value принимает значение 0 – закончить увлажнение, 1 – начать увлажнение
Техническое задание
Имеется программный интерфейс, с помощью которого можно взаимодействовать с аппаратной частью автоматизированной системы управления теплицей. Для взаимодействия необходимо выполнить GET и PATCH запросы к методам API, описанным выше. В заголовках запроса необходимо указать токен авторизации, выданный организаторами: {“X-Auth-Token”: “<token>”}
Необходимо разработать программный продукт, который позволит:
- Отображать динамику и последние данные с каждого датчика температуры и влажности, как в табличном виде, так и в виде графиков. Данные формировать в рамках текущей рабочей сессии. Период демонстрации определяется участником
- Отображать динамику и последние данные средней температуры и средней влажности в теплице, как в табличном виде, так и в виде графиков
- Открыть или закрыть форточки в теплице нажатием на специальные кнопки, а также просматривать текущий статус
- Отображать динамику и последние данные с каждого датчика влажности почвы, как в табличном виде, так и в виде графиков
- Открыть или закрыть полив конкретной бороздки в теплице нажатием на специальные кнопки, а также просматривать текущий статус
- Открыть или закрыть общее увлажнение теплицы нажатием на специальные кнопки, а также просматривать текущий статус
Предусмотреть также выполнение следующих условий:
- Если средняя температура в теплице больше, чем T градусов, кнопка открытия форточек активна, в противном случае нажатие невозможно
- Если средняя влажность в теплице меньше, чем H %, кнопка открытия общей системы увлажнения активна, в противном случае нажатие невозможно
- Если средняя влажность почвы в конкретной бороздке теплицы меньше, чем Hb %, кнопка открытия системы полива активна, в противном случае нажатие невозможно
Предусмотреть режим настройки системы и указания параметров: T, H, Hb.
Также предусмотреть переход в режим экстренного управления, при котором возможно нажатие всех описанных выше кнопок даже если условия не соблюдены.
Рекомендации к выполнению
- Программный продукт должен работать или на мобильных устройствах, или иметь веб-интерфейс.
- Полезной будет возможность внесения новых данных от датчиков вручную в интерфейсе пользователя.
- Необходимо предусмотреть сохранение данных, получаемых от датчиков в системе управления базами данных (СУБД). Выбор СУБД не регламентируется.
- Разработку рекомендуется вести с помощью системы контроля версий git.
- Рекомендуется использовать unit-тестирование при разработке продукта.
Требования к документации
- Титульный лист (с указанием названия кейса и перечислением членов команды);
- Анализ технических требований;
- Обоснование выбора языка программирования и используемых программных средств;
- Структурная и функциональная схемы программного продукта;
- Блок-схема работы основного алгоритма;
- Схема базы данных;
- Описание проведенных испытаний в соответствии с регламентом кейса (снимки экрана и/или запись экрана с работой);
- Программный код (ссылка на репозиторий).
Регламент испытаний
- Производится запуск программного продукта
- Отображение показателей всех датчиков в виде графиков и таблиц
- Отображение текущего состояния все устройств управления теплицей
- Настройка изменяемых параметров для работы системы
- Демонстрация работоспособности всех кнопок с учётом настроенных параметров
- Демонстрация режима экстренного управления
- Демонстрация unit-тестов