Взгляните на классический RFID замок (Radio Frequency IDentification, RFID, РЧИД, радиочастотная идентификация). Раньше он был вестником далекого будущего, теперь он стал чем-то обыденным. В этой статье вы узнаете, как сделать электронный замок на Ардуино, который откроется по мановению РЧИД-карты!
Мы запрограммируем список катр-«ключей», которые будут открывать замок определённый период времени. Хотя проект достаточно простой, нужно будет немного переделать дверной косяк, поэтому будьте готовы поработать с деревом, если хотите, чтобы запорная планка была утоплена максимально.
Содержание статьи
Шаг 1: Список компонентов
Здесь список рекомендованных для этого проекта компонентов, если хотите, можете взять другую модификацию контроллера, реле или совместимые РЧИД-чипы, но лучше взять RFIDuino Shield, чтобы код, который будет дан ниже работал без осечек.
- RFIDuino Shield V1.2 шилд с антенной
- Geekduino или другой совместимый с Arduino микроконтроллер
- RobotGeek Relay Board релейная панель
- Врезной соленоидный электронный замок или электромеханическая защелка (не забывайте, что я даю вам только примеры возможных компонентов, они могут не подойти конкретно вашей двери. Когда будете выбирать электромеханическую защелку, обратите внимание на пометку NO (normally open – блокировка в открытом положении. Это значит, что при открытом положении защелки ваша дверь фиксируется и вы можете не бояться отключения электричества)
- 3хконтактный провод для датчика
- 6В блок питания
- подходящий блок питания для соленоидного замка (в случае с подключаемым к сети замком нужен 12В блок)
- провод микро-USB для вашего Geekduino или другого совместимого с Arduino микроконтроллера
- совместимые РЧИД-чипы
- коннектор-разветвитель для микроконтроллеров с креплением разъема на панели
- соединительный изолирующий зажим, изолента, припой
Хочу упомянуть, что соленоидный замок требует дополнительного питания для открывания двери. Если произойдет отключение электричества (при подключении к сети), вы можете не попасть в свою комнату, пока снова не дадут электричество. При использовании электромеханической защелки вы сможете открыть дверь обычным ключом, если отключат электричество. Выбор за вами.
Шаг 2: Определяем идентификаторы
Подключите ваш RFIduino как показано на схеме.
Откройте программу [RFIDuino_helloworld] на компьютере. Этот скетч вы можете найти здесь:
File>Examples>RFIDuino>RFIDuino_helloworld
Вы должны убедиться, что код подходит для вашего шилда RFIduino.
- Для 1,2В шилдов (антенна с двумя выводами, на плате напечатан номер версии REV 1.2) нужен следующий код:
RFIDuino myRFIDuino(1.2); //initialize an RFIDuino object for hardware version 1.2
- Для 1,1В шилдов (антенна с четырьмя выводами, отсутствует номер версии на плате) нужен следующий код:
RFIDuino myRFIDuino(1.1); //initialize an RFIDuino object for hardware version 1.1
Оба кода доступны в скетче программы RFIDuino_helloworld, просто раскомментируйте ненужный код. Соедините ваш компьютер и Geekduino кабелем микро-USB. Загрузите RFIDuino_helloworld3 на вашу плату, с помощью кнопки загрузки в программе Arduino IDE.
После загрузки не отсоединяйте USB-кабель от компьютера, по нему будет идти питание на плату и проходить обмен данными с компьютером.
Откройте последовательный монитор
Tools -> Serial Monitor
Последовательному монитору оставьте дефолтные настройки («Нет конца строки», 9600 бод).
Пронесите чип над антенной. Должен загореться зеленый огонек и раздаться звуковой сигнал.
На последовательном мониторе появятся пять чисел, они являются идентификационным номером (идентификатором) вашей метки.
Скопируйте номер для дальнейшего использования. Возможно, будет удобнее записать его на стикере. Для следующего шага вам понадобится как минимум один идентификатор.
Шаг 3: Подключаем соленоидный электронный замок и активируем карты к нему
Соедините компоненты в указанном (на рисунке) порядке.
Откройте RFIDuino_demo3_lockbox_multi на вашей плате/компьютере, адресный путь к нему:
File>Examples>RFIDuino>RFIDuino_demo3_lockbox_multi
Убедитесь, что код подходит для комплектующих вашего RFIduino.
- Для 1,2В шилдов (антенна с двумя выводами, на плате напечатан номер версии REV 1.2) нужен следующий код:
RFIDuino myRFIDuino(1.2); //initialize an RFIDuino object for hardware version 1.2
- Для 1,1В шилдов (антенна с четырьмя выводами, отсутствует номер версии на плате) нужен следующий код:
RFIDuino myRFIDuino(1.1); //initialize an RFIDuino object for hardware version 1.1
Оба кода есть в скетче RFIDuino_demo3_lockbox_multi, ненужный код раскомментируйте.
1,2В шилд идет в комплекте с набором апппаратуры для экспериментирования (RFID Experimenter’s Kit).
Измените код в соответствии с числом РЧИД-карт у вас на руках. Для этого редактируйте строку 58. Например, если у вас три карты, вам нужно написать:
#define NUMBER_OF_CARDS 3 //total numer of key cards that the system will respond to
Также вам нужно изменить скетч, чтобы учесть идентификаторы меток, которые вы хотите активировать. Эти идентификаторы находятся с помощью программы Hello World, найдите блок кодов, начинающийся на строке 62, он выглядит так:
byte keyTag[NUMBER_OF_CARDS][5] ={ {0,0,0,0,0}, //Tag 1 //commenting each tag with a description can help you keep track of them {0,0,0,0,0}, //Tag 2 {0,0,0,0,0}, //Tag 3 {0,0,0,0,0},//Tag 4 };
Внесите идентификаторы ваших меток. Допустим, у вас три метки, тогда ваш код будет выглядеть так:
byte keyTag[NUMBER_OF_CARDS][5] ={ {77,0,44,22,242}, //Tag 1 //commenting each tag with a description can help you keep track of them {200,1,4,98,236}, //Tag 2 {23,64,4,25,1}, //Tag 3 };
Соедините компьютер и Geekduino кабелем микро-USB. Загрузите RFIDuino_demo3_lockbox_multi на вашу плату с помощью кнопки загрузки в программе Arduino IDE. После загрузки отсоедините кабель микро-USB от компьютера.
Пронесите любую из меток-ключей над антенной RFIDuino. Загорится зеленый огонек и раздастся звуковой сигнал из трех разных нот. Также сработает соленоид замка.
Пронесите любую метку, не являющуюся ключом, над антенной RFIDuino. Загорится красный огонек, раздастся тройной звуковой сигнал на одной ноте. Соленоид не отреагирует.
Шаг 4: Монтируем замок
После того, как правильно запрограммируете электромеханический замок, и он будет узнавать карты-ключи, можно устанавливать его в дверной косяк. У нас дверь с металлическим косяком и стеклянным полотном, поэтому я просто закрепил считыватель чипов за стеклом. Возможно, вы захотите установить антенну в корпус, защищающий от непогоды, для удобства доступа, и оставить микроконтроллер и всю электронику в помещении для безопасности.
По установке электронной врезной планки есть много инструкций в открытом доступе. Могу лишь посоветовать устанавливать планку так плотно к стене, как это возможно, и быть осторожными с протягиванием проводов через стену.
Шаг 5: Установленный замок
Теперь, когда у вас есть микроконтроллер, отвечающий за пропуск в дом, вы можете придумать, что к нему можно добавить. Например, клавиатуру для введения кодовой комбинации, или встроенного Bluetooth-модуля, чтобы открывать дверь смартфоном – вариантов множество.