ГлавнаяАкадемияCOURSE-16: Основы Интернета Вещей и практическое применение → Аппаратное обеспечение платформы HI: от датчика до исполнительного механизма

Аппаратное обеспечение платформы HI: от датчика до исполнительного механизма

Урок 2 · COURSE-16: Основы Интернета Вещей и практическое применение · theory

COURSE-16-M02-L03 — Аппаратное обеспечение платформы HI: от датчика до исполнительного механизма

Введение в аппаратную архитектуру HI

В основе любой системы автоматизации на платформе HI лежит контроллер — специализированный промышленный компьютер, который служит мостом между физическим миром и цифровой логикой. В отличие от DIY-решений (таких как Arduino или Raspberry Pi), контроллер HI изначально спроектирован для надежной работы в режиме 24/7, интеграции с профессиональным оборудованием и простого масштабирования.

Этот урок посвящен ключевым аппаратным компонентам экосистемы HI. Мы разберем, как физические входы и выходы контроллера, его процессорные модули и коммуникационные интерфейсы работают вместе для сбора данных, принятия решений и управления объектом. Понимание этих основ является обязательным для любого инженера, планирующего внедрение систем автоматизации.

Компоненты сбора данных: Датчики и универсальные входы

Первоочередная задача любой системы автоматизации — сбор достоверных данных об окружающей среде. За это отвечают датчики, подключенные к входам контроллера.

Контроллер HI оснащен 22 универсальными входами (UI), которые являются его "органами чувств". Их универсальность означает, что каждый вход может быть программно сконфигурирован для работы с различными типами сигналов.

Типы поддерживаемых сигналов и датчиков: * Примеры устройств: Кнопки, настенные выключатели, герконы (датчики открытия двери/окна), датчики протечки, реле давления.

* Схема подключения: `WIRING-SENS-001`. Устройство подключается к двум клеммам: `GND` и любому `UI`.

* Пример устройства: DS18B20 (в гильзе, для измерения температуры теплоносителя; в корпусе, для измерения температуры воздуха).

* Схема подключения: `WIRING-SENS-004`. Подключаются к `GND`, `+V` (питание, если требуется) и `UI` (шина данных).

* Примеры устройств: Датчики давления в трубопроводе, датчики уровня CO₂, датчики освещенности.

* Схема подключения: `WIRING-SENS-011`. Требует подключения к `GND` и `UI`.

💡 Совет: При проектировании всегда закладывайте 2-3 резервных входа для будущего расширения системы. Это стандартная практика, которая сэкономит время и деньги в будущем.

Практический пример: Обработка сигнала с датчика протечки
  • Физическое подключение: Датчик протечки (сухой контакт) подключается к клеммам `GND` и `UI-05` контроллера.
  • Логика в Node-RED:
  • * Используется узел `rpi gpio in` (или аналогичный для работы с GPIO), настроенный на пин, соответствующий `UI-05`.

    * Узел отслеживает изменение состояния (от `1` к `0`).

    * При срабатывании датчика формируется сообщение по стандартному контракту.

    Контракт сообщения для события протечки:
    {
    

    "value": true,

    "source": "leak-sensor-bathroom-01",

    "ts": 1678886400000,

    "meta": {

    "severity": "critical",

    "location": "Санузел, 1 этаж"

    }

    }

    Центральный процессорный модуль: Архитектура контроллера HI

    "Мозг" системы — это процессорный модуль контроллера. Его архитектура специально разработана для решения задач автоматизации с разными требованиями к надежности.

    * ОС: Linux (Debian). Обеспечивает многозадачность, сетевые функции и гибкость.

    * Среда исполнения: Node-RED. Здесь реализуется основная логика автоматизации: сценарии, интеграции, обработка данных. Это позволяет быстро создавать и отлаживать сложные потоки данных.

    * Задачи: Обработка данных с датчиков, связь с облачными сервисами по MQTT, работа с базами данных (MySQL), интеграция по TCP/IP.

    * Назначение: Выполнение критически важной, детерминированной логики (функции ПЛК). Этот модуль работает независимо от основной ОС Linux.

    * Задачи: Управление системами безопасности (пожарная сигнализация, защита от протечек), логика "safe-state" (перевод системы в безопасное состояние при сбое основного процессора), высокочастотное управление приводами.

    * Назначение: Надежное хранение ключевых сценариев и конфигураций.

    * Преимущество: В отличие от SD-карты, EEPROM не подвержена износу от частых циклов перезаписи и гарантирует, что после сбоя питания или перезагрузки контроллер загрузит базовую рабочую конфигурацию.

    ⚠️ Предупреждение: Логику, отвечающую за безопасность (например, перекрытие воды при протечке), всегда следует дублировать или реализовывать на дополнительном ARM32-микроконтроллере. Это требование стандарта надежности HI.

    Компоненты управления: Реле и исполнительные механизмы

    Если датчики — это "органы чувств", то исполнительные механизмы — это "руки" системы. Контроллер HI оснащен 22 релейными выходами, способными коммутировать нагрузку до 16А при 250В AC.

    Типовые управляемые нагрузки: Практический пример: Управление освещением по команде MQTT
  • Физическое подключение: Фазный провод `L`, идущий к светильнику, разрывается и подключается к клеммам `C` (общий) и `NO` (нормально открытый) одного из реле контроллера (например, `RL-10`). Схема: `WIRING-LIGHT-001`.
  • Логика в Node-RED:
  • * Узел `mqtt in` подписывается на топик `hi/office/light-main/set`.

    * Узел `switch` проверяет payload сообщения (`"ON"` или `"OFF"`).

    * В зависимости от команды, узел `rpi gpio out` (или аналогичный) переключает состояние реле `RL-10`.

    * После выполнения узел `mqtt out` публикует актуальное состояние в топик `hi/office/light-main/state`.

    ASCII-схема потока (`FLOW-CTRL-LIGHT-001`):
    [mqtt in: hi/office/light-main/set] -> [switch: "ON"/"OFF"] --+--("ON")--> [function: set ON] -> [gpio out: RL-10] -> [mqtt out: .../state]
    

    |

    +--("OFF")--> [function: set OFF] -> [gpio out: RL-10] -> [mqtt out: .../state]

    Коммуникационные интерфейсы и протоколы

    Контроллер HI — это интеграционный хаб, поэтому он оснащен широким набором проводных и беспроводных интерфейсов.

    Встроенные интерфейсы: * Протокол: Modbus RTU.

    * Применение: Подключение счетчиков электроэнергии, промышленных датчиков, модулей реле, систем вентиляции.

    * 🔗 Справочник: `SKILL-MODBUS-PROTOCOLS`.

    Опциональные модули расширения: Инфографика

    Организация питания системы

    Надежность системы автоматизации напрямую зависит от качества ее питания.

    🔗 Стандарт подключения: `WIRING-POWER-001` описывает правила организации питания, заземления и защиты цепей.

    ---

    Практические лаборатории

    COURSE-16-M02-LAB05 — Чтение данных с датчика «сухого контакта» и отправка в MQTT

    Цель: Научиться подключать простейший датчик типа "сухой контакт" (кнопку) к универсальному входу контроллера, обрабатывать его сигнал в Node-RED и публиковать событие в MQTT в стандартизированном формате. Оборудование:
  • Контроллер HI.
  • Кнопка без фиксации.
  • Два отрезка провода.
  • Порядок выполнения:
  • Подключение: Согласно схеме `WIRING-SENS-001`, подключите один контакт кнопки к клемме `GND` контроллера, а второй — к клемме `UI-10`.
  • Создание потока в Node-RED:
  • * Создайте новый поток с ID `FLOW-INPUT-DRYCONTACT-001`.

    * Добавьте узел `rpi gpio in`, настройте его на отслеживание `UI-10`. Установите `debounce` (защита от дребезга) на `50 мс`.

    * Соедините его с узлом `function`.

    * В узле `function` напишите код для формирования сообщения по контракту. При нажатии (сигнал `0`) `msg.payload.value` должно стать `true`.

    * Соедините узел `function` с узлом `mqtt out`.

    * Настройте `mqtt out` на отправку сообщения в топик `hi/practice/button/state`.

  • Тестирование: Откройте MQTT-клиент (например, MQTT Explorer) и подпишитесь на топик. Нажмите кнопку. В клиенте должно появиться JSON-сообщение.
  • Код для узла `function`:
    // Входящее сообщение от gpio in: msg.payload = 0 или 1
    

    // Нам нужно среагировать только на нажатие (переход в 0)

    if (msg.payload == 0) {

    msg.payload = {

    "value": true,

    "source": "practice-button-01",

    "ts": Date.now(),

    "meta": {

    "input": "UI-10"

    }

    };

    node.status({fill:"green", shape:"dot", text:"Pressed at " + new Date().toLocaleTimeString()});

    return msg;

    }

    // Игнорируем отпускание кнопки

    return null;

    Рубрика оценивания:

    COURSE-16-M02-LAB06 — Управление реле по команде из MQTT

    Цель: Научиться принимать команды из MQTT и управлять одним из релейных выходов контроллера для включения/выключения нагрузки (светодиода). Оборудование:
  • Контроллер HI.
  • Светодиод (LED).
  • Резистор ~220 Ом.
  • Два отрезка провода.
  • Порядок выполнения:
  • Подключение: Подключите анод (длинная ножка) светодиода к клемме `NO` реле `RL-20`. Катод (короткая ножка) светодиода через резистор подключите к `GND`. Клемму `C` реле `RL-20` подключите к источнику питания `+5V` или `+3.3V` на контроллере.
  • Создание потока в Node-RED:
  • * Создайте новый поток с ID `FLOW-OUTPUT-RELAY-001`.

    * Добавьте узел `mqtt in` и подпишите его на топик `hi/practice/led/set`.

    * Соедините его с узлом `switch`, который будет проверять `msg.payload` на строковые значения `"ON"` и `"OFF"`.

    * От каждого выхода узла `switch` проведите связь к узлу `rpi gpio out`, настроенному на управление `RL-20`. Для ветки `"ON"` значение должно быть `1`, для `"OFF"` — `0`.

  • Тестирование: С помощью MQTT-клиента отправьте в топик `hi/practice/led/set` сообщение `"ON"`. Светодиод должен загореться. Отправьте `"OFF"`. Светодиод должен погаснуть.
  • Рубрика оценивания:

    ---

    Тест для самопроверки

    COURSE-16-M02-QUIZ

  • Какова основная функция универсальных входов (UI) на контроллере HI?
  • a) Только для подключения датчиков температуры.

    b) Для подключения различных типов датчиков: "сухих контактов", аналоговых, 1-Wire.

    c) Только для питания внешних устройств.

    d) Для подключения к сети Ethernet.

  • Для какой задачи предназначен дополнительный ARM32-микроконтроллер в архитектуре HI?
  • a) Для ускорения работы веб-интерфейса Node-RED.

    b) Для хранения логов и архивов данных.

    c) Для выполнения критически важной логики (ПЛК) и обеспечения безопасного состояния.

    d) Для работы с беспроводными протоколами Zigbee и LoRaWAN.

  • Инженер подключает 5 датчиков температуры DS18B20. Какой тип входа и топологию он должен использовать?
  • a) 5 аналоговых входов, топология "звезда".

    b) 1 универсальный вход в режиме 1-Wire, топология "шина".

    c) 5 дискретных входов "сухой контакт".

    d) Шину RS-485.

  • Какую нагрузку можно напрямую подключить к релейному выходу контроллера HI?
  • a) Диммируемую LED-лампу для управления яркостью.

    b) Электрический теплый пол мощностью 4 кВт (18А).

    c) Шаровой кран с питанием 220В AC и потреблением 0.1А.

    d) Датчик движения с питанием 12В DC.

  • Какой протокол является промышленным стандартом для подключения счетчиков электроэнергии и модулей ввода-вывода по проводной шине?
  • a) MQTT

    b) TCP/IP

    c) Modbus RTU (по RS-485)

    d) DALI

  • Что описывает "контракт сообщения" в методологии HI?
  • a) Физическую схему подключения.

    b) Стандартизированный формат данных (JSON) в `msg.payload` для обмена между узлами.

    c) Лицензионное соглашение на использование Node-RED.

    d) Список разрешенных MQTT-топиков.

  • При подключении датчика протечки (сухой контакт) инженер обнаружил, что система не реагирует на срабатывание. Что является наиболее вероятной ПЕРВОЙ причиной для проверки?
  • a) Неисправность процессора контроллера.

    b) Неправильная настройка MQTT-брокера.

    c) Ошибка в физическом подключении (обрыв провода, неверные клеммы).

    d) Недостаточная мощность блока питания.

  • Зачем в потоке Node-RED для управления реле нужна обратная связь (публикация в `/state` топик)?
  • a) Это требование протокола MQTT.

    b) Для подтверждения, что команда была выполнена, и для синхронизации интерфейсов управления.

    c) Для замедления работы системы.

    d) Для записи логов в EEPROM.

  • Какой компонент обязателен для обеспечения работы системы управления отоплением при кратковременном отключении электричества?
  • a) GSM-модуль.

    b) Источник бесперебойного питания (ИБП).

    c) Дополнительный модуль реле.

    d) Датчик CO₂.

  • Что означает идентификатор `WIRING-SENS-004` в документации Академии HI?
  • a) Номер версии прошивки контроллера.

    b) Уникальный ID сценария автоматизации.

    c) Стандартизированный номер схемы подключения для определенного типа датчика.

    d) Код ошибки при сбое оборудования.

    (Ответы: 1-b, 2-c, 3-b, 4-c, 5-c, 6-b, 7-c, 8-b, 9-b, 10-c)

    ---

    📋 Мини-справочник по диагностике: «Если что-то не работает»

    Проблема: Датчик не передает данные в Node-RED.

  • Физический уровень:
  • * [ ] Проверить надежность крепления проводов в клеммах контроллера и датчика.

    * [ ] Проверить соответствие подключения схеме (`WIRING-XXX`). Не перепутаны ли `GND`, `+V`, `Data`?

    * [ ] Проверить наличие питания на датчике (если требуется внешнее питание).

  • Логический уровень (Node-RED):
  • * [ ] Проверить, что узел ввода (`rpi gpio in`, `modbus-read`) настроен на правильный пин/адрес.

    * [ ] Подключить узел `debug` сразу после узла ввода. Поступают ли какие-либо данные?

    * [ ] Проверить статус узла. Не горит ли он красным, указывая на ошибку конфигурации?

    Проблема: Реле не срабатывает по команде.

  • Физический уровень:
  • * [ ] Слышен ли щелчок реле при отправке команды?

    * Да: Проблема в силовой цепи. Проверить подключение нагрузки, наличие напряжения на клемме `C` (общий).

    * Нет: Проблема в цепи управления. Переходить к следующему пункту.

  • Логический уровень (Node-RED):
  • * [ ] Подключить узел `debug` к выходу узла, отправляющего команду на GPIO (`rpi gpio out`). Приходит ли на него `1` или `0`?

    * [ ] Проверить, что узел `rpi gpio out` настроен на правильный пин, соответствующий нужному реле.

    * [ ] Проверить логику потока: доходит ли сообщение от `mqtt in` до узла управления реле? Используйте `debug` на каждом шаге.

    Проблема: Контроллер не виден в сети / не отвечает веб-интерфейс Node-RED.

  • Физический уровень:
  • * [ ] Проверить индикаторы на порту Ethernet контроллера и на коммутаторе. Есть ли линк?

    * [ ] Проверить, что Ethernet-кабель надежно подключен с обеих сторон.

    * [ ] Проверить индикатор питания на контроллере.

  • Сетевой уровень:
  • * [ ] Попробовать "пропинговать" IP-адрес контроллера с компьютера в той же сети (`ping 192.168.X.X`).

    * [ ] Убедиться, что компьютер и контроллер находятся в одной IP-подсети.

    * [ ] Перезагрузить контроллер по питанию, если предыдущие шаги не помогли.