Особенности подключения PIR-датчиков: питание, время срабатывания
Введение в PIR-датчики: Активные устройства в системах автоматизации
В предыдущих уроках мы подробно рассмотрели работу с пассивными дискретными датчиками, такими как герконы и кнопки. Их ключевая особенность — они не требуют собственного источника питания для функционирования и представляют собой простой механический переключатель. Сегодня мы переходим к изучению более сложного, но и более распространенного в системах автоматизации класса устройств — PIR-датчиков (от англ. Passive Infrared, пассивный инфракрасный).
Несмотря на слово "пассивный" в названии, которое относится к принципу детекции (датчик не излучает, а улавливает инфракрасное излучение), с точки зрения электротехники PIR-датчик является активным устройством.
> 📋 Ключевые понятия:
> * Пассивное устройство: Элемент, не требующий внешнего питания для выполнения своей основной функции (например, кнопка, геркон, резистор). Он лишь изменяет параметры электрической цепи.
> * Активное устройство: Электронный компонент или устройство, которому для работы необходим внешний источник питания. PIR-датчик содержит внутреннюю электронную схему (усилители, компараторы, таймеры), которая и потребляет энергию.
Это фундаментальное отличие от простых "сухих контактов". Если геркон — это просто два контакта, замыкающихся под действием магнита, то PIR-датчик — это миниатюрный компьютер, анализирующий тепловую обстановку в помещении. При обнаружении движущегося теплового объекта (человека, крупного животного), его внутренняя логика формирует на выходе управляющий сигнал.
Ключевые характеристики PIR-датчиков
При выборе и подключении PIR-датчика инженер должен обращать внимание на три основные группы параметров, указанные в его техническом паспорте (data sheet):
| Параметр | Описание | Типовые значения | Важность для инженера |
| :--- | :--- | :--- | :--- |
| Напряжение питания (V) | Рабочее напряжение, необходимое для питания внутренней электроники датчика. | 9-16V DC, 12V DC, 24V DC | Критически важно. Подача неверного напряжения приведет к немедленному выходу датчика из строя. |
| Потребляемый ток (mA) | Сила тока, которую датчик потребляет от источника питания в режиме ожидания и в режиме срабатывания. | 10-50 мА | Важно для расчета общей мощности, необходимой от блока питания (БП), особенно при подключении множества датчиков. |
| Тип выхода (Output) | Способ, которым датчик сообщает о срабатывании. Чаще всего это релейный выход (NO/NC) или транзисторный (Open Collector). | Реле `NC` (Normal Closed), Реле `NO` (Normal Open) | Определяет схему подключения к дискретному входу контроллера и логику обработки сигнала в Node-RED. |
Временные параметры: Управление логикой срабатывания
Поведение PIR-датчика во времени — это еще одна ключевая особенность. В отличие от кнопки, которая генерирует короткий импульс, PIR-датчик выдает длительный сигнал на все время своего срабатывания.
Понимание этих временных характеристик является ключом к созданию корректной логики автоматизации. Если вы не учтете `Trigger Time`, свет в помещении может выключиться, даже если человек продолжает в нем находиться, но замер на несколько секунд.
---
Схема подключения: Питание и сигнальная линия
Правильное физическое подключение — залог стабильной работы любого активного датчика. Ошибки на этом этапе могут быть фатальными для оборудования.
> ⚠️ Внимание: Всегда проверяйте полярность и напряжение питания датчика по его паспорту перед подключением. Используйте мультиметр для проверки напряжения на выходе блока питания, прежде чем подавать его на клеммы датчика. Неправильное подключение может необратимо повредить как сам датчик, так и дискретный вход контроллера HI.
Физическое подключение к контроллеру HI
Стандартный PIR-датчик имеет как минимум три провода (или клеммы): два для питания и один-два для сигнала. Рассмотрим типовую схему подключения к универсальному входу контроллера HI.
* V+ (Плюс питания): Красный провод. Подключается к источнику постоянного тока с напряжением, соответствующим паспорту датчика (например, `+12V` или `+24V`).
* GND (Минус питания / Общий): Черный провод. Подключается к клемме `GND` того же источника питания.
* Датчик формирует сигнал типа "сухой контакт" через встроенное реле. У реле есть общий контакт (`COM`) и два переключаемых — `NO` (нормально открытый) и `NC` (нормально закрытый).
* Схема для NO-датчика: Клемма `COM` датчика подключается к `GND` контроллера HI. Клемма `NO` датчика подключается к одному из универсальных входов `UI-01`...`UI-22`. При срабатывании датчика контакт `NO` замыкается на `COM`, тем самым "притягивая" вход `UI` к земле.
* Схема для NC-датчика: Клемма `COM` датчика подключается к `GND` контроллера HI. Клемма `NC` датчика подключается к `UI`. В этом случае вход `UI` постоянно притянут к земле, а при срабатывании датчика контакт `NC` размыкается.
Выбор источника питания
- Внутренний БП контроллера: Контроллер HI может иметь встроенный источник питания (например, `24V DC Out`) для питания небольшого количества датчиков. Перед использованием убедитесь, что его максимальная выходная мощность достаточна для всех подключаемых устройств. Сложите токи потребления всех датчиков и убедитесь, что сумма не превышает номинал БП контроллера.
- Внешний БП: Для большинства инсталляций, особенно с большим количеством датчиков, рекомендуется использовать отдельный, более мощный блок питания на 12V или 24V DC, устанавливаемый в том же щите автоматики. В этом случае крайне важно соединить клемму `GND` внешнего БП с клеммой `GND` контроллера HI, чтобы создать общую землю для корректной передачи сигналов.
Пример ASCII-схемы подключения (`WIRING-SENS-PIR-001`)
//========= WIRING-SENS-PIR-001: PIR Sensor to Hallway Light Control =========
// Легенда:
// CTRL:HI-Core - Контроллер HI
// PSU:12VDC - Внешний блок питания 12V DC
// PIR-HALL-01 - PIR-датчик в коридоре
[PSU:12VDC] (PIR-HALL-01) [CTRL:HI-Core]
+12V -------- (Красный) --------- +V
GND -------- (Черный) ---------- GND
| |
| |
+----(Общая земля)---------------+--------------------- GND (UI Bank)
|
COM ----(Синий)---+
| | (внутренняя перемычка в датчике)
NC -----(Белый)------> UI-07 (Дискретный вход 7)
// Пояснение:
// 1. Датчик питается от внешнего БП 12V.
// 2. Минус (GND) БП и GND контроллера объединены для выравнивания потенциалов.
// 3. Используется NC-выход датчика. В спокойном состоянии вход UI-07 замкнут на GND.
// При обнаружении движения реле размыкается.
---
Чтение состояния PIR-датчика в Node-RED
После корректного физического подключения переходим к программной части — настройке чтения состояния в среде Node-RED.
> 🔗 Связанный материал: Принцип работы с NO/NC контактами подробно разобран в уроке `COURSE-04-M02-L02` "Понятие 'сухого контакта'". Убедитесь, что вы понимаете разницу, прежде чем настраивать узел.
Для взаимодействия с дискретными входами контроллера используется специализированный узел, назовем его `HI-DI`.
Настройка потока в Node-RED
* Pin: Выберите из списка физический вход, к которому подключен датчик (в нашем примере — `UI-07`).
* Resistor: Для работы с "сухими контактами" необходимо активировать внутренний подтягивающий резистор. Установите значение в `pull-up`. Это обеспечит стабильный высокий уровень (`1` или `true`) на входе, когда контакт разомкнут.
* Debounce: Этот параметр позволяет отфильтровать дребезг контактов. Для PIR-датчиков это не так критично, как для кнопок, но рекомендуется установить небольшое значение, например, `50` мс.
* Name: Задайте осмысленное имя узла, например, "PIR Коридор".
Когда датчик обнаруживает движение, его NC-реле размыкается. Подтягивающий резистор контроллера устанавливает на входе `UI-07` высокий уровень. Узел `HI-DI` начнет отправлять `msg.payload: true`.
// Сообщение при обнаружении движения (для NC-схемы с pull-up)
{
"payload": true,
"topic": "UI-07"
}
Вы заметите, что сообщения `true` будут приходить непрерывно или с некоторой периодичностью, пока активно реле датчика (на протяжении всего его `Trigger Time`). Как только `Trigger Time` истечет, датчик вернется в спокойное состояние, и `HI-DI` отправит одно сообщение `msg.payload: false`.
Инвертирование логики для NO/NC
Важно правильно сопоставить тип контакта с логикой в Node-RED.
- Если используется NC-контакт (как в примере): В спокойном состоянии `payload` будет `false`, при движении — `true`. Это не очень интуитивно. Можно добавить узел `change` для инверсии: `true` -> `false` и `false` -> `true`, или использовать узел `function`: `msg.payload = !msg.payload; return msg;`.
- Если используется NO-контакт: В спокойном состоянии `payload` будет `false`, при движении — `true`. Это более естественная логика: `true` означает "движение есть".
Для простоты дальнейшей логики рекомендуется приводить сигнал к виду: `true` = движение, `false` = нет движения.
Простой поток для отладки:[HI-DI: PIR Коридор] -> [Debug: Raw Signal]
Изучив сообщения в окне `Debug`, вы своими глазами увидите, как долго датчик держит сигнал `true` и как быстро возвращается в состояние `false`. Это понимание критично для следующего шага.
---
Логика обработки: Управление светом с учетом времени срабатывания
Простейший сценарий "увидел движение — включил свет" реализуется связкой `HI-DI` -> `HI-DO` (узел управления реле). Но здесь нас ждет проблема: как только `Trigger Time` датчика истечет (допустим, 10 секунд), свет погаснет, даже если человек все еще находится в комнате, но временно не двигается. Это создает дискомфорт.
Решение состоит в том, чтобы добавить в нашу логику таймер "отложенного выключения", который перезапускается при каждом новом обнаружении движения. Для этого в Node-RED есть стандартный и очень мощный узел — `trigger`.
> 💡 Подсказка: Для коридоров или проходных зон используйте два PIR-датчика, расположенных в начале и в конце. Их выходы в Node-RED можно объединить через узел `Boolean Logic` (с функцией `OR`). Логика "ИЛИ" (если сработал датчик 1 ИЛИ датчик 2) позволит избежать выключения света, когда человек находится между датчиками.
Конфигурация узла `trigger` для управления светом
Узел `trigger` работает как таймер с возможностью сброса. Настроим его для нашей задачи:
Send: `{"payload": true}`. Это сообщение будет отправлено немедленно* при получении первого входящего сообщения (т.е. свет включится сразу).
* then wait for: `3 minutes` (или любое другое желаемое время, например `90 seconds`). Это время, в течение которого свет будет гарантированно гореть после последнего обнаруженного движения.
* then send: `{"payload": false}`. Это сообщение будет отправлено по истечении таймера (команда на выключение света).
* Установите галочку `Extend delay if new message arrives`. Это ключевая настройка! Она означает, что если в течение 3 минут придет новое сообщение от PIR-датчика (`true`), таймер сбросится и начнет отсчет 3 минут заново.
* Можно также установить галочку `Handle every message`, чтобы каждое сообщение от датчика сбрасывало таймер.
Создание полноценного потока `FLOW-AUTO-LIGHT-012`
Теперь соберем все вместе в законченный и надежный сценарий.
ASCII-схема потока: +----------------------+ +-----------------------+
(Движение есть: true) | | | Отправить {payload:true}|
----------------------> | trigger: 3 min | -> | немедленно | -> [HI-DO: Свет Коридор] -> (Реле вкл.)
(Движения нет 3 мин) | | | |
| Wait, then send | -> | Отправить {payload:false}| -> [HI-DO: Свет Коридор] -> (Реле выкл.)
+----------------------+ +-----------------------+
^
|
[HI-DI: PIR Коридор] ---+
Логика работы потока:
Этот паттерн (`датчик -> trigger -> исполнитель`) является одним из самых фундаментальных и часто используемых в домашней и коммерческой автоматизации.
// Пример JSON-экспорта для узла trigger (можно импортировать в Node-RED)
[
{
"id": "trigger_node_example",
"type": "trigger",
"z": "your_flow_id",
"name": "Задержка выключения света 3 мин",
"op1": "true",
"op2": "false",
"op1type": "bool",
"op2type": "bool",
"duration": "3",
"extend": true,
"overrideDelay": false,
"units": "min",
"reset": "",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 450,
"y": 200,
"wires": [
[
"hi_do_node_id"
]
]
}
]
---
Итоги и ключевые выводы
Сегодня мы сделали важный шаг от простых пассивных датчиков к активным, рассмотрев на примере PIR-датчика ключевые аспекты их подключения и использования. Эти знания являются основой для построения большинства сценариев "умного дома", связанных с присутствием человека.
Ключевые моменты урока:Освоив этот урок, вы сможете самостоятельно реализовать один из самых востребованных сценариев автоматизации — интеллектуальное управление освещением на основе присутствия.
Что дальше?
В следующем уроке мы углубимся в работу с аналоговыми входами. Мы рассмотрим, как подключать датчики, которые измеряют не просто "да/нет", а непрерывные физические величины — температуру, влажность, освещенность, и как преобразовывать их аналоговые сигналы (0-10V, 4-20mA) в цифровые данные для использования в ваших сценариях автоматизации.