IoT-системы в дипломе: как на примере умного цветочного горшка сделать ВКР по Data Engineering защищаемым
Поддомен: Data Engineering
Роль: Data/ML-инженер
Введение
Автор статьи оставил умный горшок LeafyPod без присмотра на два месяца — и растение выжило. Почему? Потому что система автономно собирала данные, анализировала влажность, освещённость, температуру и принимала решения. Это не просто «умный гаджет» — это полноценный кейс для диплома по Data Engineering. Такие системы — основа умных домов, агротеха и промышленного IoT. А для студента это шанс показать в работе реальные навыки: от сбора данных до построения пайплайнов и валидации моделей. И всё это — с минимальными затратами и максимальной защищаемостью.
Темы ВКР: как превратить LeafyPod в дипломный проект
| Тема | Актуальность | Цель | Задачи | Структура ВКР |
|---|---|---|---|---|
| Разработка системы мониторинга микроклимата для умного растения на базе IoT-сенсоров | Статья ZDNet показывает: автономность достигается за счёт непрерывного сбора и анализа данных. Это соответствует тренду на edge-обработку и low-code решения в IoT. | Создать прототип системы, способной автономно поддерживать жизнеспособность растения. |
|
Гл. 1: Анализ IoT-экосистем, протоколов (MQTT, CoAP), метрик жизнеспособности растений Гл. 2: Проектирование архитектуры, схема пайплайна, выбор БД (InfluxDB, TimescaleDB) Гл. 3: Тестирование системы, расчёт метрик эффективности (время без вмешательства, точность срабатываний) |
| Построение data pipeline для IoT-устройств с использованием Apache Kafka и Python | LeafyPod обрабатывает данные в реальном времени — это требует отказоустойчивых пайплайнов. Kafka — стандарт в промышленных системах. | Обеспечить надёжную доставку данных от сенсоров к системе анализа. |
|
Гл. 1: Анализ потоковых архитектур, сравнение Kafka и RabbitMQ, метрики задержки и отказоустойчивости Гл. 2: Проектирование топологии топиков, схема сериализации (Avro), реализация пайплайна Гл. 3: Тестирование под нагрузкой, расчёт метрик: latency, throughput, error rate |
| Оценка эффективности IoT-системы на основе метрик жизнеспособности растений | Автор статьи оценивает успех по факту выживания растения. В ВКР нужно формализовать критерии успеха — это и есть метрики качества. | Разработать методику оценки эффективности IoT-системы на основе количественных показателей. |
|
Гл. 1: Анализ метрик по ISO/IEC 25010 (надёжность, функциональность), методы сбора данных Гл. 2: Разработка модели оценки, выбор инструментов визуализации Гл. 3: Эксперимент, анализ результатов, выводы о применимости системы |
Основная часть: как встроить кейс в структуру ВКР
Глава 1: Теоретический анализ — от LeafyPod к архитектурным паттернам
Не просто пересказывайте статью — анализируйте. Задайте вопросы: как LeafyPod обрабатывает данные? Локально или в облаке? Какие протоколы использует? Это позволяет перейти к архитектурным паттернам: event-driven architecture, edge computing, publish-subscribe.
Используйте C4-модель для описания системы:
- C1 (Контекст): Пользователь → LeafyPod → Облако → Мобильное приложение
- C2 (Контейнеры): Микроконтроллер (ESP32), MQTT-брокер, база данных, веб-интерфейс
- C3 (Компоненты): Датчик влажности, насос, логика принятия решений
Сравните с вашим решением — это покажет глубину анализа. Упомяните ГОСТ 34.19-93 при описании диаграмм — это важно для нормоконтроля.
Глава 2: Проектирование и реализация — от схемы к коду
Реализуйте пайплайн, аналогичный LeafyPod. Например, на ESP32 с датчиками влажности и освещённости. Данные отправляются через MQTT в брокер (Mosquitto), затем — в InfluxDB, визуализируются в Grafana.
Пример конфигурации MQTT-клиента на Python:
import paho.mqtt.client as mqtt
import json
import time
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client = mqtt.Client()
client.on_connect = on_connect
client.connect("localhost", 1883, 60)
while True:
data = {
"sensor_id": "soil_moisture_01",
"value": read_moisture(), # функция чтения с датчика
"timestamp": time.time()
}
client.publish("iot/plants/moisture", json.dumps(data))
time.sleep(60) # отправка раз в минуту
Для хранения используйте TimescaleDB — она оптимизирована под временные ряды. В схеме БД — таблица sensor_readings с полями: time, sensor_id, value, unit.
Глава 3: Тестирование и оценка эффективности
Не ограничивайтесь фразой «система работает». Считайте метрики:
- Время автономной работы — аналог ситуации из статьи (2 месяца)
- Точность срабатывания насоса — сколько раз полив был избыточным/недостаточным
- Задержка передачи данных — критично для edge-устройств
- Надёжность — количество потерянных сообщений (по ISO/IEC 25010)
Сравните с ручным уходом: например, ведите два горшка — один автоматический, другой ручной. Это даст статистику для защиты.
Чему вы научитесь
- Проектировать отказоустойчивые data pipeline для IoT-устройств
- Работать с временными рядами: сбор, хранение, визуализация
- Оценивать эффективность системы по метрикам ISO/IEC 25010
- Оформлять архитектурные диаграммы по C4 и ГОСТ 34.19-93
- Считать и интерпретировать метрики: latency, uptime, accuracy
Типичные ошибки студентов
Ошибка 1: «Система работает» без метрик. В статье результат — выжившее растение. В ВКР — цифры. Если не измеряете, не доказываете.
Как избежать: Заложите метрики ещё в задачи. Используйте Grafana для отчётов.
Ошибка 2: Копирование архитектуры без анализа. Просто поставить MQTT — недостаточно.
Как избежать: Сравните MQTT и CoAP, обоснуйте выбор. Ссылайтесь на статью как на пример, а не эталон.
Ошибка 3: Игнорирование нормоконтроля. Диаграммы без подписей, схемы БД без масштаба.
Как избежать: Все схемы — по ГОСТ 34.19-93. Подписи, номера, пояснения в тексте.
FAQ
Какой стек выбрать для реализации, если нет железа?
Используйте симуляторы. Например, в Python напишите скрипт, генерирующий фейковые данные влажности. Имитируйте ESP32 через Docker. Главное — показать пайплайн. На защите можно сказать: «Реализация выполнена в симуляции, так как оборудование недоступно, но архитектура полностью соответствует промышленным стандартам».
Сколько кода должно быть в приложении?
Достаточно 300–500 строк ключевого кода: MQTT-клиент, обработка данных, логика полива. Остальное — конфиги, тесты. Главное — чтобы код был работоспособным и прокомментированным. Не гонитесь за объёмом — ценится качество и воспроизводимость.
Как считать эффективность, если нет реального растения?
Используйте модель. Например, задайте диапазон «нормальной влажности» (30–70%). Считайте, сколько % времени система поддерживала этот диапазон. Это и будет метрика эффективности. Можно сравнить с «идеальным» сценарием (ручной контроль по логам).
Как оформить схему архитектуры, чтобы прошла нормоконтроль?
Используйте C4 или UML. Все элементы — с подписями. Масштаб, легенда, номер рисунка (например, «Рисунок 2.1 — Контекстная диаграмма системы»). Сохраняйте в вектор (SVG или PDF), вставляйте в приложение. Обязательно ссылайтесь в тексте: «Как показано на рисунке 2.1…».
| Ключевая сущность | Применение в ВКР |
|---|---|
| ISO/IEC 25010 | Оценка качества системы: надёжность, функциональность, удобство использования |
| ГОСТ 34.19-93 | Оформление диаграмм, схем, приложений |
| MQTT | Протокол передачи данных в IoT-системах |
| InfluxDB / TimescaleDB | Хранение временных рядов с датчиков |
| OpenTelemetry | Сбор метрик и трейсов (если реализуете мониторинг) |
Чек-лист «Что проверить перед сдачей»
- Все ссылки на статью и стандарты (ГОСТ, ISO) указаны в списке литературы
- Задачи главы 1–3 соответствуют выводам
- Все схемы подписаны, пронумерованы, оформлены по ГОСТ
- Метрики эффективности рассчитаны и интерпретированы
- Код в приложении: читаемый, с комментариями, без ошибок
- Уникальность выше 70% (без переписывания статьи дословно)
- Приложения: код, логи, скриншоты Grafana, схемы
Бесплатная консультация по ВКР
Если вы сомневаетесь в теме, структуре или реализации — наши специалисты помогут. Более 120 часов консультаций уже проведено для студентов технических вузов. Мы не пишем работы, но подскажем, как сделать ВКР защищаемым и современным — по теме IoT, Data Engineering, ML и другим направлениям.
Источник: I let a smart planter maintain itself while I was away for 2 months - here's the result (опубликовано 2026-04-05)