Электронный замок на основе радиочастотных меток (RFID) и Arduino

Наверняка многие из вас в отелях или где-нибудь в других местах уже встречались с электронными замками, которые можно открыть с помощью карты с радиочастотной идентификацией (RFID), без использования привычного механического ключа. Чтобы открыть такую дверь надо просто приложить карту к специальному считывающему устройству на двери – если код на карте разрешенный, то дверь откроется, если нет – дверь останется закрытой. В большинстве случаев механизм электронных замков в таких системах работает от напряжения 12 В, поэтому вы легко можете сконструировать такой замок для своего дома – и эта статья имеет целью научить вас делать это.

Внешний вид проекта электронного замка на основе радиочастотных меток (RFID) и Arduino

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

Необходимые компоненты

  1. Плата Arduino Uno.
  2. Модуль чтения радиочастотных меток EM-18 с картами (с метками).
  3. Реле 5v.
  4. Светодиод.
  5. Зуммер (Buzzer).
  6. Соединительные провода.
  7. Резисторы.

Внешний вид электронного замка на основе радиочастотных меток

Схема проекта

Схема электронного замка на основе радиочастотных меток (RFID) и Arduino представлена на следующем рисунке.

Схема электронного замка на основе радиочастотных меток (RFID) и ArduinoМодуль чтения радиочастотных меток EM-18 (RFID Reader)

Аббревиатура RFID означает Radio Frequency Identification и переводится как радиочастотная идентификация. Каждая карта с RFID имеет встроенный в нее уникальный идентификатор (ID), который можно считать с помощью модуля чтения радиочастотных меток. Модуль чтения радиочастотных меток EM-18 работает на частоте 125 кГц и имеет в своем составе встроенную в его чип антенну. Его можно запитать от напряжения 5 В. На своем выходе он обеспечивает последовательную передачу данных со скоростью 9600 бод/с, 8 бит данных и 1 стоповый бит. Диапазон действия модуля – 8-12 см.

На нашем сайте вы можете посмотреть следующие проекты, в которых использовалась радиочастотная идентификация:

На выход модуль EM-18 выдает данные в формате ASCII, 12 цифр. Первые 10 из этих 12 цифр представляют собой номер карты, а последние две цифры – результат выполнения операции XOR с номером карты. Они используются для проверки на ошибки.

Вид снаружи и внутри модуля чтения радиочастотных меток EM-18

Внешний вид карт с радиочастотными метками

К примеру, мы считали с карты число 0200107D0D62. Оно расшифровывается следующим образом:
02 – преамбула,
00107D0D – 1080589 в десятичном формате,
62 – результат выполнения операции XOR (02 XOR 00 XOR 10 XOR 7D XOR 0D).

Следовательно, на карте будет написан номер 0001080589.

Объяснение кода программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.

Номер радиочастотной метки (RFID tag number) мы будем сохранять в переменной “char tag”. К примеру, мы в нашем проекте использовали карту с номером метки «180088F889E1». Длина метки – 12 символов, поэтому нам необходимо объявить массив длиной 12 символов — “char input [12]”.

Как определить номер метки на вашей карте можно прочитать в обучающей статье по работе Arduino с RFID.

В следующем фрагменте кода мы устанавливаем режим работы (на вывод данных) используемых нами контактов и инициализируем последовательную связь со скоростью 9600 бод/с. Контакт 2 будет использоваться для управления реле, контакт 3 – для управления светодиодом красного цвета (он используется для индикации режима ожидания), а к контакту 4 подключен зуммер.

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

Также в функции void loop() мы будем непрерывно проверять поступают ли какие-либо данные по последовательному каналу связи. Если мы считали номер какой-нибудь карты с RFID мы будем сохранять его в массиве input[].

Затем мы будем сравнивать принятый номер карты с номером карты, который хранится у нас в массиве char tag[]. Если номера совпадают, то мы устанавливаем флаг в 1, если не совпадают – то в 0.

Если карта правильная, то флаг будет установлен в 1, в этом случае на контакт 2 будет подано напряжение высокого уровня (HIGH), а на контакт 3 – напряжение низкого уровня (low). Затем через 5 секунд на этих контактах будет восстановлено их исходное состояние. При подаче напряжения высокого уровня на контакт 2 сработает реле, которое откроет электронный замок, а через 5 секунд замок снова закроется.

Если вы поднесете к модулю чтения неправильную RFID карту, то флаг установится в 0, в результате чего начнет звучать сигнал зуммера.

Работа проекта

Наша система работы с радиочастотными (RFID) метками состоит из двух компонентов – из самих меток и модуля их чтения. Метка состоит из интегрированной в нее схемы и антенна. Схема служит для хранения данных, а антенна – для передачи данных модулю чтения меток. Когда радиочастотная метка оказывается в диапазоне действия модуля чтения меток, радиочастотный сигнал запитывает электронную схему метки и метка начинает последовательно передавать данные. Эти данные принимаются модулем чтения меток и затем в нашем проекте передаются в плату Arduino. В зависимости от номера принятой метки плата Arduino выполняет соответствующие действия.

Тестирование работы проекта электронного замка

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

Если к модулю чтения меток подносится карта с неправильным номером будет срабатывать зуммер. Открывающее напряжение на реле подается только на 5 секунд, после чего реле снова закрывается.

Исходный код программы

Видео, демонстрирующее работу электронного замка с радиочастотными метками

(Проголосуй первым!)
Загрузка...
125 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *