PIR-датчик: описание и инструкция по подключению. Датчик движения на МК PIC и PIR-сенсоре Arduino pir датчик движения

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

Примерно такие:


Реагируют они на изменение излучения в инфракрасном диапазоне, а именно в средней его части - 5-15 мкм (тело среднего здорового человека излучает в диапазоне около 9 мкм). С точки зрения конечного потребителя штука очень простая - вход питания (чаще 12 вольт) и выход реле (обычно твердотельное и с нормально замкнутыми контактами). Прокрался кто-нибудь тепленький мимо - реле сработало. Скукота. Но внутри все не так просто.
Сегодня мы немного времени посвятим теории, а затем распотрошим один такой девайс и сделаем из него не просто датчик, реагирующий на факт движения, но регистрирующий направление движения.

Переходим к практическим упражнениям

Вооружившись теоретическими сведениями достанем паяльник. На фото показан разобранный датчик (снята передняя крышка с линзами Френеля и металлический экран).


Смотрим маркировку ближайшей к пироэлектрическому сенсору (круглый металлический с окошечком - это он и есть) микросхемы и (о, удача!) ею оказывается LM324 - счетверенный ОУ. Путем рассматривания окружающих элементов находим вывод ОУ, наиболее вероятно подходящий для наших целей (в моем случае это оказался вывод 1 микросхемы). Теперь неплохо бы проверить, а то ли мы нашли. Обычно для этого используют осциллограф. У меня под рукой его не оказалось. Зато оказался ардуино. Поскольку уровень сигнала после усиления составляет порядка единиц вольт, и особой точности замеров нам не нужно (достаточно качественной оценки), то входы АЦП ардуино вполне подойдут. К найденному выводу ОУ и минусу питания паяем проводки и выводим на макетку. Провода не должны быть длинными. В противном случае есть шанс померить не сигнал датчика, а что-нибудь совершенно другое.
Теперь подумаем насколько быстро нужно считывать сигнал, чтобы получить что-то вменяемое. Выше было сказано, что частотный диапазон полезного сигнала ограничен величиной примерно 10 Гц. Вспоминая теорему Котельникова (или Найквиста - кому что больше нравится), можно сделать вывод, что замерять сигнал с частотой выше 20 Гц смысла нет. Т.е. период дискретизации в 50 мс вполне подойдет. Пишем простой скетч, который каждые 50 мс читает порт А1 и вываливает его значение в сериал (строго говоря, измерения сигнала происходят реже, чем через 50 мс, поскольку на запись в порт тоже нужно время, однако для наших целей это не важно).

Unsigned long time; void setup() { Serial.begin(9600); pinMode(A1, INPUT); time=millis(); } void loop() { if ((millis()-time) >= 50) { Serial.println(analogRead(A1)); } time=millis(); }

Включаем и машем перед датчиком руками (можно побегать, даже полезнее). На стороне компьютера данные с порта вываливаем в файл.
stty -F /dev/ttyUSB0 raw ispeed 9600 ospeed 9600 -ignpar cs8 -cstopb -echo cat /dev/ttyUSB0 > output.txt
Строим график (в файл добавлен столбец с нумерацией отсчетов):
gnuplot> plot "output.txt" using 1:2 with lines


И видим то, что, собственно, и хотели - разнополярные всплески напряжения. Ура, теория работает и провод припаян куда надо. А простой анализ (проще говоря - рассматривание) графика позволяет сделать вывод, что более или менее надежной фиксацией факта наличия движения можно считать отклонение сигнала на 150 единиц от среднего значения.
Настало время сделать, наконец, датчик направления движения.
Модифицируем схему. Помимо аналогового сигнала сенсора подключим к ардуино пару светодиодов (порты 2 и 3, не забудьте токоограничительные резисторы) и напишем чуток более сложный скетч.

Развернуть

int a1; int state2=0; long average=0; int n=0; unsigned long time; void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(A1, INPUT); digitalWrite(2, LOW); digitalWrite(3, LOW); delay (30000); //мой датчик после включения //до начала работы тупит 30 сек. time=millis(); //тысячу раз делаем замер сигнала для //вычисления его среднего значения //чтобы было от чего отсчитывать отклонения while (n <= 1000) { ++n; a1=analogRead(A1); average=average+a1; delay(50); } average=average/1000; //одновременным включением светодиодов //сигнализируем, что система готова digitalWrite(2, HIGH); digitalWrite(3, HIGH); delay(1000); digitalWrite(2, LOW); digitalWrite(3, LOW); time=millis(); } void loop() { //опрашиваем датчик каждые 50 мс if ((millis()-time) >= 50) { //этим простым выражением аналаговый сигнал //превращаем в дискретный со значениями -1/0/1 a1=(analogRead(A1)-average)/150; //если было изменение полярности сигнала, то //включаем нужный светодиод switch (a1) { case 1: if (state2=-1) {digitalWrite(2, HIGH);digitalWrite(3, LOW);} state2=a1; break; case -1: if (state2=1) {digitalWrite(2, LOW);digitalWrite(3, HIGH);} state2=a1; break; } //повторяем сначала time=millis(); } }


