Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Система умный дом на основе home assistant

1. Обзор системы

Проект представляет собой программно-аппаратный комплекс для мониторинга окружающей среды и управления бытовыми устройствами. Система обеспечивает автоматическое поддержание заданных параметров освещенности, влажности и качества воздуха (CO2).

2. Архитектура системы

2.1. Программная архитектура

Система строится по трехуровневой модели:

  1. Уровень управления (Core): Сервер Home Assistant (Raspberry Pi), выполняющий роль агрегатора данных, графического интерфейса и движка автоматизаций.
  2. Уровень связи (Transport): Протокол Native API ESPHome (Wi-Fi 802.11 b/g/n), обеспечивающий двустороннюю связь и автоматическое обнаружение устройств.
  3. Уровень исполнения (Edge): Микроконтроллер ESP32 с прошивкой ESPHome, осуществляющий низкоуровневый опрос сенсоров и управление нагрузкой.

2.2. Аппаратная схема (Hardware Topology)

Центральный узел:

  • Контроллер: Raspberry Pi 4 model B.
  • Среда исполнения: Home Assistant OS.

Исполнительный узел (ESP Node):

  • Контроллер: ESP8266.
  • Сенсоры:
    • BME280: Температура, влажность, атмосферное давление (I2C).
    • BH1750: Интенсивность освещения (I2C).
  • Исполнительные устройства:
    • Освещение/Увлажнитель: Блок реле с опторазвязкой (GPIO High/Low)

3. Конфигурация исполнительного узла (ESPHome YAML)

Данный конфиг инициализирует шину I2C для работы датчиков и определяет логику взаимодействия с аппаратной частью.

substitutions:
  node_name: smart-climate-node
  friendly_name: "Climate Controller"

esphome:
  name: ${node_name}

esp32:
  board: esp32dev

wifi:
  ssid: "YOUR_SSID"
  password: "YOUR_PASSWORD"

api:
  encryption:
    key: "YOUR_ENCRYPTION_KEY"

ota:
  platform: esphome

i2c:
  sda: 21
  scl: 22
  scan: true

sensor:
  - platform: bme280
    address: 0x76
    temperature:
      name: "Room Temperature"
      id: room_temp
    humidity:
      name: "Room Humidity"
      id: room_humidity
    update_interval: 60s

  - platform: bh1750
    name: "Illuminance"
    address: 0x23
    update_interval: 30s

  - platform: scd40
    co2:
      name: "CO2 Level"
      id: room_co2
    temperature:
      name: "SCD41 Temperature"
    humidity:
      name: "SCD41 Humidity"
    update_interval: 60s

switch:
  - platform: gpio
    pin: 12
    name: "Main Light"
    id: light_switch
  - platform: gpio
    pin: 14
    name: "Humidifier"
    id: humidifier_switch

ir_transmitter:
  pin: 13
  carrier_duty_percent: 50%

climate:
  - platform: climate_ir
    name: "Air Conditioner"
    sensor: room_temp

4. Порядок физического пуска и инициализация

После завершения монтажа компонентов запуск системы происходит по следующему регламенту:

  1. Подача питания: При включении блока питания в розетку (5V DC), напряжение поступает на Raspberry Pi и ESP32.
  2. Загрузка HA Core: Raspberry Pi инициализирует Home Assistant OS (около 1.5 - 2 минут). Включаются службы БД (Recorder) и движок автоматизаций.
  3. Инициализация Node: ESP32 подает питание на сенсоры. Датчик SCD41 требует около 5 секунд на самодиагностику перед первой выдачей данных.
  4. Связь: ESP32 подключается к Wi-Fi роутеру и устанавливает зашифрованное соединение с Home Assistant по API.
  5. Готовность: Как только в Dashboard Home Assistant показатели датчиков (люкс, CO2, градусы) перестают быть в статусе unavailable, система считается готовой к работе.

5. Операционное управление и автоматизация

5.1. Ручное управление

Управление стендом осуществляется через интерфейс Lovelace (Dashboard):

  • Карточки Button для включения света и увлажнителя.
  • Карточка Thermostat для задания целевой температуры кондиционера.

5.2. Скрипты автоматизации (Логика системы)

Для проверки работоспособности и демонстрации эффекта в систему внедрены следующие сценарии:

А. Автоматизация освещения (по датчику BH1750): При падении уровня освещенности ниже 100 lx и наличии кого-либо в комнате, активируется light_switch.

alias: "Auto Light On"
trigger:
  - platform: numeric_state
    entity_id: sensor.illuminance
    below: 100
action:
  - service: switch.turn_on
    target:
      entity_id: switch.main_light

Б. Контроль влажности (по датчику BME280): Если влажность падает ниже 40%, включается увлажнитель. При достижении 55% — выключается. Это позволяет наглядно увидеть работу реле при изменении условий.

В. Управление качеством воздуха (по датчику SCD41): При превышении уровня CO2 > 800 ppm, система отправляет уведомление или активирует приточную вентиляцию (если подключена).


6. Регламент развертывания программной части

Этап 1: Подготовка Raspberry Pi

  1. Запишите образ Home Assistant OS на SD-карту через BalenaEtcher.
  2. Запустите RPi и выполните первичную настройку пользователя по адресу http://homeassistant.local:8123.

Этап 2: Установка ESPHome

  1. В HA: Settings -> Add-ons -> Add-on Store -> ESPHome.
  2. Установите и запустите аддон.

Этап 3: Прошивка контроллера

  1. Откройте панель ESPHome. Нажмите + New Device.
  2. Скопируйте YAML-конфиг из Раздела 3 в открывшийся редактор.
  3. Подключите ESP32 к Raspberry Pi через USB.
  4. Нажмите Install -> Plug into this computer и выберите USB-порт.

Этап 4: Интеграция

  1. После прошивки зайдите в Settings -> Devices & Services.
  2. Нажмите Configure на обнаруженном устройстве "Climate Controller".
  3. Устройство и все его сущности готовы к использованию в автоматизациях.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors