- Список компонентів
- Принципова схема для блокування дверей клавіатури Arduino
- Код Arduino для дверного замка цифрової клавіатури
- Збірка та тестування дверної блокування клавіатури Arduino
Часто нам потрібно забезпечити кімнату в нашому домі чи в офісі (можливо, таємну лабораторію Декстера), щоб ніхто не міг отримати доступ до кімнати без нашого дозволу та забезпечити захист від крадіжки або втрати наших важливих аксесуарів та майна. Сьогодні існує так багато типів систем безпеки, але за кадром всі вони для автентифікації передають відбитки пальців, сканер сітківки ока, сканер райдужної оболонки, ідентифікатор обличчя, сканер мови, RFID-зчитувач, пароль, шпильку, шаблони тощо. недорогий - використовувати пароль або систему на основі PIN-коду. Отже, у цьому проекті я створив дверний замок на клавіатурі Arduino, який можна встановити на будь-які ваші існуючі двері, щоб захистити їх цифровим паролем. Раніше ми також побудували інші цікаві дверні замки, які перелічені нижче.
- Дверний замок Arduino RFID
- Дверний замок Arduino Solenoid
- Блокування цифрового коду Raspberry Pi
- 555 Таймер електронний Дверний замок
Перш ніж створювати наш проект блокування дверей за допомогою пароля, спочатку нам потрібно зібрати необхідні компоненти, а потім продовжити і дотримуватися покрокового процесу побудови.
Список компонентів
- Плата Arduino Uno / Pro / Mini або на замовлення за допомогою мікроконтролера Atmega 328p
- 16 x 2 LCD (рідкокристалічний дисплей)
- Матрична клавіатура 4 x 3 або 4 x 4 для Arduino
- Серводвигун
- Шкафчик для дверей із 3D друком / індивідуальний шафка для дверей
- Додаткові компоненти для живлення мобільного зарядного пристрою на 5 А на 5 вольт
- Пластикові коробки розміром 4 '' / 6 '', дроти перемичок, болти з гайками, пластиковий кожух тощо.
Принципова схема для блокування дверей клавіатури Arduino
Повна електрична схема нашого проекту цифрового блокування клавіатури на основі Arduino наведена нижче.
Перш за все, ми починаємо з мозку цього проекту, який є дошкою Arduino UNO. Плата Arduino підключена до РК-дисплея та сервомотора. Сервомотор використовується для натискання (блокування) або витягування (розблокування) засувки на дверях. Для відображення повідомлення Arduino потрібен РК-дисплей 16 x 2, 16 x 2 означає, що він має 16 кількість стовпців і 2 кількість рядків. Якщо ви зовсім не знайомі з модулями РК-дисплея 16x2, ви можете ознайомитися з цим посібником з інтерфейсу Arduino LCD, щоб дізнатись більше про це.
Тут я використовую сервомотор 5v Towerpro SG90 для виготовлення нашого індивідуального шафки на двері. Це сервомотор базового рівня, який чудово працює з Arduino без будь-якої схеми керування або зовнішнього модуля. Крім того, вартість цього сервомотора набагато менша, тому ви можете легко дозволити його придбати. Ви також можете переглянути цей посібник з управління серводвигуном Arduino, щоб дізнатись більше про сервомотор і як він працює. Підключіть сервомотор до Arduino Digital pin D9 та до 5-вольтного джерела живлення. Цей сервомотор має загалом 3 вхідних лінії (GND, + 5V & SIGNAL LINE).
У цьому проекті я використовував матричну клавіатуру 4 x 4 (але частина клавіатури 4 x 4 недоступна для фризингу для створення цього графічного подання), але не хвилюйтеся, оскільки 4 x 3 Matrix клавіатура також чудово працює з моїм кодуванням. Нам потрібна клавіатура для введення пароля та блокування ручного шафки на замовлення вручну. Він складається з 16 клавіш (програмний перемикач), 4 клавіш у рядках (R1, R2, R3, R4) та 4 клавіш у стовпцях (C1, C2, C3, C4) при натисканні клавіші встановлює зв'язок між відповідними рядками і стовпці. У таблиці нижче показано, як підключити Arduino до клавіатури.
Клавіатура | Ардуїно |
Pin 1 (рядок 1) | Цифровий штифт1 |
Pin 2 (рядок 2) | Цифровий штифт 2 |
Pin 3 (рядок 3) | Цифровий штифт 3 |
Pin 4 (рядок 4) | Цифровий штифт 4 |
Pin 5 (стовпці 5) | Цифровий штифт 5 |
Pin 6 (стовпці 6) | Цифровий штифт 6 |
Pin 7 (стовпці 7) | Цифровий штифт 7 |
Код Arduino для дверного замка цифрової клавіатури
Повний код блокування дверей Arduino можна знайти внизу цієї сторінки. Ви можете завантажити код безпосередньо, але рекомендується прочитати наступні абзаци, щоб зрозуміти, як працює код. Крім того, важливо переконатися, що ви додали наступну бібліотеку клавіатури до своєї IDE Arduino для успішної компіляції коду. Для цього просто відкрийте посилання нижче та завантажте ZIP-файл. Потім на вашій IDE Arduino перейдіть до Sketch -> Include Library -> Add.ZIP Library і перегляньте файл, який ви щойно завантажили.
- Бібліотека клавіатури Arduino
Після вставлення всіх файлів заголовка та бібліотеки, призначте весь штифт для РК-дисплея та визначте довжину пароля та встановіть початкове положення сервоприводу на 0. Після цього візьміть тип даних "char" для оголошення номера, який може його утримувати, включаючи нульовий символ.
//#включати
За допомогою цього шматка коду (char Master = "123456";) - під Char Master я оголошую пароль дверного замка, потім призначаю кількість рядків і стовпців на клавіатурі, а також оголошую keyMaps і підключаюся до рядків і колонки. При налаштуванні порожнечі ініціалізуйте сервосигнальний штифт D9, статус сервоприводу закрито та надрукуйте назву проекту / пристрою / компанії з затримкою на 3 секунди на РК-екрані часу запуску пристрою.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Переглянути проект--"); затримка (3000); lcd.clear (); }
Під функцією циклу існує проста умова if-else. Відповідно до статусу (він блокується автоматично), надрукуйте «Дверцята закриті» із затримкою 3 секунди та сервоприводом поверніть у закрите положення, дані дверей рахуються як 1, інакше дверна шафка залишається відкритою, а кількість даних 0, сервовідкрита повертається у положення 0 градусів до 180 градусів, а для його закриття - від 180 до 0. Функції сервовідкриття та сервозакриття показані нижче.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// йде від 0 градусів до 180 градусів // з кроком 1 градус myservo.write (pos); // сказати сервоприводу перейти в положення зі змінною затримкою 'pos' (15); // чекає 15 мс, поки сервопривід досягне позиції}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// йде від 180 градусів до 0 градусів myservo.write (pos); // сказати сервоприводу перейти в положення зі змінною затримкою 'pos' (15); // чекає 15мс, поки сервопривід досягне позиції}}
Напишіть положення сервоприводу із затримкою 15 секунд, щоб досягти положення сервоприводу. За допомогою функції відкриття порожнечі надрукуйте на РК-дисплеї «Введіть пароль», тоді умова визначає, що введений пароль повинен бути однаковим із користувацьким ключем, всередині цього тіла дані підраховуються та зберігаються символ у масиві даних, збільшений та введений пароль, надрукований на РК-дисплеї, якщо довжина даних (кількість ключів) та пароль введення збігаються з Data Master (де є заздалегідь визначені ключі). Потім в якості діючого РК-дисплея, сервоприводу, надрукуйте на РК-дисплеї «Дверцята відкрито», і лічильник даних скидається на 0.
Якщо клавіша введення не збігається з Data Master, як дію на чіткому друку на РК-дисплеї на дисплеї “Неправильний пароль” повідомляється із затримкою на 1 секунду і залишається у заблокованому положенні з встановленим лічильником даних на 1 і продовжує цей процес у циклі.
if (data_count == Password_Lenght - 1) // якщо індекс масиву дорівнює кількості очікуваних символів, порівняйте дані з master {if (! strcmp (Data, Master)) // дорівнює (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Дверцята відкриті"); двері = 0; } ще {lcd.clear (); lcd.print ("Неправильний пароль"); затримка (1000); двері = 1; } очистити дані(); }
Збірка та тестування дверної блокування клавіатури Arduino
Тепер покладіть все на 4-дюймову / 6-дюймову пластикову коробку та зарядіть її мобільним зарядним пристроєм, гарненько вирівняйте все за допомогою корпусу. В ідеалі, я міг використати 3D-друк для складання свого замка, але після проектування своїх файлів я виявив, що 3D-друк є дуже дорогим, тому я просто зафіксував сервопривід, а потім підключив звичайний шафку із слайдом до мого сервоприводу за допомогою металевої пластини і покрив це зі скловолокном, хоча воно працює нормально, але воно менш надійне.
Якщо ви хочете отримати більший захист, вам доведеться надрукувати 3D-модель замка дверей, яка працює внутрішньо із цим сервоприводом. Ви можете завантажити необхідні файли STL за посиланням нижче і роздрукувати їх, якщо у вас є доступ до 3D-принтера.
Завантажте файли STL для 3D-друку
Файли дизайну також показані на малюнку нижче.
На початку проекту, в той момент, коли ми вмикаємо його вперше, нам потрібно вказати назву проекту (ви також можете вказати назву компанії), щоб він виглядав розумно та ексклюзивно, як комерційний пристрій (як ви можете бачити в малюнок нижче).
Затримавши 3 секунди, швидко зафіксуйте двері та безпосередньо перевірте дисплей на стан замка дверей, як показано на малюнку, наведеному нижче.
Коли ви вручну замикаєте двері, натискаючи клавішу "#", спочатку відображається, що двері закриті на 1 секунду, а потім відображається Enter Password. З іншого боку, коли двері розблоковуються шляхом введення правильного пароля, на ньому видно, що Двері відкрито.
Якщо дверцята залишаються в розблокованому стані, відображається - Дверцята відчинені, доки ви вручну зафіксуєте двері відповідно до кодування. Я дав код, і ви можете налаштувати параметри, змінивши параметр відображення коду за необхідності. Ви також можете перевірити повну роботу з відео, на яке посилається внизу цієї сторінки.