Чтобы из всего множества лучей диаграммы направленности датчика оставить только одну пару, закрываем все, кроме одной, линзы Френеля бумажным экраном.


Наслаждаемся результатом.

Принцип работы PIR датчиков и типовая электрическая схема устройства. Любой человек становится источником теплового излучения. Длина волны этого излучения зависит от температуры и находится в инфракрасной части спектра. Это излучение улавливается специальными датчиками, которые называют PIR-датчики.

PIR - это сокращённое «passive infrared - пассивные инфракрасные» датчики. Пассивные - потому что датчики сами не излучают, а только воспринимают излучение с длиной волны от 7 до 14 мкм. PIR-датчик содержит чувствительный элемент, который реагирует на изменение теплового излучения. Если оно остается постоянным - электрический сигнал не генерируется. Чтобы датчик среагировал на движение, применяют линзы Френеля с несколькими фокусирующими участками, которые разбивают общую тепловую картину на активные и пассивные зоны, расположенные в шахматном порядке. Человек, находясь в сфере работы датчика, занимает несколько активных зон полностью или частично. Поэтому, даже при минимальном движении происходит перемещение из одних активных зон в другие, что вызывает срабатывание датчика. А вот фоновая тепловая картина меняется очень медленно и равномерно, поэтому датчик на нее не реагирует. Высокая плотность активных и пассивных зон позволяет датчику надежно определить присутствие человека при малейшем движении.

Данная схема основана на микросхеме HT7610A , которая как раз и предназначена для использования в автоматических PIR-лампах или сигнализациях. Он может работать в 3-х проводной конфигурации для передачи сигнала. В данном проекте использовано реле вместо тиристора, как это часто делается, для подключения любого рода нагрузки. Внутри микросхемы есть операционный усилитель, компаратор, таймер, детектор перехода через ноль, схема управления, регулятор напряжения, генератор и выход синхронизации генератора.

PIR датчик обнаруживает инфракрасный изменённый сигнал, вызванный движением человеческого тела и преобразует его в колебания напряжения. Схеме не требуется понижающий трансформатор и она может работать непосредственно от 220V. Балластный конденсатор С7 должен быть на 0.33uF/275V, а лучше на 400V.

Особенности схемы датчика

  • Рабочее напряжение схемы: 5V-12V.
  • Ток нагрузки 80 мА, когда реле включено.
  • В режиме ожидания ток: 100 мкА
  • ON/AUTO/OFF режимы работы.
  • Автосброс, если сигнал исчезает за 3 секунды.
  • Релейный выход для подключения нагрузки.
  • Фоторезистор LDR для обнаружения дневного/ночного режима.
  • Джампер J1 для установки режима.
  • Резистор PR1 устанавливает чувствительность датчика.
  • Резистор PR2 устанавливает выходную продолжительность сигнала состояния выхода.

Схема PIR датчика предлагает три режима работы (ON, AUTO, OFF), которые могут быть установлены вручную джампером J1. CDS система представляет собой КМОП-триггер Шмитта, что используется, чтобы различать дневное и ночное время.

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

Урок подойдет начинающим, но будет интересен и более опытным инженерам.

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

1 x Плата Arduino (мы использовали Arduino Uno)
1 x Светодиод (LED, цвет не имеет значения)
1 x Резистор/сопротивление 220 Ом
1 x Макетная плата
1 x USB-кабель Arduino
1 x Батарейка 9 В с зажимом (опционально)
6 x Проводов

Шаг 2: Позиционирование деталей

Сначала подключите ультразвуковой датчик и светодиод на макетной плате. Подключите короткий кабель светодиода (катод) к контакту GND (земля) датчика. Затем установите резистор в том же ряду, что и более длинный провод светодиода (анод), чтобы они были соединены.

Шаг 3: Подключение частей

Теперь вам нужно подключить несколько проводов на задней панели датчика. Есть четыре контакта - VCC, TRIG, ECHO и GND. После вставки проводов вам необходимо выполнить следующие подключения:

Конец резистора на цифровой вывод по вашему выбору, просто не забудьте изменить его позже в коде.

