🌿

Система экологического мониторинга

Интеллектуальная платформа для удаленного мониторинга качества воздуха с использованием IoT-датчиков и машинного обучения

🎯Цели проекта

  • Сбор данных о состоянии воздуха в режиме реального времени с физических станций
  • Визуализация экологической обстановки на интерактивной карте
  • Автоматическая классификация состояния воздуха и типов загрязнений
  • Применение ML-моделей для интеллектуального анализа данных

🏗️Архитектура системы

📡

Физический уровень

Raspberry Pi + датчики MH-Z19C, MQ-135, MQ-5, Sharp GP2Y1010AU0F, BME280, GPS NEO-6M

🗄️

Инфраструктура данных

Node-RED для сбора данных, InfluxDB для хранения временных рядов, Grafana для отладки

🌐

Веб-платформа

FastAPI backend, Next.js frontend, ML-сервис на Python для классификации

📊Датчики и измерения

📟

MH-Z19C

CO₂ (ppm)

Инфракрасный датчик углекислого газа с высокой точностью

📟

MQ-135

VOC / Вредные газы (raw ADC)

Датчик качества воздуха для обнаружения аммиака, бензола и других вредных газов

📟

MQ-5

Горючие газы (raw ADC)

Датчик для обнаружения утечек природного газа, пропана, бутана

📟

Sharp GP2Y1010AU0F

Пыль / PM (мг/м³)

Оптический датчик пыли и дыма с аналоговым выходом

📟

BME280

T / H / P (°C, %, гПа)

Комбинированный датчик температуры, влажности и атмосферного давления

📟

Ublox NEO-6M

GPS (координаты)

GPS-модуль для определения местоположения и точного времени

🤖Машинное обучение

Задачи классификации

  • Классификация состояния воздуха (clean/moderate/polluted/danger)
  • Определение типа загрязнения (пыль/дым/VOC/утечка газа)
  • Геокластеризация станций (KMeans)
  • Детекция аномалий (IsolationForest)

Используемые алгоритмы

  • • RandomForestClassifier — классификация с вероятностями
  • • KMeans — кластеризация по геолокации
  • • IsolationForest — обнаружение аномалий
  • • Правила экспертной системы — базовая логика

📈Экологический индекс

Интегральный показатель качества воздуха от 0 до 100, где меньшие значения означают лучшее качество.

0-25

Чистый

25-50

Умеренный

50-75

Загрязнённый

75-100

Опасный

// Формула расчёта:

eco_index = (0.4×CO₂_norm + 0.3×dust_norm + 0.2×MQ135_norm + 0.1×MQ5_norm) × 100

⚙️Технологический стек

🐍Python
FastAPI
Next.js
📘TypeScript
🎨TailwindCSS
🗺️Leaflet
📊Recharts
🤖scikit-learn
🐳Docker
📈InfluxDB
🔴Node-RED
🍓Raspberry Pi

Разработано в рамках дипломного проекта

«Разработка системы удаленного мониторинга экологической обстановки местности»

© 2025