Рубрики
Проекты на ESP32

Как работает PIR датчик HC-SR501 и как его подключить к ESP32

Если вы подумываете о создании охранной сигнализации или об автоматизации освещения в своей комнате, то вам обязательно следует рассмотреть возможность использования для этих целей пассивного инфракрасного датчика HC-SR501 (также иногда называемого пироэлектрическим датчиком) или PIR датчика для вашего проекта. PIR датчик позволяет обнаружить, когда человек или животное входит или выходит из зоны действия вашего датчика. Данный датчик используется во многих современных готовых системах безопасности. В данной статье мы рассмотрим принципы работы популярного PIR датчика HC-SR501 и особенности его подключения к модулю ESP32.

Также на нашем сайте вы можете посмотреть статьи про подключение данного PIR датчика к другим микроконтроллерам/платам:

В качестве альтернативы данному датчику можно рассмотреть доплеровский датчика движения RCWL-0516 — в этой же статье вы можете прочитать про достоинства и недостатки этих двух типов датчиков.

Необходимые компоненты

  1. Модуль PIR датчика (купить на AliExpress).
  2. Модуль ESP32 (купить на AliExpress).

Как работает PIR-датчик?

Каждый объект с температурой выше абсолютного нуля (0 Кельвина / -273,5 °C) излучает тепловую энергию в виде инфракрасного излучения. Чем горячее объект, тем больше он излучает. Это излучение невидимо для человеческого глаза, но PIR-датчик специально разработан для его обнаружения.

https://circuitdigest.com/sites/default/files/other/PIR%20Sensor%20Working.mp4

PIR-датчик состоит из двух основных частей:

  1. Пироэлектрический датчик , который вы можете видеть на изображении ниже, имеет круглую форму с прямоугольным кристаллом в центре.
  2. Специальная линза, называемая линзой Френеля, она фокусирует инфракрасные сигналы на  пироэлектрическом датчике.

Пироэлектрический датчик

Пироэлектрический датчик состоит из окна с двумя прямоугольными прорезями из кремния с покрытием, которое пропускает ИК-лучи и блокирует любое другое излучение. Датчики устроены так, что один подавляет другой, то есть датчик может подавлять окружающее излучение и обнаруживать изменения в нем (его шаблоне).

Когда движение не обнаружено, результирующий выходной сигнал равен нулю, поскольку датчик обнаруживает только фоновое излучение. Но когда какая-либо половина датчика перехватывает движение, это приводит к изменению уровня напряжения между двумя частями датчика, и именно так обнаруживается движение.

Линза Френеля

Линза Френеля состоит из ряда концентрических канавок, вырезанных в пластике . Эти контуры действуют как отдельные преломляющие поверхности, собирающие параллельные световые лучи в фокусе. В результате линза Френеля способна фокусировать свет так же, как обычная оптическая линза.

На самом деле, для увеличения дальности и поля зрения PIR-датчика линза разделена на несколько фасетных секций, каждая секция которых представляет собой отдельную линзу Френеля.

Распиновка PIR датчика HC-SR501

Датчик HC-SR501 имеет три контакта. Внутреннее устройство модуля скрыто линзой Френеля. Распиновка датчика представлена на следующем рисунке. Подайте питание 5–12 В и подключите к общему проводу схемы, выход датчика становится HIGH при обнаружении движения и LOW в режиме ожидания (движение не обнаружено).

VCC — контакт питания датчика. Поддерживает входное напряжение от 4,5 В до 12 В, но обычно для питания PIR-датчика используется питание 5 В.

Out — выходной контакт модуля PIR датчика. Он имеет логический уровень 3,3 В, он становится HIGH при обнаружении движения и LOW когда движение не обнаружено.

GND — общий провод (земля) датчика.

Компоненты модуля PIR датчика HC-SR501

Датчик HC-SR501 состоит из различных компонентов, показанных на следующем рисунке.

BISS0001 PIR Controller

«Сердцем» модуля является PIR-контроллер BIS0001. Из-за своих шумовых характеристик это один из самых стабильных доступных PIR-контроллеров. Этот чип принимает необработанные данные от датчика и обрабатывает их для получения цифрового вывода. Более подробную информацию об этой микросхеме можно найти в ее техническом описании.

Trigger Selection Jumper (перемычка выбора триггера)

Существует два режима триггера, которые определяют, как датчик будет реагировать при обнаружении движения.

  1. Режим одиночного триггера : постоянное движение вызывает одиночный триггер.
  2. Режим нескольких триггеров : постоянное движение вызывает серию триггеров.

L — при этой настройке датчик будет работать в режиме одиночного триггера, в этом режиме выходной сигнал становится HIGH при обнаружении движения. И остается HIGH в течение определенного периода времени, который устанавливается потенциометром задержки времени. Любой другой тип обнаружения блокируется до тех пор, пока выходной сигнал не станет LOW.

H — выбор этой настройки установит режим мультитриггера. В этом режиме выходной сигнал становится HIGH при обнаружении движения, а период уровня HIGH определяется установленным потенциометром. Но, в отличие от режима одиночного триггера, дальнейшее обнаружение не блокируется и может срабатывать непрерывно, контакт переходит в уровень LOW, когда движение не обнаружено.

