- Список компонентов
- Принципиальная схема дверного замка с клавиатурой Arduino
- Код Arduino для дверного замка с цифровой клавиатурой
- Сборка и тестирование дверного замка с клавиатурой Arduino
Часто нам необходимо защитить комнату в нашем доме или офисе (возможно, секретную лабораторию Декстера), чтобы никто не мог получить доступ к комнате без нашего разрешения, и обеспечить защиту от кражи или потери наших важных аксессуаров и активов. Сегодня существует так много типов систем безопасности, но негласно, для аутентификации все они используют отпечатки пальцев, сканер сетчатки глаза, сканер радужной оболочки глаза, идентификатор лица, сканер языка, считыватель RFID, пароль, пин-код, шаблоны и т. Д. самый дешевый - использовать систему на основе пароля или PIN-кода. Итак, в этом проекте я построил дверной замок с клавиатурой Arduino, который можно установить на любую из ваших дверей, чтобы защитить их цифровым паролем. Ранее мы также построили другие интересные дверные замки, которые перечислены ниже.
- Дверной замок Arduino RFID
- Электромагнитный дверной замок Arduino
- Цифровой кодовый замок Raspberry Pi
- 555 Таймер электронный дверной замок
Перед созданием нашего проекта блокировки двери с паролем, сначала нам нужно собрать необходимые компоненты, а затем продолжить и выполнить пошаговый процесс сборки.
Список компонентов
- Плата Arduino Uno / Pro / Mini или Custom с использованием микроконтроллера Atmega 328p
- ЖК-дисплей 16 x 2 (жидкокристаллический дисплей)
- Матричная клавиатура 4 x 3 или 4 x 4 для Arduino
- Серводвигатель
- Дверной шкафчик с 3D-печатью / индивидуальный дверной шкафчик
- Дополнительные компоненты для питания мобильного зарядного устройства 1 А 5 Вольт
- Пластиковые коробки 4 '' / 6 '', перемычки, гайки, болты, пластиковый корпус и т. Д.
Принципиальная схема дверного замка с клавиатурой Arduino
Полная принципиальная схема для нашего проекта дверного замка с цифровой клавиатурой на базе Arduino показана ниже.
Прежде всего, мы начнем с мозга этого проекта, который является платой Arduino UNO. Плата Arduino подключена к ЖК-дисплею и серводвигателю. Серводвигатель используется для нажатия (блокировки) или вытягивания (разблокировки) защелки на двери. Для отображения сообщения Arduino требуется ЖК-дисплей 16 x 2, 16 x 2 означает, что он имеет 16 столбцов и 2 строки. Если вы совершенно не знакомы с модулями ЖК-дисплея 16x2, вы можете проверить это руководство Arduino LCD Interfacing, чтобы узнать о нем больше.
Здесь я использую серводвигатель Towerpro SG90 5 В для изготовления нашего индивидуального дверного шкафчика. Это серводвигатель базового уровня, который отлично работает с Arduino без какой-либо схемы управления или внешнего модуля. Кроме того, стоимость этого серводвигателя очень низкая, поэтому вы можете легко позволить себе его купить. Вы также можете проверить это руководство по управлению серводвигателем Arduino, чтобы узнать больше о серводвигателе и о том, как он работает. Подключите серводвигатель к цифровому контакту D9 Arduino и к источнику питания 5 вольт. Этот серводвигатель имеет в общей сложности 3 входные линии (GND, + 5V и SIGNAL LINE).
В этом проекте я использовал матричную клавиатуру 4 x 4 (но часть клавиатуры 4 x 4 недоступна во fritzing для создания этого графического представления), но не беспокойтесь, поскольку матричная клавиатура 4 x 3 также отлично работает с моим кодированием. Нам нужна клавиатура для ввода пароля и ручной блокировки нашего индивидуального дверного шкафчика. Он состоит из 16 клавиш (программный переключатель), 4 клавиш в строках (R1, R2, R3, R4) и 4 клавиш в столбцах (C1, C2, C3, C4) при нажатии клавиши устанавливается соединение между соответствующими строками. и столбцы. В таблице ниже показано, как подключить Arduino к клавиатуре.
Клавиатура | Ардуино |
Пин 1 (ряд 1) | Цифровой контакт 1 |
Пин 2 (2 ряд) | Цифровой контакт 2 |
Пин 3 (ряд 3) | Цифровой контакт 3 |
Пин 4 (ряд 4) | Цифровой контакт 4 |
Контакт 5 (столбцы 5) | Цифровой вывод 5 |
Контакт 6 (столбцы 6) | Цифровой контакт 6 |
Контакт 7 (столбцы 7) | Цифровой вывод 7 |
Код Arduino для дверного замка с цифровой клавиатурой
Полный код дверного замка Arduino можно найти внизу этой страницы. Вы можете напрямую загрузить код, но рекомендуется прочитать следующие абзацы, чтобы понять, как работает код. Кроме того, важно убедиться, что вы добавили следующую библиотеку клавиатуры в свою Arduino IDE для успешной компиляции кода. Для этого просто откройте ссылку ниже и загрузите ZIP-файл. Затем в Arduino IDE перейдите в Sketch -> Include Library -> Add.ZIP Library и найдите файл, который вы только что загрузили.
- Библиотека клавиатуры Arduino
После вставки всех файлов заголовков и библиотек назначьте все выводы для ЖК-дисплея, определите длину пароля и установите начальную позицию сервопривода равной 0. После этого возьмите тип данных «char» для объявления числа, которое может содержать его, включая нулевой символ.
//#включают
С помощью этого фрагмента кода (char Master = "123456";) - в Char Master я объявляю пароль дверного замка, затем назначаю количество строк и столбцов на клавиатуре, а также объявляю keyMaps и соединяюсь со строками и столбцы. При настройке void инициализируйте вывод сервосигнала D9, состояние сервопривода закрыто и напечатайте название проекта / устройства / компании с 3-секундной задержкой на ЖК-дисплее времени запуска устройства.
установка void () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print («Дверь Arduino»); 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' delay (15); // ожидает 15 мсек, пока сервопривод достигнет позиции}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// переходит от 180 градусов к 0 градусов myservo.write (pos); // сообщаем сервоприводу перейти в позицию в переменной 'pos' delay (15); // ждем 15 мс, пока сервопривод достигнет позиции}}
Запишите положение сервопривода с 15-секундной задержкой для достижения положения сервопривода. При использовании функции открытия void напечатайте на ЖК-дисплее «Введите пароль», тогда условие указывает, что введенный пароль должен совпадать с пользовательским ключом, в этом теле данные подсчитываются и сохраняют символ в массиве данных, увеличивают и вводят пароль, напечатанный на ЖК-дисплее, если длина данных (количество ключей) и входной пароль совпадают с 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, если у вас есть доступ к 3D-принтеру.
Загрузите файлы STL для 3D-печати
Файлы дизайна также показаны на картинке ниже.
В начале проекта, когда мы включаем его в первый раз, нам нужно дать название проекта (вы также можете отобразить название компании), чтобы он выглядел умным и эксклюзивным, как коммерческое устройство (как вы можете видеть на рисунок ниже).
С задержкой в 3 секунды быстро заприте дверь и сразу проверьте состояние дверного замка на дисплее, как показано на рисунке ниже.
Когда вы вручную блокируете дверь, нажимая клавишу «#», сначала отображается сообщение « Дверь закрыта на 1 секунду», а затем отображается « Введите пароль». С другой стороны, когда дверь открывается путем ввода правильного пароля, отображается сообщение « Дверь открыта».
Если дверь остается в разблокированном состоянии, отображается сообщение - Дверь открыта, пока вы вручную запираете дверь в соответствии с кодировкой. Я предоставил код, и вы можете настроить параметры, изменив параметр отображения кода по мере необходимости. Вы также можете проверить полную работу с видео, указанным внизу этой страницы.