Arduino-сенсор обнаружения вторжений arduino+

Датчик движения ардуино

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

Описание датчика движения ардуино

Конструкция ПИР датчика движения не очень сложна – он состоит из пироэлектрического элемента, отличающегося высокой чувствительностью (деталь цилиндрической формы, в центре которой расположен кристалл) к наличию в зоне действия определенного уровня инфракрасного излучения. Чем выше температура объекта, тем больше излучение. Сверху PIR-датчика устанавливается полусфера, разделенная на несколько участков (линз), каждый из которых обеспечивает фокусировку излучения тепловой энергии на различные сегменты датчика движения. Чаще всего в качестве линзы применяют линзу Френеля, которая за счет концентрации теплового излучения позволяет расширить диапазон чувствительности инфракрасного датчика движения Ардуино.

PIR-sensor конструктивно разделен на две половины. Это обусловлено тем, что для устройства сигнализации важно именно наличие движения в зоне чувствительности, а не сам уровень излучения. Поэтому части установлены таким способом, что при улавливании одной большего уровня излучения, на выход будет подаваться сигнал со значением high или low.

Основными техническими характеристиками датчика движения Ардуино являются:

  • Зона обнаружения движущихся объектов составляет от 0 до 7 метров;
  • Диапазон угла слежения – 110°;
  • Напряжение питания – 4.5-6 В;
  • Рабочий ток – до 0.05 мА;
  • Температурный режим – от -20° до +50°С;
  • Регулируемое время задержки от 0.3 до 18 с.

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

Принцип работы датчика движения на Arduino следующий:

  • Когда устройство установлено в пустой комнате, доза излучения, получаемая каждым элементом постоянна, как и напряжение;
  • При появлении в комнате человека, он первым делом попадает в зону обозрения первого элемента, на котором появляется положительный электрический импульс;
  • Когда человек перемещается по комнате, вместе с ним перемещается и тепловое излучение, которое попадает уже на второй сенсор. Этот PIR-элемент генерирует уже отрицательный импульс;
  • Разнонаправленные импульсы регистрируются электронной схемой датчика, которая делает вывод, что в поле зрения Pir-sensor Arduino находится человек.

Для надежной защиты от внешних шумов, перепадов температуры и влажности, элементы Pir-датчика на Arduino устанавливаются в герметичный металлический корпус. На верхней части корпуса по центру находится прямоугольник, выполненный из материала, который пропускает инфракрасное излучение (чаще всего на основе силикона). Чувствительные элементы устанавливаются за пластиной.

Схема подключения датчика движения к Ардуино

Подключение Pir-датчика к Ардуино выполнить не сложно. Чаще всего модули с сенсорами движения оснащены тремя коннекторами на задней части. Распиновка каждого устройства зависит от производителя, но чаще всего возле выходов есть соответствующие надписи. Поэтому, прежде чем выполнить подключение датчика к Arduino необходимо ознакомиться с обозначениями. Один выход идет к земле (GND), второй – обеспечивает выдачу необходимого сигнала с сенсоров (+5В), а третий является цифровым выходом, с которого снимаются данные.

  • «Земля» – на любой из коннекторов GND Arduino;
  • Цифровой выход – на любой цифровой вход или выход Arduino;
  • Питание – на +5В на Arduino.

Схема подключения инфракрасного датчика к Ардуино представлена на рисунке.

Пример программы

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

  • Вероятность ложных срабатываний, за счет того, что для самоинициализации датчика требуется одна минута;
  • Отсутствие выходных устройств исполнительного типа – реле, сирены, светоиндикации;
  • Короткий временной интервал сигнала на выходе сенсора, который необходимо на программном уровне задержать, в случае появления движения.

Указанные недостатки устраняются при расширении функционала датчика.

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

Возможные варианты проектов с применением датчика

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

  • Включение света в подъезде или перед входной дверью автоматически, при появлении в нем человека;
  • Включение освещения в ванной комнате, туалете, коридоре;
  • Срабатывание сигнализации при появлении человека, как в помещении, так и на придомовой территории;
  • Автоматическое подключение камер слежения, которыми часто оснащаются охранные системы.

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

Как выбрать датчик для Arduino

Любая автоматизация начинается с подбора датчиков — именно на основе их показаний строится вся логика управления. Сенсоры помогают решить различные инженерные задачи, чтобы сделать ваш проект ещё точнее и «умнее». Сегодня мы расскажем, какие виды датчиков наиболее часто используются в связке с Arduino-совместимыми контроллерами и одноплатными компьютерами наподобие Raspberry Pi.

