- •Введение
- •1 Сценарий применения
- •2 Техническое задание
- •2.1 Назначение и цели системы
- •2.2 Стейкхолдеры
- •2.3 Функциональные требования
- •2.4 Требования к надёжности и доступности
- •2.5 Требования к безопасности
- •3 Архитектура iot‑системы
- •4 Схематическое представление iot‑системы
- •5 Выбор протоколов связи
- •5.1 Протоколы физического и канального уровней
- •5.2 Транспортный уровень
- •5.3 Прикладной уровень
- •6 Обеспечение безопасности системы
- •6.1 Аутентификация и авторизация устройств
- •6.2 Аутентификация и авторизация пользователей
- •6.3 Шифрование и защита данных
- •6.4 Политика управления доступом
- •6.5 Защита от типовых угроз IoT
- •Заключение
2.4 Требования к надёжности и доступности
Система должна обеспечивать следующие требования к надёжности и доступности:
• Время отклика пользовательского интерфейса на запрос состояния теплицы не более 3-5 секунд при нормальной нагрузке локальной сети.
• Потеря связи между облачной платформой и теплицей не должна приводить к полному отказу: базовые локальные алгоритмы управления должны продолжать работать автономно до восстановления соединения.
• Допустимое суммарное время простоя системы не более нескольких часов в месяц в период активной эксплуатации теплицы; при этом все простои должны логироваться.
• Данные телеметрии и журналы событий должны надёжно храниться не менее 1 года с возможностью резервного копирования и восстановления.
2.5 Требования к безопасности
Система должна обеспечивать следующие требования к безопасности:
• Аутентификация всех пользователей по логину и паролю, возможность двухфакторной аутентификации для администратора.
• Аутентификация устройств теплицы на уровне брокера/платформы по сертификатам или токенам.
• Шифрование трафика между теплицей и облачной платформой (TLS поверх MQTT/HTTPS).
• Разграничение прав доступа (минимально необходимые права) для разных ролей пользователей.
• Журналирование действий пользователей и административных операций.
3 Архитектура iot‑системы
В качестве основы используется четырёхуровневая архитектура IoT: уровень устройств, уровень шлюзов и сетей, сервисный уровень (платформа), уровень приложений.
В качестве центрального контроллера системы выбрана плата на базе микроконтроллера STM32F103RB, которая опрашивает датчики, управляет исполнительными механизмами и организует обмен данными с облачной платформой через Wi‑Fi‑модуль ESP8266.
К контроллеру подключены датчики BME280 (температура, влажность, атмосферное давление), MQ‑135 (концентрация CO₂) и OPT3001 (освещённость), объединённые по шине I²C, что позволяет сократить количество линий ввода‑вывода и упростить разводку аппаратной части.
Для локального отображения текущих показаний используется OLED‑дисплей диагональю 0,96 дюйма, на котором выводятся значения температуры, влажности, давления, уровня CO₂ и освещённости.
Беспроводное подключение к сети Интернет обеспечивается модулем ESP8266, через который микроконтроллер устанавливает соединение с MQTT‑брокером и передаёт в облако телеметрию и служебные сообщения.
Программная часть контроллера реализована на языке C++ с использованием фреймворка Mbed OS, включающего стек TCP/IP и поддержку работы с MQTT‑клиентом.
Прошивка реализует несколько ключевых функций: чтение данных с датчиков, локальный вывод на OLED‑дисплей, формирование и отправку MQTT‑сообщений, приём команд от брокера для ручного управления и изменения пороговых значений, а также автоматическое управление исполнительными устройствами по заданным правилам.
На стороне платформы используется MQTT‑брокер – Mosquitto, принимающий сообщения от устройства, и веб‑приложение, которое визуализирует данные, хранит историю измерений в базе данных и позволяет пользователю задавать пороговые значения и управлять исполнительными механизмами удалённо.
Развёртывание веб‑приложения и брокера выполняется на виртуальном сервере под управлением Ubuntu 22.04, доступ к которому осуществляется через браузер по HTTPS, что обеспечивает удалённый мониторинг теплицы из любой точки с доступом к Интернету.
Предлагается минимум три роли:
• Администратор – управление пользователями, ролями и правами, изменение глобальных параметров системы, сетевых настроек, интеграций, o просмотр всех данных и журналов, управление всеми устройствами.
• Владелец: просмотр состояния теплицы, графиков и отчётов, настройка сценариев полива и освещения в пределах предоставленных прав, получение уведомлений и подтверждение/квитирование аварий.
• Оператор: просмотр состояния оборудования и журналов ошибок, выполнение команд ручного управления (включение/выключение полива, вентиляции) в рамках возможностей.
