Проекты

Разработка кодового замка на базе микроконтроллера Ардуино

Работа призёра открытой городской научно-практической конференции «Курчатовский проект – от знаний к практике, от практики к результату» в секции «Идея»

Направление работы: Программирование
Авторы работы: ГБОУ Школа № 1363
Предметы: Информатика
Классы: 8 класс
Мероприятия: Открытая городская научно-практическая конференция «Курчатовский проект – от знаний к практике, от практики к результату» 2021 года

Актуальность

Кодовый замок – распространённое и эффективное средство защиты от несанкционированного доступа посторонних лиц. Достоинство – быстрая смена кода (что невозможно в случае обычного механического замка), отсутствие ключей, карточек и иных физических объектов, необходимых для отпирания.

Однако большинство кодовых замков, по мнению авторов проекта, недостаточно защищены от попыток подбора комбинаций.

Цель

Разработать механизм кодового замка с защитой от несанкционированного открытия и дополнительными функциями.

Задачи

  1. Изучить существующие аналоги.
  2. Разработать схему устройства и алгоритм его работы.
  3. Собрать и запрограммировать действующую модель замка в виртуальной среде проектирования.
  4. Реализовать физическую модель устройства.

Оснащение и оборудование, использованное при создании работы

  • Плата Arduino Uno
  • Матричная 16-кнопочная клавиатура
  • Жидкокристаллический дисплей (LCD) 1602
  • Сервопривод
  • Пьезодинамик
  • Датчик освещённости на основе фоторезистора
  • Светодиоды

Описание

Для реализации проекта было решено использовать плату Arduino Uno. В качестве клавиатуры было решено использовать матричную эластичную 16-кнопочную клавиатуру. Она водонепроницаема и достаточно тонкая, что позволяет использовать её в разных условиях. Клавиатура выполнена в виде матрицы 4×4, каждая кнопка является областью воздушного зазора между двумя диэлектрическими слоями с нанесённым на них токопроводящим покрытием.

Так как кодовый замок обладает расширенным набором функций, было решено использовать жидкокристаллический дисплей (LCD) 1602 для отображения коротких сообщений и для контроля ввода кодовой комбинации. Для регулировки яркости при проектировании в виртуальной среде Tinkercad вместе с дисплеем используется потенциометр. В дальнейшем от него было решено отказаться, так как при использовании кодового замка человеку будет не совсем удобно каждый раз подстраивать яркость. Для демонстрации механизма открывания и закрывания двери используется сервопривод. Также замок оснащён пьезоизлучателем звука (пьезодинамик). В качестве дополнительного устройства было решено использовать датчик освещённости на основе фоторезистора.

После сборки устройства автор приступил к этапу программирования.

В программе используются три библиотеки:

LiquidCrystal.h  для работы с ЖК-экраном

Keypad.h  для работы с клавиатурой

Servo.h  для управлением сервоприводом.

В каждой библиотеке содержится определённый код, поддерживающий функции управления соответствующим устройством.

Также были использованы и функции, созданные автором проекта: midiopen(), midiclose(), attention(). Эти функции содержат команды для воспроизведения мелодий.

Результаты работы/выводы

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

Перспективы использования результатов работы

В перспективе необходимо сократить число задействованных портов и продумать отдельное питание для отдельных элементов (например, освещения). Также необходимо предусмотреть возможность открывания замка «аварийным ключом», в случае если был забыт код, это можно реализовать, например, с использованием пульта управления. Такой пульт был бы удобен для пожилых жильцов, так как не требует запоминания комбинации.