Датчики положения

Если вы строите робота, способного самостоятельно перемещаться в пространстве, ему понадобится некая система ориентации, иначе он будет неуклюже упираться в препятствия и требовать вашей помощи. Конечно, на лавры Boston Dynamics мы не претендуем, но дадим пару советов.

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

Датчики пространства

Машинное зрение с распознаванием объектов — это, конечно, хорошо, но мы привыкли искать решения попроще. Задачу ориентирования можно элегантно решить, если свести «зрение» робота к простейшей функции о бнаружения препятствий. Для этого ему понадобится сенсор пространства, который определяет дистанцию до объектов, или хотя бы их наличие поблизости. Тогда он перестанет врезаться и научится строить маршрут в обход препятствий — не без вашей программной помощи.

Тактильные сенсоры

Кнопки, потенциометры и тому подобные штучки — это тактильные сенсоры, которые превращают наши манипуляции в электрический сигнал. Хотите сделать собственный геймпад или микшерный пульт? Вам понадобится целая куча кнопок и других органов управления.

Климатические сенсоры

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

Сенсоры света и цвета

Некоторые роботы рождены, чтобы участвовать в гонках, а не ползать. Им главное — мчать по трассе, не сбавляя скорости. Чтобы не сбиваться с намеченного пути, робот обычно считывает трассу, проложенную линией. Для подобных целей тоже существуют особые датчики света и цвета.

Датчики звука

Звуковые волны — полезный источник информации, если знать, что с ними делать. Чуть выше мы уже рассказывали про ультразвуковой дальномер, который использует эхолокацию. С датчиками звука вы можете придумать не менее интересные применения своему проекту.

Датчики механического воздействия

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

Датчики газа

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

Датчики воды

Спасти жилище от затопления, создать систему автоматического полива в теплице или автопоилку для животных невозможно без датчиков воды. Они помогут оценить уровень и расход воды, чтобы вовремя подать управляющие сигналы насосу и другим модулям. А ещё с ними вы точно не забудете закрыть кран дома!

В заключение

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

  • Выбирайте подходящие модули в разделе датчиков.
  • Найти более глубокую справочную информацию с примерами использования сенсоров вы сможете на нашей Вики.

Arduino-сенсор обнаружения вторжений

Для этого проекта мы сделаем простое устройство, которое поможет обнаруживать “вторжения”, назовем её системой сигнализации.

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

Шаг 1: Что нам понадобится

Нам понадобятся следующие комплектующие:

  • 1 Arduino Uno
  • 1 Пассивный пьезо-зуммер
  • 1 PIR (пассивный инфракрасный) датчик
  • 1 Звуковой датчик
  • 1 Светодиод
  • Несколько проводов-перемычек

Шаг 2: Настройка платы

1. Подключите контакт заземления к контакту заземления (GND) на вашем Arduino

2. Подключите шину питания к контакту 5V на вашем Arduino

3. Подключите короткий конец светодиода к заземляющему контакту на Arduino, а длинную сторону – к цифровому выходу 13

При подключении светодиода вы можете в качестве альтернативы подключить его к макету, а затем подключить его оттуда к Arduino, используя резистор 220 Ом, чтобы сохранить срок службы вашего светодиода.

Шаг 3: Подключаем звуковой сигнал

1. Подключите пьезо-зуммер к макету

2. Подключите отрицательный выход зуммера к земле

3. Подключите положительный контакт зуммера к цифровому контакту 8 на вашем Arduino

Шаг 4: Подключаем датчик PIR

1. Подключите контакт питания на вашем PIR-датчике к шине электропитания (разные PIR датчики могут иметь разный набор и порядок контактов, будьте внимательны)

2. Подключите контакт заземления на вашем PIR-датчике к шине заземления

3. Подключите цифровой выходной контакт на вашем PIR-датчике к цифровому выходу 6 на вашем Arduino

Шаг 5: Подключаем звуковой датчик

1. Подключите контакт питания на звуковом датчике к шине питания на макете.

2. Подключите контакт заземления на звуковом датчике к заземляющей шине на макете.

3. Подключите цифровой выходной контакт на звуковом датчике к цифровому выходу 7 на вашем Arduino.

Шаг 6: Загружаем код и наслаждаемся

К данному моменту у вас должна быть базовая система сигнализации. Осталось загрузить код, чтобы это всё заработало.

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

Вы также можете воспроизводить различные мелодии на зуммере, если хотите. Экспериментируйте и наслаждайтесь!

Сенсорный датчик для Arduino и жуткий девайс админа-параноика