Датчик -> Arduino
VCC -> 5V (питание)
TRIG -> 5*
ECHO -> 4*
GND -> GND (земля)

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

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

Const int ledPin = 6; // Цифровой выход светодиода const int trigPin = 5; // Цифровой выход для подключения TRIG const int echoPin = 4; // Цифровой выход для подключения ECHO const int ledOnTime = 1000; // Время, в течение которого светодиод остается включенным, после обнаружения движения (в миллисекундах, 1000 мс = 1 с) const int trigDistance = 20; // Расстояние (и меньшее значение) при котором срабатывает датчик (в сантиметрах) int duration; int distance; void setup() { pinMode(ledPin, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); digitalWrite(trigPin, HIGH); delay(1); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 0.034 / 2; if (distance <= trigDistance) { digitalWrite(ledPin, HIGH); delay(ledOnTime); digitalWrite(ledPin, LOW); } delay(100); }

Шаг 5: Конечный результат (видео)

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

Всем хороших проектов!

Всем привет, сегодня мы рассмотрим устройство под названием датчик движения. Многие из нас слышали об этой штуке, кто то даже имел дело с этим устройством. Что же такое датчик движения? Попробуем разобраться, итак:

Датчик движения, или датчик перемещения - устройство (прибор) обнаруживающий перемещение каких либо объектов. Очень часто эти устройства, используются в системах охраны, сигнализации и мониторинга. Форм факторов этих датчиков существует великое множество, но мы рассмотрим именно модуль датчика движения для подключения к платам Arduino, и именно от фирмы RobotDyn. Почему именно этой фирмы? Я не хочу заниматься рекламой этого магазина и его продукции, но именно продукция данного магазина была выбрана в качестве лабораторных образцов благодаря качественной подаче своих изделий для конечного потребителя. Итак, встречаем - датчик движения (PIR Sensor) от фирмы RobotDyn:


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

Основные технические характеристики датчика движения(PIR Sensor):

Зона работы датчика: от 3 до 7 метров

Угол слежения: до 110 о

Рабочее напряжение: 4,5...6 Вольт

Потребляемый ток: до 50мкА

Примечание: Стандартный функционал датчика можно расширить, подключив на пины IN и GND датчик освещенности, и тогда датчик движения будет срабатывать только в темноте.

Инициализация устройства.

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

Угол и область обнаружения.

Угол обнаружения(слежения) составляет 110 градусов, диапазон расстояния обнаружения от 3 до 7 метров, иллюстрация ниже показывает всё это:

Регулировка чувствительности(дистанции обнаружения) и временной задержки.

На приведённой ниже таблице показаны основные регулировки датчика движения, слева находится регулятор временной задержки соответственно в левом столбце приведено описание возможных настроек. В правом столбце описание регулировок расстояния обнаружения.


Подключение датчика:

  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - Arduino Nano
  • PIR Sensor - для датчика освещенности
  • PIR Sensor - для датчика освещенности

Типичная схема подключения дана на схеме ниже, в нашем случае датчик показан условно с тыльной стороны и подключен к плате Arduino Nano.

