↩️ Назад

Категории

IoT Умный дом — полное описание системы на raspberry pi 5

23.11.2025 | Статья из категории: IOT умный дом

Архитектура моей IoT-системы умного дома raspberry pi 5


⚡️

Версия: 1.0
Платформа: Raspberry Pi + Zigbee2MQTT + MySQL + PHP
Доступ: Веб-интерфейс, адаптив под мобильные устройства


📊 Главный дашборд

Центральная страница мониторинга всей системы.

  • 🕔 Текущее время на сервере
  • ✅ Последнее выполненное правило автоматизации (название, действие, время, статус подтверждения)
  • ⏱️ Следующее запланированное срабатывание
  • 🖥️ Статус железа Raspberry Pi:
    • Температура CPU (цветовая индикация: зелёный <60°, жёлтый 60-70°, красный >70°)
    • Загрузка CPU
    • Оперативная память (использовано / всего)
    • Температура NVMe диска
    • Скорость вентилятора
    • Напряжение ядра
    • IP-адреса, uptime, время последнего обновления
  • 🔧 Статусы systemd сервисов:
    • iot-automation.service — движок автоматизаций
    • mqtt-to-mysql.service — парсер MQTT в БД
    • zigbee2mqtt.service — шлюз Zigbee устройств
    • mosquitto.service — MQTT брокер
  • 📊 Анализ логов (количество событий по ключевым словам за сегодня)
  • ⏰ Ближайшие автоматизации (до 6 штук)
  • 🌤️ Погода в Москве и Калуге (температура, ветер, влажность, давление)

📈 Графики датчиков

Визуализация показателей датчиков в реальном времени с историей.

  • 📋 Группировка датчиков по зонам (Дом, Дача, Общие)
  • 📊 Карточки датчиков с:
    • Иконкой, названием и комнатой
    • Текущим значением с цветовой индикацией (температура, влажность, батарея)
    • Временем последнего обновления
    • Датой первого появления в системе
    • Графиком изменения за последние 30 точек (Chart.js)
  • 🔄 Автообновление значений каждые 30 секунд и графиков каждую минуту
  • 📱 Адаптивная сетка (1 колонка на телефоне, до 5 на ПК)

Поддерживаемые типы датчиков: температура (°C), влажность (%), освещённость (лк), PM2.5, CO₂, напряжение (В), ток (А), мощность (Вт), энергия (кВт·ч), батарея (%), давление (гПа).


⚙️ Логика автоматизации

Создание и управление правилами — сердце умного дома.

  • 📝 CRUD операции с правилами (создание, чтение, редактирование, удаление)
  • 🎯 Типы активации:
    • По триггеру (при получении MQTT сообщения)
    • Ежедневно в заданное время
    • Еженедельно по выбранным дням
  • 📊 Типы условий:
    • Простое (операторы: >, <, =, !=, >=, <=)
    • Скриптовое (выражения с sensor.{topic}, data, &&, ||)
  • ⏱️ Длительность условия (условие должно выполняться N секунд)
  • 📨 Действия:
    • MQTT команда (топик + payload)
    • Email уведомление (с возможностью задержки)
  • ✅ Подтверждение выполнения (топик подтверждения, таймаут, повторы)
  • ⏰ Ограничения по времени суток и зависимости от других устройств
  • 🔄 Повторение правила (persistent)
  • 🔘 Включение/выключение правил

📜 Журнал автоматизаций

Просмотр истории срабатываний правил.

  • 📋 Список всех выполненных правил (последние 100 записей)
  • 🔍 Фильтрация по статусу:
    • Все записи
    • Ожидают подтверждения
    • Подтверждённые
    • Пропущенные
  • 📦 Отображение топика и payload действия
  • 💬 Причина пропуска (если применимо)
  • ✅ Статус подтверждения с указанием времени
  • 🎯 Ожидаемое и фактическое состояние устройства

🛠️ Метаданные датчиков

Управление информацией о датчиках.

  • 📝 Форма редактирования метаданных
  • 🏷️ Настройка имени, комнаты, группы, иконки, флага сохранения истории
  • 📋 Список всех датчиков с возможностью редактирования и удаления
  • 🗑️ Полное удаление датчика из всех таблиц (sensor_info, sensor_data, sensor_history)

📋 Логи сервисов

Просмотр системных логов в реальном времени.

  • 📡 Статус сервисов
  • 🎛️ Выбор сервиса и периода (от 5 минут до 24 часов)
  • 🔄 Обновление логов по кнопке или автоматически (каждые 5 секунд)
  • 🔍 Поиск по логам
  • 📜 Автопрокрутка новых записей
  • 🎨 Подсветка строк (ERROR — красным, WARNING — жёлтым)

⏰ Логи Cron задач

Просмотр логов автоматических cron-задач.

  • 📋 Список лог-файлов:
    • 🏺 Горшок (полив/влажность)
    • 🌲 Можжевельник
    • 🔥 Нагреватель аквариума
    • 🍕 Кормушка
    • 🚶 Движение (email уведомления)
    • 💡 Свет аквариума
    • 🧹 Фильтр аквариума
    • 📧 Email уведомления
    • 🔋 Батарейки Zigbee
  • 📄 Карточки с содержимым логов (последние строки)
  • 🔄 Кнопки «Обновить» и «Очистить» для каждого лога
  • 🔄 Автообновление каждые 5 минут

🏡 Пафосная панель «Коттедж»

Демонстрационная панель для презентации возможностей (можно расширять под реальные данные).

  • 📊 Баланс генерации и потребления
  • 🏠 Комнаты: температура, влажность, тёплые полы, датчики движения
  • 🧖‍♂️ Банный комплекс: парилка, купель, помывочная
  • 🔒 Охрана: датчики движения, камеры, утечка газа, дым
  • 🌬️ Вентиляция: рекуператор, грунтовый теплообменник, CO₂
  • 🧊 Теплоаккумулятор 2000 л: температура, зарядка, ТЭНы
  • 🔋 Zigbee батарейки: список устройств с уровнем заряда и предупреждениями
  • 🐟 Аквариумы: 2 аквариума с датчиками (температура, pH, фильтры, корм)

🔧 Технические детали

  • Язык: PHP 8+
  • База данных: MySQL / MariaDB
  • MQTT брокер: Mosquitto
  • Zigbee шлюз: Zigbee2MQTT
  • Графики: Chart.js
  • Стили: Единый CSS с тёмной/светлой темой
  • Адаптив: Медиа-запросы для мобильных устройств
  • PWA: Установка на телефон как приложение
  • Автоматизация: systemd сервисы + cron
  • Клонирование: Ежемесячное зеркалирование на резервный сервер через WireGuard

🎨 Тёмная и светлая темы

Переключатель в панели навигации. Сохраняется выбор в localStorage.


📅 Последнее обновление: июнь 2026
👨‍💻 Разработка: Самостоятельная, с помощью нейросетей (ChatGPT)

Файлы еще не выложил, если нужны пишите в комментах.

👍 Оцените статью
Всего голосов: 0



Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога | 📡 Подписаться на RSS

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA