Similar presentations:
Система умной теплицы (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 пользователей
Таймаут истек