Безпека завжди була головною проблемою для нас усіх, і на ринку існує безліч систем безпеки та спостереження на базі Hi-tech та IoT. Сигналізація про вторгнення чи охорону - один із класичних та популярних проектів серед студентів та любителів електроніки. Ми також побудували багато сигналізацій, що охороняють, на основі різних технологій:
- Схема сигналізації лазерної безпеки
- Інфрачервона сигналізація безпеки
- Охоронна сигналізація з використанням PIR
- Система безпеки на основі GSM
Сьогодні ми додаємо ще один сигнал безпеки в наш список, який базується на ультразвуковому датчику. Цей сигналізатор з контрольованими дверима Arduino можна встановити біля дверей, щоб виявити присутність когось біля дверей. Щоразу, коли хтось потрапляє в діапазон ультразвукового датчика, звуковий сигнал починає подавати звуковий сигнал. Ви можете налаштувати дальність виявлення датчика відповідно до ваших дверей. Ця система може також служити призначенню детектора руху.
Необхідні компоненти:
- Макет
- Ультразвуковий датчик
- Зумер
- Arduino Mega (будь-яка модель)
- Провід перемички
- USB-кабель для Arduino або 12v, адаптер 1A.
Ультразвуковий модуль датчика:
Ультразвуковий датчик HC-SR04 використовується тут для виявлення присутності будь-якої людини біля дверей. Модуль датчика складається з ультразвукового передавача, приймача та схеми управління. Ультразвуковий датчик складається з двох круглих очей, з яких одне використовується для передачі ультразвукової хвилі, а друге для її отримання.
Ми можемо розрахувати відстань об’єкта, виходячи з часу, за який ультразвукова хвиля повертається назад до датчика. Оскільки час і швидкість звуку відомі, ми можемо розрахувати відстань за наступними формулами.
- Відстань = (Час х Швидкість звуку) / 2
Значення ділиться на два, оскільки хвиля рухається вперед і назад, покриваючи однакову відстань. Але в цьому проекті ми використовували бібліотеку NewPing.h , і ця бібліотека піклується про цей розрахунок, і нам просто потрібно використовувати деякі ключові слова, пояснення наведено в розділі програмування нижче.
Перевірте наведений нижче проект, щоб виміряти відстань до будь-якого об’єкта та правильно зрозуміти роботу ультразвукового датчика:
- Вимірювання відстані на основі Arduino за допомогою ультразвукового датчика
- Вимірювання відстані за допомогою HC-SR04 та мікроконтролера AVR
Електрична схема та пояснення:
Схеми підключення даної ультразвукової сигналізації дуже прості. Спускний штифт ультразвукового датчика підключений до штифта №. 12 штирька Arduino та Echo датчика підключено до виводу № 11 Arduino. Vcc датчика підключений до 5-контактного виводу Arduino, а GND датчика - до GND Arduino. Один штифт зумера підключений до GND Arduino, а інший штифт підключений до 8- го штифта Arduino.
Робоче пояснення:
Працювати з даною сигналізацією дверей Arduino дуже просто. Щоразу, коли хтось потрапляє на шлях / діапазон ультразвукового датчика, мікроконтролер виявляє відстань об’єкта від датчика, і якщо об’єкт знаходиться у визначеному діапазоні, він надсилає сигнал високого звуку до зумера, і зумер починає подавати звуковий сигнал.
Ви можете перевірити схему, поставивши будь-яку річ перед датчиком в межах діапазону, перевірте відео для демонстрації. Ця функція ультразвукового датчика також може бути використана для побудови робота, який уникає перешкод.
Пояснення програмування:
У цьому проекті ми використали бібліотеку NewPing.h для ультразвукового датчика, розроблену Тімом Еккелем. Хоча ми можемо використовувати ультразвуковий датчик без цієї бібліотеки, як це було в попередньому проекті, але ця бібліотека надає багато хороших функцій для ультразвукового датчика, і стає легко кодувати ультразвуковий датчик за допомогою цієї бібліотеки. Ми можемо легко використовувати функції ультразвукового датчика, використовуючи цю бібліотеку, не записуючи занадто багато рядків коду; це як інші бібліотеки, які використовуються для обробки складності на нижчому рівні.
#включати
Ви можете перевірити всі функції, використання та зразки кодів цієї бібліотеки, перейшовши за цим посиланням. Також перевірте офіційну сторінку цієї бібліотеки Arduino.
Останній випуск Бібліотеки можна завантажити за вказаним вище посиланням. Крім того, ми завантажили бібліотеку з посилання нижче, яке змінено для Teensy:
github.com/PaulStoffregen/NewPing
Спочатку слід протестувати датчик, спалюючи приклади кодів, наведених на його сторінці. Ми також використовували зразкові коди для нашого проекту та модифікували їх відповідно до нашого проекту сигналізації дверей.
Тригерний штифт підключений до висновку 12 Arduino, а ехо-штифт - до виводу 11 Arduino. MAX_DISTANCE означає, що відстань, до якої датчик може виявити перешкоду, становить 500 см або 5 м.
#define TRIGGER_PIN 12 #define ECHO_PIN 11 #define MAX_DISTANCE 500
Нижче вказується швидкість передачі даних, з якою дані надсилаються на послідовний порт Arduino від ультразвукового датчика.
Serial.begin (115200);
Штифт № 10 налаштований як вихідний штифт і підключений до зумера. Інший штифт зумера підключений до GND Arduino.
pinMode (10, ВИХІД);
У порожньому echoCheck () функції, sonar.ping_result / US_ROUNDTRIP_CM використовується для обчислення відстані перешкоди від датчика. Прапор використовується для запуску зумера, коли перешкода знаходиться в межах 50 см від ультразвукового датчика. Ви можете змінити цю "відстань" відповідно до своїх вимог або розміру дверей.
якщо ((sonar.ping_result / US_ROUNDTRIP_CM) <50) прапор = 1; інакше якщо ((sonar.ping_result / US_ROUNDTRIP_CM)> 50) прапор = 0;
Кодекс дуже добре коментується автором бібліотеки NewPing.h і може бути легко зрозумілий. Далі ви можете перевірити саму сторінку бібліотеки, щоб краще зрозуміти її, і використовувати цю бібліотеку для складання складного проекту за допомогою ультразвукового датчика. Повний код для цього проекту сигналізації дверей наведено нижче.
У першу чергу ультразвуковий датчик використовується для вимірювання відстані від будь-якого предмета, але тут ми бачимо, що його можна використовувати як охоронну сигналізацію або дверну сигналізацію з Arduino. Так само ми можемо створити багато корисних проектів, використовуючи це, наприклад: Автоматичний індикатор рівня води та контролер за допомогою Arduino