Ардуіно: інфрачервоний датчик руху, ПІР
- 1. Принцип дії піроелектричних датчиків руху
- 2. Налаштування HC-SR501
- 3. Підключення HC-SR501 до Ардуіно Уно
- 4. Управління світлом на основі датчика руху
Тема сьогоднішнього уроку - датчик руху на основі піроелектричного ефекту (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. Ось кілька ситуацій і місць, де може стати в нагоді датчик руху:
- автоматичне включення світла в під'їзді будинку, у ванній кімнаті і туалеті, перед вхідними дверима в приміщення;
- сигналізація в приміщенні і на подвір'ї;
- автоматичне відкривання дверей;
- автоматичне включення охоронної відеокамери.
Як вже говорилося на самому початку, існують і інші способи визначення руху. Про них ми поговоримо на наступних уроках!