Sensitivity Adjustment (регулировка чувствительности)

PIR-датчик имеет потенциометр на задней панели для регулировки чувствительности. С его помощью можно регулировать чувствительность устройства. Вращение потенциометра по часовой стрелке увеличивает чувствительность датчика, а вращение против часовой стрелки — уменьшает.

Time-Delay Adjustment (регулировка задержки времени)

Другой потенциометр на задней стороне датчика устанавливает, как долго выходной сигнал будет оставаться на уровне HIGH после обнаружения движения. Поворот потенциометра по часовой стрелке увеличивает задержку, а  против часовой стрелки — уменьшает.

RT and RL (термистор и фоторезистор)

PIR датчик HC-SR501 имеет две дополнительные площадки для пайки компонентов, обычно они обозначены как RT и RL.

RT предназначен для подключения дополнительного термистора или термочувствительного резистора. Его добавление позволит использовать HC-SR501 при экстремальных температурах. Также это увеличивает точность детектора.

RL предназначен для подключения фоторезисторов. Добавление этого компонента позволит HC-SR501 работать в темноте.

Регулятор напряжения 3,3 В

Модуль поставляется со стабилизатором напряжения 3,3 В, поэтому он может питаться от источника питания от 4,5 В до 12 В, хотя обычно используется 5 В.

Защитный диод

Модуль поставляется с защитным диодом для защиты от обратного напряжения и тока.

Часто задаваемые вопросы о PIR-датчике HC-SR501

Как настроить чувствительность PIR-датчика?

Вы можете использовать ручку регулировки чувствительности PIR-датчика. Ручка регулировки чувствительности определяет расстояние обнаружения движения датчика. Оно может варьироваться от 3 до 7 метров.

Каковы недостатки PIR-датчиков?

Они имеют более низкую чувствительность и меньшую зону действия по сравнению с микроволновыми датчиками. Они не работают при температуре выше 35 градусов Цельсия. Эффективно работают в режиме прямой видимости (LOS) и могут иметь проблемы в угловых областях. Они нечувствительны к очень медленному движению объектов.

Почему PIR-датчики выходят из строя?

Основные причины, по которым перестает работать PIR-датчик:

  • линза PIR датчика закрыта (например, сдвинулась внутренняя пластиковая крышка линзы).
  • провода внутри датчика ослабли или неправильно подключены.

Схема проекта

Схема подключения PIR датчика HC-SR501 к модулю ESP32 представлена на следующем рисунке.

Подключить PIR-датчик к модулю ESP32 достаточно просто. Вам необходимо подключить его контакты питания и земли к контакту 5 В и контакту земли  модуля ESP32. Рабочее напряжение PIR-датчика составляет от 4,5 до 12 В, поэтому нам нужно запитать HC-SR501 от контакта +5 В модуля ESP32.

Объяснение работы программы

Код для подключения датчика HC-SR501 к модулю ESP32 весьма прост и при этом не потребуется никакая библиотека. Как мы уже знаем, выходной контакт PIR-датчика переходит в низкий уровень, когда датчик PIR обнаруживает движение. Код программы для ESP32 просто отслеживает, находится ли вывод в низком или высоком состоянии, и соответствующим образом выводит сообщение в окно последовательного монитора.

Первым делом в коде программы инициализируем все необходимые переменные, в нашем случае это ledpin и inputPin.

Затем в функции setup мы устанавливаем режимы работы используемых контактов (на ввод или вывод данных) и инициализируем последовательную связь.

Далее в функции void loop() мы будем считывать состояние контакта. Если он в состоянии high мы будем включать светодиод и печатать в окно монитора последовательной связи сообщение об обнаружении движения.

А в операторе else мы будем выключать светодиод LED и печатать в окно монитора последовательной связи сообщение о том, что движение закончилось.

Работа модуля HC-SR501 с ESP32 

На видео ниже показана собранная схема нашего проекта. Мы запрограммировали модуль ESP32 таким образом, что когда датчик обнаруживает какое-либо движение, на макетной плате загорается светодиод, и, как вы можете видеть из представленного видео, светодиод загорается, как только мы перемещаем руку перед датчиком, для этого при тестировании работы проекта мы установили минимальный диапазон обнаружения датчика, чтобы он не мог обнаруживать движение в комнате.

Устранение неполадок модуля PIR датчика HC-SR501

Существует несколько причин, по которым PIR-датчик может не работать должным образом. Вам необходимо проверить несколько факторов чтобы выяснить причину проблемы:

  • рабочее напряжение датчика составляет от 4,8 до 20 В, поэтому при подаче на датчика питания напряжением 3,3 В он не будет работать;
  • в некоторых случаях вы можете увидеть скопление пыли на верхней части линзы, поэтому по этой причине PIR-датчик может перестать работать;
  • в некоторых случаях скопление пыли может произойти внутри датчика, и это также может быть причиной того, что датчик не работает;
  • если ни один из вышеперечисленных методов не помог, попробуйте повернуть потенциометр. Если вы установили чувствительность потенциометра на минимум, это может быть причиной того, что ваш датчик не работает.
  • если после всего перечисленного датчик не работает, вы можете быть уверены в том, что у вас в руке неисправный датчик.

Исходный код программы

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *