Система умной теплицы
Распределение задач
Характеристика объекта автоматизации
Основные цели создания системы
Описание архитектуры системы
Диаграмма С4 Context-уровень
Диаграмма C4 Container-уровень
Диаграмма C4 Component-уровень
Архитектура клиентской части
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Основные запросы, необходимые для работы системы.
Таблица соответствия модулей WPF-клиента и API запросов
Схема базы данных
Нагрузочное тестирование
Скриншоты работы ПО
Скриншоты работы ПО
Скриншоты работы ПО
Скриншоты работы ПО
Скриншоты работы ПО
2.78M

Система умной теплицы (2)

1. Система умной теплицы

ВЫПОЛНИЛИ: БАЙБУЛАТОВ А. А., НАГАЕВ И. Т., ВОРОБЬЕВ И. С.,
ФАЙЗУЛЛИН А. Р.

2. Распределение задач

ФИО
Задача
Байбулатов А. А.
Реализация бизнес-логики на стороне клиента
(C#), организация сетевого взаимодействия
между клиентом и сервером
(сериализация/десериализация данных)
Воробьев И. С.
Разработка клиентского WPF-интерфейса,
первоначальная настройка серверного
окружения (WSL, Nginx)
Файзуллин А. Р.
Тестирование клиентского приложения,
написание технической документации,
оформление отчёта.
Нагаев И. Т.
Полная разработка backend-приложения (FastAPI,
SQLAlchemy), проектирование БД, проведение
нагрузочного тестирования (Locust)

3. Характеристика объекта автоматизации

Объектами автоматизации являются тепличные комплексы, оснащённые сенсорами и
исполнительными устройствами, сервер управления и рабочие места пользователей.
В состав объектов входят:
– теплица;
– сервер и база данных MariaDB;
– рабочие станции пользователей (десктопное приложение);
– исполнительные устройства (вентиляторы, нагреватели, насосы);
– пользователи (администратор, пользователь).

4. Основные цели создания системы

Система предназначена для автоматизации процессов управления микроклиматом теплиц,
снижения трудозатрат на контроль параметров окружающей среды, повышения
урожайности и устойчивости к неблагоприятным условиям.
Система должна обеспечивать выполнение следующих функций:
– прогнозирование климатических параметров теплиц;
– автоматическое управление исполнительными устройствами;
– обнаружение сорняков и паразитов;
– формирование отчетов и экспорт данных в формате XLSX;
– ручное и автоматическое управление оборудованием.
– обеспечение мониторинга параметров климата (температура, влажность, CO₂);

5. Описание архитектуры системы

Система умной теплицы имеет трёхуровневую архитектуру:
• Клиентский уровень: WPF-приложение (.NET)
• Серверный уровень: FastAPI-сервер (Python) с REST API
• Уровень данных: База данных MariaDB

6. Диаграмма С4 Context-уровень

7. Диаграмма C4 Container-уровень

Диаграмма
C4
Containerуровень

8. Диаграмма C4 Component-уровень

9. Архитектура клиентской части

Клиентская часть приложения реализована на C# с использованием технологии WPF. Для обеспечения
масштабируемости, тестируемости и удобства сопровождения применён паттерн MVVM (Model-View-ViewModel).
◦ Model — содержит бизнес-логику и взаимодействует с API сервера.
◦ ViewModel — выступает посредником между Model и View: преобразует данные в формат, удобный для
отображения, и обрабатывает пользовательские действия.
◦ View — представляет собой UI-компоненты (XAML), отвечающие за визуализацию данных.
Благодаря строгому разделению ответственности, каждый модуль (Model + ViewModel + View) является автономным.
Это позволяет команде разработчиков работать над разными частями приложения параллельно без риска конфликтов
или побочных эффектов.

10. Основные запросы, необходимые для работы системы.

Simulations – группа запросов, необходимых для симуляции датчиков и исполнительных
устройств
URL запроса
Тип запроса
Описание
/simulations/simulate-reading/current
GET
Запрос для получения текущих показаний датчиков
/simulations/start-periodic-reports
POST
/simulations/stop-periodic-reports
POST
/simulations/reporting-status
GET
Запрос для старта автоматического создания
отчетов(запуск автоматического режима работы)
Запрос для остановки автоматического создания
отчетов
Запрос для получения текущего статуса создания
отчетов
/simulations/power_execution_devices GET
Запрос для получения текущих мощностей
исполнительных устройств
/simulations/update_all_power_executi
on_devices/
PUT
Запрос для изменения текущих мощностей
исполнительных устройств

11. Основные запросы, необходимые для работы системы.

Greenhouses – группа запросов для операций создания, чтения, обновления и удаления
записей теплиц
URL запроса
Тип запроса Описание
/greenhouses/
POST
Создание новой теплицы
/greenhouses/
GET
Получение списка всех теплиц
/greenhouses/{greenhouse_id}
GET
Получение информации о конкретной теплице
/greenhouses/{greenhouse_id}
PUT
Обновление информации о теплице
/greenhouses/{greenhouse_id}
DELETE
Удаление теплицы

12. Основные запросы, необходимые для работы системы.

Execution Devices – группа запросов для операций создания, чтения, обновления и
удаления записей исполнительных устройств
URL запроса
Тип запроса Описание
/execution_devices/create
POST
Создание исполнительного устройства
/execution_devices/read/{id}
GET
Получение информации об устройстве
/execution_devices/read
GET
Получение списка всех исполнительных устройств
/execution_devices/update/{id}
PUT
Обновление исполнительного устройства
/execution_devices/delete/{id}
DELETE
Удаление исполнительного устройства
/execution_devices/read/by_greenhous
e/{greenhouse_id}
GET
Получение исполнительных устройств по теплице

13. Основные запросы, необходимые для работы системы.

Sensors – группа запросов для операций создания, чтения, обновления и удаления записей
датчиков
URL запроса
/sensors/
/sensors/
/sensors/{sensor_id}
/sensors/{sensor_id}
/sensors/{sensor_id}
Тип запроса Описание
POST
Создание датчика
GET
Получение списка всех датчиков
GET
Получение информации о датчике
PUT
Обновление датчика
DELETE
Удаление датчика
/sensors/greenhouse/{greenhouse_id}
GET
Получение датчиков по теплице

14. Основные запросы, необходимые для работы системы.

Reports – группа запросов для операций создания, чтения, обновления и удаления записей
отчетов
URL запроса
Тип запроса Описание
/reports/
GET
Получение списка всех отчетов
/reports/
POST
Создание отчета
/reports/
DELETE
Удаление отчета
/reports/{report_id}
GET
Получение конкретного отчета
/reports/{report_id}
PUT
Обновление отчета
/reports/{report_id}
DELETE
Удаление отчета
/reports/greenhouse/{greenhouse_id}/lat
est
GET
Получение последнего отчета по теплице
/reports/greenhouse/{greenhouse_id}
GET
Получение всех отчетов по теплице

15. Основные запросы, необходимые для работы системы.

Users – группа запросов для операций создания, чтения, обновления и удаления записей
пользователей
URL запроса
Тип запроса Описание
/users/
POST
Создание пользователя
/users/
GET
Получение списка всех пользователей
/users/auth
POST
Аутентификация пользователя
/users/{user_id}
GET
Получение информации о пользователе
/users/{user_id}
PUT
Обновление пользователя
/users/{user_id}
DELETE
Удаление пользователя

16. Основные запросы, необходимые для работы системы.

Detections – группа запросов для операций создания, чтения, обновления и удаления
записей пользователей
URL запроса
/detections/
/detections/
Тип запроса Описание
POST
Создание обнаружения
GET
Получение списка всех обнаружений
/detections/{detection_id}/photo
GET
/detections/{detection_id}/detectionphoto
GET
/detections/{detection_id}
DELETE
/detections/{detection_id}
PUT
Получение фотографии обнаружения
Получение фотографии с детекцией
Удаление обнаружения
Обновление обнаружения

17. Таблица соответствия модулей WPF-клиента и API запросов

Таблица соответствия модулей WPFклиента и API запросов
Название модуля
Запросы
Модуль мониторинга
/simulations/simulate-reading/current;
/simulations/power_execution_devices;
/greenhouses/[GET]
Модуль формирования отчетов
/simulations/start-periodic-reports;
/simulations/stop-periodic-reports;
/reports/[GET];
Модуль изменения таблиц
Группы CRUD запросов: greenhouses, execution_devices,
sensors
Модуль детекций сорняков
/detections/[GET];
/detections/{detection_id}/detection-photo;
Модуль ручного управления
/sensors/[GET];
/execution_devices/read;
/simulations/update_all_power_execution_devices/;
/simulations/reporting-status;

18. Схема базы данных

19. Нагрузочное тестирование

До 500 пользователей:
стабильная работа,
линейный рост времени
отклика
500-700 пользователей:
критическая точка,
экспоненциальный рост
задержек
по достижении 700
пользователей более 5%
пользователей перестали
получать ответы вовремя предположительно сервер
упал
По истечении 46секундного таймаута 100%
пользователей получили
ошибки, что доказывает
полный отказ сервера при
данной нагрузке.
До 500 пользователей
500 – 700 пользователей
700 пользователей
Таймаут истек

20. Скриншоты работы ПО

Модуль мониторинга

21. Скриншоты работы ПО

Модуль формирования отчетов

22. Скриншоты работы ПО

Модуль изменения таблиц

23. Скриншоты работы ПО

Модуль детекций сорняков

24. Скриншоты работы ПО

Модуль ручного управления
English     Русский Rules