Скетч демонстрирующий работу датчика движения(используем программу ):

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano */ void setup() { //Установить соединение с монитором порта Serial.begin(9600); } void loop() { //Считываем пороговое значение с порта А0 //обычно оно выше 500 если есть сигнал if(analogRead(A0) > 500) { //Сигнал с датчика движения Serial.println("Есть движение!!!"); } else { //Нет сигнала Serial.println("Всё тихо..."); } }

Скетч является обычной проверкой работы датчика движения, в нём есть много недостатков, таких как:

  1. Возможные ложные срабатывания, датчику необходима самоинициализация в течение одной минуты.
  2. Жесткая привязка к монитору порта, нет выходных исполнительных устройств(реле, сирена, светоиндикация)
  3. Слишком короткое время сигнала на выходе датчика, при обнаружении движения необходимо программно задержать сигнал на более долгий период времени.

Усложнив схему и расширив функционал датчика, можно избежать вышеописанных недостатков. Для этого потребуется дополнить схему модулем реле и подключить обычную лампу на 220 вольт через данный модуль. Сам же модуль реле будет подключен к пину 3 на плате Arduino Nano. Итак принципиальная схема:

Теперь пришло время немного усовершенствовать скетч, которым проверялся датчик движения. Именно в скетче, будет реализована задержка выключения реле, так как сам датчик движения имеет слишком короткое время сигнала на выходе при срабатывании. Программа реализует 10-ти секундную задержку при срабатывании датчика. При желании это время можно увеличить или уменьшить, изменив значение переменной DelayValue . Ниже представлен скетч и видео работы всей собранной схемы:

/* * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * PIR Sensor -> Arduino Nano * Relay Module -> Arduino Nano */ //relout - пин(выходной сигнал) для модуля реле const int relout = 3; //prevMillis - переменная для хранения времени предидущего цикла сканирования программы //interval - временной интервал для отсчета секунд до выключения реле unsigned long prevMillis = 0; int interval = 1000; //DelayValue - период в течение которого реле удерживается во включенном состоянии int DelayValue = 10; //initSecond - Переменная итерации цикла инициализации int initSecond = 60; //countDelayOff - счетчик временных интервалов static int countDelayOff = 0; //trigger - флаг срабатывания датчика движения static bool trigger = false; void setup() { //Стандартная процедура инициализации порта на который подключен модуль реле //ВАЖНО!!! - чтобы модуль реле оставался в первоначально выключенном состоянии //и не срабатывал при инициализации, нужно записать в порт входа/выхода //значение HIGH, это позволит избежать ложных "перещелкиваний", и сохранит //состояние реле таким, каким оно было до включения всей схемы в работу pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); //Здесь всё просто - ждем когда закончатся 60 циклов(переменная initSecond) //продолжительностью в 1 секунду, за это время датчик "самоинициализируется" for(int i = 0; i < initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) > 500) { //Установить флаг срабатывания датчика движения if(!trigger) { trigger = true; } } //Пока флаг срабатывания датчика движения установлен while(trigger) { //Выполнять следующие инструкции //Сохранить в переменной currMillis //значение миллисекунд прошедших с момента начала //выполнения программы unsigned long currMillis = millis(); //Сравниваем с предидущим значением миллисекунд //если разница больше заданного интервала, то: if(currMillis - prevMillis > interval) { //Сохранить текущее значение миллисекунд в переменную prevMillis prevMillis = currMillis; //Проверяем счетчик задержки сравнивая его со значением периода //в течение которого реле должно удерживаться во включенном //состоянии if(countDelayOff >= DelayValue) { //Если значение сравнялось, то: //сбросить флаг срабатывания датчика движения trigger = false; //Обнулить счетчик задержки countDelayOff = 0; //Выключить реле digitalWrite(relout, HIGH); //Прервать цикл break; } else { //Если значение всё еще меньше, то //Инкрементировать счетчик задержки на единицу countDelayOff ++; //Удерживать реле во включенном состоянии digitalWrite(relout, LOW); } } } }

В программе присутствует конструкция:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Наши операции заключенные в тело конструкции

....

}

Чтобы внести ясность, было решено отдельно прокомментировать эту конструкцию. Итак, данная конструкция позволяет выполнить как бы параллельную задачу в программе. Тело конструкции срабатывает примерно раз в секунду, этому способствует переменная interval . Сначала, переменной currMillis присваивается значение возвращаемое при вызове функции millis() . Функция millis() возвращает количество миллисекунд прошедших с начала программы. Если разница currMillis - prevMillis больше чем значение переменной interval то это означает, что уже прошло более секунды с начала выполнения программы, и нужно сохранить значение переменной currMillis в переменную prevMillis затем выполнить операции заключенные в теле конструкции. Если же разница currMillis - prevMillis меньше чем значение переменной interval , то между циклами сканирования программы еще не прошло секунды, и операции заключенные в теле конструкции пропускаются.

Ну и в завершение статьи видео от автора:

Пожалуйста, включите javascript для работы комментариев.

Тема сегодняшнего урока — датчик движения на основе пироэлектрического эффекта (PIR, passive infrared motion sensor). Такие датчики часто используются в охранных системах и в быту для обнаружения движения в помещении. Например, на принципе детектирования движения основано автоматическое включение света в подъезде или в ванной. Пироэлектрические датчики достаточно простого устроены, недороги и неприхотливы в установке и обслуживании. Кстати сказать, существуют и другие способы детектирования движения. Сегодня всё чаще используют системы компьютерного зрения для распознавания объектов и траектории их перемещения. В тех же охранных системах применяются лазерные детекторы, которые дают тревожный сигнал при пересечении луча. Также используются тепловизионные датчики, способные определить движение только живых существ.

1. Принцип действия пироэлектрических датчиков движения

