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


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

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

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

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

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

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

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

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

Схема электронного замка на основе радиочастотных меток (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 секунд, после чего реле снова закрывается.

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

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

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

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

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