Обнаружилась тут для Arduino занятная библиотечка, организующая сенсорное управление: www.arduino.cc/playground/Main/CapSense.
Принцип работы прост — соединяем две любые ноги резистором мегаом на несколько, одна нога будет выходом, вторая входом. Ко входу цепляем провод-сенсор, а еще лучше что-то плоское и проводящее – вроде куска медной фольги. Если выход переключать из 0 в 1 и обратно, то состояние входа тоже будет переключаться, но из-за различных паразитных емкостей процесс будет происходить с некоторой задержкой, и чем больше емкость (допустим, ближе находится рука человека), тем больше эта инерционность. Вот илюстрация от автора библиотеки:


Библиотека прячет от нас все эти переключения и измерения времени – нам достается удобная функция:
capSenseRaw(нога_выход, нога_вход, число_измерений).
В ходе экспериментов с библиотекой и различными железками, подцепленными к Arduino, в моем воспаленном сознании админа-параноика родилась идея забавного устройства, которое я Вам и представляю.
Суть в следующем: разместить в кресле (на котором админ проводит свое рабочее время) достаточное количество проволоки и прикрыть ее материей, подсоединить проволоку к Arduino – пусть железка определяет — сидит кто-то на кресле, или нет. И вот в тот самый момент, когда админ отлучается со своего рабочего места, Arduino шлет сигнал компьютеру, а тот автоматически лочится.
… можно еще и .wav проигрывать вроде «работать, негры! солнце еще высоко»
Рассмотрим черновой вариант реализации данной идеи, который получился у меня.
Железо
Самым сложным оказалось найти резистор номиналом около 10 МОм. В хозяйстве были на 2.2 МОм — я их спаял 4 штуки последовательно – вышло около 9 МОм, но выглядело некрасиво. Заглянул в радиомагазин — там нашел на 15 МОм резисторы — взял несколько штук. Берем кусочек материи, пришиваем к ней проволоку, соединяем все в соответсвии со схемой: Я использую Freeduino — клон Arduino. Они полностью совместимы, т.е. никакой разницы ни электрически, ни программно нет.
Софт для компьютера
Выбор языка для написания ответной части, работающей на компьютере, мной сделан в пользу Python — под виндой все-равно нормального скриптового языка, идущего в комплекте нет, а уж если что-то и доставлять, то пусть это будет популярный проект, имеющий обширное сообщество, много библиотек,
кучу примеров, и нормально портированный под все более-менее живые ОС.
Для Python есть простая и удобная библиотечка pySerial для работы с COM-портом (Arduino представлена в системе именно COM портом на шине USB): pySerial.
Кроме того, под винду понадобится еще pyWin32 После этого работа с Arduino из Python упрощается до безобразия.
Как из скрипта залочить машину?
Под виндой так:
«rundll32.exe user32.dll,LockWorkStation».
Под GNOME (я проверял под Ubuntu 8.04) так:
«gnome-screensaver-command –lock» или так:
«xdg-screensaver lock».
Под KDE — не искал и не знаю как — я думаю тоже без проблем.
Итак, все необходимое у нас есть, осталось собрать все воедино.
Исходник для Arduino с коментариями лежит тут: CapSenseSrc.zip
Программка простая — при появлении человека Arduino пишет в порт «Hello!»,
а когда человек отойдет — «Bye!».
Исходный код скрипта на питоне хоть и лежит в архиве, но в силу его простоты приведу здесь:

Под Ubuntu успешно работало с изменениями в 2-х строчках:
порт открывается так:

Машина лочится так:

Небольшой видео-ролик, демонстрирующий работу:

P.S. Про свои эксперименты с Arduino я еще пишу на блоге arduino-ru.blogspot.com, но там будут сообщения в виде отчетов, а на хабр планирую выкладывать более детальные описания с разбором исходников и схем. В особенности буду рад этим заниматься, если это кому-то интересно. Есть среди аудитории люди близкие к софту, но желающие немного разобраться в самодельных железках?
Или наоборот, рожденные с паяльником в руках, но так и не подобравшиеся вплотную к микроконтроллерам? В общем, хочется обратной связи – жду комментариев хороших и разных 🙂

Источники:

http://amperka.ru/page/kak-vybrat-datchik-dlya-arduino

http://arduinoplus.ru/arduino-sensor-obnaruzheniya-vtorzhenij/

http://habr.com/post/54763/

http://portal-pk.ru/news/68-urok-7—-svetofor-na-arduino–svoimi-rukami-pishem-sketch.html

Ссылка на основную публикацию