Пироэлектрики — это диэлектрики, которые создают электрическое поле при изменении их температуры. На основе пироэлектриков делают датчики измерения температуры, например, LHI778 или IRA-E700. Каждый такой датчик содержит два чувствительных элемента размером 1×2 мм, подключенных с противоположной полярностью. И как мы увидим далее, наличие именно двух элементов поможет нам детектировать движение. Вот так выглядит датчик IRA-E700 компании Murata. На этом уроке мы будем работать с датчиком движения HC-SR501, в котором установлен один такой пироэлектрический датчик. Сверху пироэлектрик окружен полусферой, разбитой на несколько сегментов. Каждый сегмент этой сферы представляет собой линзу, которая фокусирует тепловое излучение на разные участки ПИР-датчика. Часто в качестве линзы используют линзу Френеля.
Принцип работы датчик движения следующий. Предположим, что датчик установлен в пустой комнате. Каждый чувствительный элемент получает постоянную дозу излучения, а значит и напряжение на них имеет постоянное значение (левый рисунок).
Как только в комнату заходит человек, он попадает сначала в зону обзора первого элемента, что приводит к появлению положительного электрического импульса на нем (центральный рисунок). Человек движется, и его тепловое излучение через линзы попадает уже на второй PIR-элемент, который генерирует отрицательный импульс. Электронная схема датчика движения регистрирует эти разнонаправленные импульсы и делает выводы о том, что в поле зрения датчика попал человек. На выходе датчика генерируется положительный импульс (правый рисунок).

2. Настройка HC-SR501

На этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и применяется во множестве DIY проектов в силу своей дешевизны. У датчика имеется два переменных резистора и перемычка для настройки режима. Один из потенциометров регулирует чувствительность прибора. Чем она больше, тем дальше «видит» датчик. Также чувствительность влияет на размер детектируемого объекта. К примеру, можно исключить из срабатывания собаку или кошку.
Второй потенциометр регулирует время срабатывания T . Если датчик обнаружил движение, он генерирует на выходе положительный импульс длиной T . Наконец, третий элемент управления — перемычка, которая переключает режим датчика. В положении L датчик ведет отсчет Т от самого первого срабатывания. Допустим, мы хотим управлять светом в ванной комнате. Зайдя в комнату, человек вызовет срабатывание датчика, и свет включится ровно на время Т . По окончании периода, сигнал на выходе вернется в исходное состояние, и датчик будет дать следующего срабатывания. В положении H датчик начинает отсчет времени T каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчета Т . По-умолчанию, перемычка находится в состоянии H .

3. Подключение HC-SR501 к Ардуино Уно

Для соединения с микроконтроллером или напрямую с реле у HC-SR501 имеется три вывода. Подключаем их к Ардуино по следующей схеме:
HC-SR501 GND VCC OUT
Ардуино Уно GND +5V 2
Принципиальная схема
Внешний вид макета
Программа Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае. const int movPin = 2 void setup() { Serial.begin(9600); pinMode(movPin, INPUT); } void loop(){ int val = digitalRead(movPin); Serial.println(val); delay(100); } Загружаем программу на Ардуино и проверяем работу датчика. Можно покрутить настройки датчика и посмотреть как это отразится на его работе.

4. Управление светом на основе датчика движения

Следующий шаг — система автоматического включения света. Для того, чтобы управлять освещением в помещении, нам потребуется добавить в цепь реле. Будем использовать модуль реле с защитой на основе опторазвязки, о котором мы уже писали в одном и уроков (урок про реле ). Внимание! Данная схема зажигает лампу от сети 220 Вольт. Рекомендуется семь раз проверить все соединения, прежде чем соединять схему с бытовой электросетью. Принципиальная схема
Внешний вид макета
Программа Теперь напишем программу, которая будет при срабатывании датчика включать реле, а следовательно и освещение в комнате. const int movPin = 2; const int relPin = 3; void setup() { Serial.begin(9600); pinMode(movPin, INPUT); pinMode(relPin, OUTPUT); } void loop(){ int val = digitalRead(movPin); if (val) digitalWrite(relPin, HIGH); else digitalWrite(relPin, LOW); } Загружаем программу на Ардуино, аккуратно подключаем схему к бытовой сети и проверяем работу датчика. Заключение Датчики движения окружают нас повсюду. Благодаря охранным системам, их можно встретить практически в каждом помещении. Как мы выяснили, они очень просты в использовании и могут быть легко интегрированы в любой проект на Ардуино или Raspberry Pi. Вот несколько ситуаций и мест, где может пригодиться датчик движения:
  • автоматическое включение света в подъезде дома, в ванной комнате и туалете, перед входной дверью в помещение;
  • сигнализация в помещении и во дворе;
  • автоматическое открывание дверей;
  • автоматическое включение охранной видеокамеры.
Как уже говорилось в самом начале, существуют и другие способы детектирования движения. О них мы поговорим на следующих уроках!
error: