Как сделать копию ключа для домофона в домашних условиях

Запись на NFC метку

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

Этот код сохраняет в метке три сообщения: вводный текст, говорящий “My First NFC Tag Write”, затем ссылка на сайт AllAboutCircuits и, наконец, завершающее сообщение, говорящее “Way to Go, It Worked!”.

Чтение результата записи, произведенной на NFC метку платой Arduino, с помощью Nexus 5

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

Интересных вам проектов на Arduino с использованием NFC! Надеюсь, статья оказалась полезной. Оставляйте, комментарии!

Шаг 2: RFID-считыватель RC522

В каждой метке RFID есть небольшой чип (на фото белая карточка). Если направить фонарик на эту RFID-карту, можно увидеть маленький чип и катушку, которая его окружает. У этого чипа нет батареи для получения мощности. Он получает питание от считывателя беспроводным образом используя эту большую катушку. Можно прочитать RFID-карту, подобную этой, с расстояния до 20 мм.

Тот же чип существует и в тегах RFID-брелка.

Каждый тег RFID имеет уникальный номер, который идентифицирует его. Это UID, который показывается на OLED-дисплее. За исключением этого UID, каждый тег может хранить данные. В этом типе карт можно хранить до 1 тысячи данных. Впечатляет, не так ли? Эта функция не будет использована сегодня. Сегодня все, что интересует, — это идентификация конкретной карты по ее UID. Стоимость RFID-считывателя и этих двух карт RFID составляет около 4 долларов США.

Building The Housing Case/Box

For this project, I wanted to create a custom case to house all of the components neatly and keep them free of damage.

I have designed a box using SketchUp, which has a user-friendly interface with simple buttons like Eraser, Lines, and Tape Measure Tool.

The dimensions of the box is 120x125x37 mm.

If you’re not familiar with Sketchup, I recommend you go through some SketchUp tutorials here.

Figure 10: Housing case (top view)

Figure 11: Housing case (bottom view)

When I designed the box, I took these dimensions into consideration:

  • Top view:

    • 2 openings for the LEDs (5.2 mm)
    • 1 opening for LCD (42.2×7.3 mm)
    • 1 opening for cable (16×10.5 mm)
  • Bottom view:

    1 opening for keypad (27×10 mm)

After I measured the dimensions of the components, I designed a box that’s rather compact. Feel free to change the design to your preference.

Figure 12: Complete housing case with modules placed inside

RC522 RFID Module Pinout

The RC522 module has total 8 pins that interface it to the outside world. The connections are as follows:

VCC supplies power for the module. This can be anywhere from 2.5 to 3.3 volts. You can connect it to 3.3V output from your Arduino. Remember connecting it to 5V pin will likely destroy your module!

RST is an input for Reset and power-down. When this pin goes low, hard power-down is enabled. This turns off all internal current sinks including the oscillator and the input pins are disconnected from the outside world. On the rising edge, the module is reset.

GND is the Ground Pin and needs to be connected to GND pin on the Arduino.

IRQ is an interrupt pin that can alert the microcontroller when RFID tag comes into its vicinity.

MISO / SCL / Tx pin acts as Master-In-Slave-Out when SPI interface is enabled, acts as serial clock when I2C interface is enabled and acts as serial data output when UART interface is enabled.

MOSI (Master Out Slave In) is SPI input to the RC522 module.

SCK (Serial Clock) accepts clock pulses provided by the SPI bus Master i.e. Arduino.

SS / SDA / Rx pin acts as Signal input when SPI interface is enabled, acts as serial data when I2C interface is enabled and acts as serial data input when UART interface is enabled. This pin is usually marked by encasing the pin in a square so it can be used as a reference for identifying the other pins.

Подключение

Некоторые столкнуться с проблемой — название пинов в большинстве уроков и руководств может не соответствовать распиновке на вашем модуле. Если в скетчах указан пин SS, а на вашем модуле его нет, то скорее всего он помечен как SDA. Ниже я приведу таблицу подключения модуля для самых распространенных плат.

MFRC522

Arduino Uno

Arduino Mega

Arduino Nano v3

Arduino Leonardo/
Micro

Arduino Pro Micro

RST

9

5

D9

RESET/ICSP-5

RST

SDA(SS)

10

53

D10

10

10

MOSI

11 (ICSP-4)

51

D11

ICSP-4

16

MISO

12 (ICSP-1
)

50

D12

ICSP-1

14

SCK

13 (ICSP-3)

52

D13

ICSP-3

15

3.3V

3.3V

3.3V

Стабилизатор 3,3В

Стабилизатор 3,3В

Стабилизатор 3,3В

GND

GND

GND

GND

GND

GND

Исходный код программы (скетча)

Скетч очень простой — надеемся что он не вызовет у вас затруднений.

Arduino

#include <rdm6300.h>
#define RDM6300_RX_PIN 2
#define READ_LED_PIN 13
Rdm6300 rdm6300;
void setup()
{
Serial.begin(9600);
pinMode(READ_LED_PIN, OUTPUT);
digitalWrite(READ_LED_PIN, LOW);
rdm6300.begin(RDM6300_RX_PIN);
Serial.println(«\nPlace RFID tag near the rdm6300…»);
}
void loop()
{
/* если номер метки не равен нулю, то функция update() возвратит true – значит к модулю поднесена корректная метка */
if (rdm6300.update())
Serial.println(rdm6300.get_tag_id(), HEX);
digitalWrite(READ_LED_PIN, rdm6300.is_tag_near());
delay(10);
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include <rdm6300.h>
#define RDM6300_RX_PIN 2
#define READ_LED_PIN 13

Rdm6300rdm6300;

voidsetup()

{

Serial.begin(9600);

pinMode(READ_LED_PIN,OUTPUT);

digitalWrite(READ_LED_PIN,LOW);

rdm6300.begin(RDM6300_RX_PIN);

Serial.println(«\nPlace RFID tag near the rdm6300…»);

}

voidloop()

{

/* если номер метки не равен нулю, то функция update() возвратит true – значит к модулю поднесена корректная метка */

if(rdm6300.update())

Serial.println(rdm6300.get_tag_id(),HEX);

digitalWrite(READ_LED_PIN,rdm6300.is_tag_near());

delay(10);

}

Шаг 3. Основные характеристики:

  • Входное напряжение: 3.3 В
  • Частота: 13,56 МГц

Прежде чем начать писать код, вам необходимо скачать библиотеку для этого датчика из этого хранилища.

Извлеките содержимое из zip-папки «rfid-master» и добавьте эту папку с библиотекой в существующие библиотеки Arduino IDE.

После этого перезапустите Arduino IDE.

Теперь наш Arduino готов воспринимать команды и выполнять их првильно.

Код Arduino будет представлен в конце этого урока. Скомпилируйте код и исправьте ошибки «опечатки» (если есть).

Теперь пришло время подключить наш Arduino к считывателю RFID. Ознакомьтесь с правильным подключением контактов ниже, а также воспользовавшись принципиальной схемой подлючения.

Виды домофонных ключей

Все ключи делятся на контактные и бесконтактные. Магнитные ключи для домофонов вышли из обихода из-за постоянных сбоев. До сих пор такая система встречается в банках, где вход осуществляется по намагниченным картам.

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

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

RFID Nedir?

Açılımı Radio Frequency Identification yani radyo frekansı ile tanımlamadır. RFID teknolojisi nesnelerin radyo dalgaları kullanılarak tanınması için kullanılan teknolojidir. Günlük hayatımızda toplu taşıma biletlerinde, işyeri ve okul girişlerindeki turnikelerde karşımıza sıklıkla çıkmaktadır. Arduino ile RFID projelerini incelediğimizde kapı kilidi, bir ortamda bulunan kişi sayısı bilgisinin alınması, bilgisayar oturum kilidi, alarm sistemi gibi projelerle sıklıkla karşılaşabilirsiniz. Kablosuz haberleşme teknolojileri ile ilgili daha fazla bilgi edinmek isterseniz, Kablosuz Haberleşme Teknolojileri yazımızı okuyabilirsiniz.

RFID Kart Okuyucular – RFID Kart Okuma Yazma İşlemi

Kullandığımız kartların kendilerine ait UID isimli bir numarası vardır. Bu numara, her kart için farklıdır. Okuyucumuza kartımızı veya anahtarlığımızı yaklaştırdığımızda bu numara okunarak işlem yapılır.

RC522 RFID modülü haricinde başka birçok RFID kart okuyucu modül piyasada bulunmaktadır. HZ-1050 RFID Kart okuyucu modülü 125 kHz frekansında çalışmaktadır. Arduino ve birçok mikro kontrolcü ile çalışabilir, Raspberry Pi ile rahatlıkla proje geliştirmek mümkündür. RDM6300 modülü ofis/ev güvenliği, kişisel kimlik ve erişim kontrolü, anti-sahtecilik ve üretim kontrol sistemleri gibi pek çok alanda kullanılmaktadır. Grove modülü ise 7 cm mesafeye kadar algılama yapabilen RFID modülüdür.

Sitemizdeki tüm RF kart okuyuculara ve kablosuz haberleşme sistemlerine buradan ulaşabilirsiniz.

Compatible boards

!!!Only for advanced users!!!

This library is compatible with the Teensy and ESP8266 if you use the board plugin of the Arduino IDE. Not all examples are available for every board. You also have to change pins. See .

Some user made some patches/suggestions/ports for other boards:

  • Linux: https://github.com/miguelbalboa/rfid/pull/216
  • chipKIT: https://github.com/miguelbalboa/rfid/pull/230
  • ESP8266 (native): https://github.com/miguelbalboa/rfid/pull/235
  • LPCOPen (in C): https://github.com/miguelbalboa/rfid/pull/258

Note that the main target/support of library is still Arduino.

Считыватель RFID меток RC522

Сейчас на рынке доступно достаточно много моделей считывателей RFID меток, однако для нашего проекта мы выбрали модуль RC522, работающий по интерфейсу SPI. Это достаточно дешевое устройство, доступное для покупки практически во всех магазинах радиоэлектроники. Модуль RC522 имеет интерфейсы SPI, UART и I2C, однако по умолчанию он использует интерфейс SPI. Внешний вид данного модуля показан на следующем рисунке.

В этом проекте модуль RC522 подключен к плате Arduino, а плата Arduino подключена к компьютеру. Когда RFID метку подносят к модулю RC522, плата Arduino с его помощью считывает идентификатор RFID метки (ID number) и передает его в компьютер.

Шаг 3: OLED-дисплей

В уроке используется OLED-монитор 0.96′ 128×64 I2C.

Это очень хороший дисплей для использования с Arduino. Это дисплей OLED и это означает, что он имеет низкое энергопотребление. Потребляемая мощность этого дисплея составляет около 10-20 мА, и это зависит от количества пикселей.

Дисплей имеет разрешение 128 на 64 пикселя и имеет крошечный размер. Существует два варианта отображения. Один из них монохромный, а другой, как тот, который использован в уроке, может отображать два цвета: желтый и синий. Верхняя часть экрана может быть только желтой, а нижняя часть – синей.

Этот OLED-дисплей очень яркий и у него отличная и очень приятная библиотека, которую разработала компания Adafruit для этого дисплея. В дополнение к этому дисплей использует интерфейс I2C, поэтому соединение с Arduino невероятно простое.

Вам нужно только подключить два провода, за исключением Vcc и GND. Если вы новичок в Arduino и хотите использовать недорогой и простой дисплей в вашим проекте, начните с этого.

RFID and Arduino

So that’s the basic working principle and now let’s see how we can use RFID with Arduino and build our own RFID door lock. We will use tags that are based on the MIFARE protocol and the MFRC522 RFID reader, which cost just a couple of dollars.

These tags have 1kb of memory and have a microchip that can do arithmetic operations. Their operating frequency is 13.56 MHz and the operating distance is up to 10 cm depending on the geometry of antenna. If we bring one of these tags in front of a light source we can notice the antenna and the microchip that we previously talked about.

As for the RFID reader module, it uses the SPI protocol for communication with the Arduino board and here’s how we need to connect them. Please note that we must connect the VCC of the module to 3.3V and as for the other pins we don’t have to worry as they are 5V tolerant.

Once we connect the module we need to download the MFRC522 library from GitHub. The library comes with several good examples from which we can learn how to use the module.

First we can upload the “DumpInfo” example and test whether our system works properly. Now if we run the Serial Monitor and bring the tag near the module, the reader will start reading the tag and all information from the tag will be displayed on the serial monitor.

Here we can notice the UID number of the tag as well as the 1 KB of memory which is actually divided into 16 sectors, each sector into 4 blocks and each block can store 2 bytes of data. For this tutorial we won’t use any of the tag’s memory, we will just use the UID number of the tag.

Как подключить RFID считыватель RC522 к Arduino

В этой статье мы рассмотрим подключение к Arduino считывателя карт и брелоков RFID RC522, работающего на частоте 13,56 МГц.

Модуль RFID-RC522 выполнен на микросхеме MFRC522 фирмы NXP. Эта микросхема обеспечивает двухстороннюю беспроводную (до 6 см) коммуникацию на частоте 13,56 МГц.

Беспроводной модуль RFID-RC522

Микросхема MFRC522 поддерживает следующие варианты подключения:

SPI (Serial Peripheral Interface, последовательный интерфейс для связи периферийных устройств) до 10 Мбит/сек;
двухпроводной интерфейс I2C до 3400 кбод в режиме High-speed,до 400 кбод в режиме Fast;
последовательный UART (аналог RS232) до 1228,8 кбод.

С помощью данного модуля можно записывать и считывать данные с различных RFID-меток: брелоков от домофонов, пластиковых карточек-пропусков и билетов на метро и наземный транспорт, а также набирающих популярность NFC-меток.

RFID – это сокращение от “Radio Frequency IDentification” и переводится как «радиочастотная идентификация». NFC – это “Near field communication”, «коммуникация ближнего поля» или «ближняя бесконтактная связь».

2Схема подключения RFID-RC522 к Arduino

Подключим модуль RFID-RC522 к Arduino по интерфейсу SPI по приведённой схеме.

Схема подключения RFID-RC522 к Arduino по интерфейсу SPI

Питание модуля обеспечивается напряжением от 2,5 до 3,3 В. Остальные выводы подключаем к Arduino так:

RST D9
SDA (SS) D10
MOSI D11
MISO D12
SCK D13

Не забывайте также, что Arduino имеет специальный разъём ICSP для работы по интерфейсу SPI. Его распиновка также приведена на иллюстрации. Можно подключить выводы RST, SCK, MISO, MOSI и GND модуля RC522 к разъёму ICSP на Ардуино.

3Библиотека для работы Arduino с RFID

Микросхема MFRC522 имеет достаточно обширную функциональность. Познакомиться со всеми возможностями можно изучив её паспорт (datasheet). Мы же для знакомства с возможностями данного устройства воспользуемся одной из готовых библиотек, написанных для работы Arduino с RC522. Скачайте её и распакуйте в директорию Arduino IDE\libraries\

Установка библиотеки “rfid-master” для работы Arduino с RFID-метками

После этого запустите среду разработки Arduino IDE.

4Скетч для считывания информации, записанной на RFID-метке

Теперь давайте откроем скетч из примеров: Файл Образцы MFRC522 DumpInfo и загрузим его в память Arduino.

Открываем скетч DumpInfo

Данный скетч определяет тип приложенного к считывателю устройства и считывает данные, записанные на RFID-метке или карте, а затем выводит их в последовательный порт.

#include #include const int RST_PIN = 9; // пин RST const int SS_PIN = 10; // пин SDA (SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // создаём объект MFRC522 void setup() { Serial.begin(9600); // инициализация послед. порта SPI.begin(); // инициализация шины SPI mfrc522.PCD_Init(); // инициализация считывателя RC522 } void loop() { // Ожидание прикладывания новой RFID-метки: if ( ! mfrc522.PICC_IsNewCardPresent()) { return; // выход, если не приложена новая карта } // Считываем серийный номер: if ( ! mfrc522.PICC_ReadCardSerial()) { return; // выход, если невозможно считать сер. номер } // Вывод дампа в послед. порт: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

Текст скетча достаточно хорошо прокомментирован.

https://youtube.com/watch?v=RTALzXLAX8U

Для более полного знакомства с библиотекой изучите файлы MFRC522.h и MFRC522.cpp из директории rfid-master.

5Дамп данных с RFID-метки

Запустим монитор последовательного порта сочетанием клавиш Ctrl+Shift+M, через меню Инструменты или кнопкой с изображением лупы. Теперь приложим к считывателю билет метро или любую другую RFID-метку. Монитор последовательного порта покажет данные, записанные на RFID-метку или билет.

Считываем данные с билета на наземный транспорт и метро с помощью RFID

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

Примечание

Да, с помощью модуля RFID-RC522 можно записать данные на билет метро.

Но не обольщайтесь, каждая карта имеет неперезаписываемый счётчик циклов записи, так что «добавить» поездок себе на метро не получится – это сразу будет обнаружено и карта будет забракована турникетом А вот использовать билеты метро для записи на них небольших объёмов данных – от 1 до 4 кб – можно. И способы применения этому ограничены только вашей фантазией.

Модуль чтения RFID меток RDM6300 (EM4100)

Модуль RDM6300 (EM4100) предназначен для чтения и записи информации на метки, работающие на частоте 125 кГц. Он может использоваться в системах наблюдения и безопасности, персональной аутентификации, контроля доступа, цифровых игрушках и во многих других приложениях. Модуль RDM6300 представляет собой бесконтактную RFID плату, содержащую радиоприемник и встроенный микроконтроллер. Используя высокоэффективный алгоритм декодирования модуль может считывать RFID метки типа EM4100 и совместимые с ними метки. Модуль RDM6300 использует последовательную связь со скоростью 9600 бод (в логике TTL) для передачи данных от RFID меток, поэтому для считывания данных с данного модуля можно использовать любой микроконтроллер, имеющий UART (universal asynchronous receiver / transmitter — универсальный асинхронный приемопередатчик).

Назначение контактов (распиновка) модуля RDM6300 представлена в следующей таблице.

Название контакта Назначение контакта
5V питающее напряжение
GND общий провод (земля)
RX контакт приема данных
TX контакт передачи данных
ANT1 контакт для подключения антенны
ANT2 контакт для подключения антенны

Технические характеристики модуля чтения RFID меток RDM6300:

  • рабочая частота: 125 кГц;
  • скорость передачи данных: 9600 бод;
  • интерфейс: RS232 с логикой TTL;
  • рабочее напряжение: 5 В постоянного тока;
  • рабочий ток: <50mA;
  • расстояние приема (считывания) данных: 20~50mm;
  • размеры (мм): 38.5 x 20;
  • вес: 7 г.

Модуль чтения RFID меток RDM6300 по принципу действия очень похож на модуль EM-18 – оба они работают на частоте 125 кГц и поддерживают интерфейс RS232/TTL. А, к примеру, рабочая частота для другого популярного RFID модуля RC522 составляет 13,56 кГц.

Установка блокировки/разблокировки компьютера с помощью RFID

После сборки схемы проекта подключите плату Arduino к компьютеру. Определите COM порт компьютера, к которому подключилась плата Arduino – это можно сделать либо с помощью диспетчера устройств Windows, либо с помощью Arduino IDE как показано на следующем рисунке. В нашем случае плата Arduino оказалась подключенной к COM порту под номером 1.

После этого в плату Arduino необходимо загрузить код программы для работы с модулем RC522 – он приведен в конце статьи. После загрузки кода программы в плату откройте окно монитора последовательной связи (serial monitor). Затем прислоните RFID метку к модулю RC522, после чего вы увидите в окне монитора последовательной связи 5 значений. Эти значения необходимо скопировать себе в «укромное место» и закрыть окно монитора последовательной связи. Полученные нами значения показаны на следующем рисунке.

После распаковки ZIP архива зайдите в нем в каталог с именем 32 bit или 64-bit в зависимости от того 32 или 64-разрядная у вас операционная система. В этом каталоге откройте текстовый файл RFIDcredentials.txt. Вставьте в него свои значения из окна монитора последовательной связи (которые вы получили ранее) и обновите (укажите свои) имя пользователя (user name) и пароль (password). Если вы хотите добавить две карты для входа в операционную систему, то заполните и вторую строчку в файле RFIDcredentials.txt как показано на следующем рисунке.

После этого сохраните и закройте этот файл. Затем откройте из этой же папки файл RFIDCredSettings, измените в нем номер COM порта, к которому подключена плата Arduino, на свой, сохраните и закройте этот файл. Остальные значения в файле не меняйте.

Теперь скопируйте все 4 элемента нашего каталога, которые вы извлекли из скачанного ZIP архива и изменили в них часть значений на свои, в каталог C:\Windows\System32. Если система потребует подтверждения этой операции – подтвердите ее.

Теперь запустите файл реестра (register file) чтобы внести изменения в реестр. При этом, скорее всего, вы на своем экране увидите примерно следующее диалоговое окно:

Нажмите «yes», затем «ok». После этого осуществите выход из системы и вы увидите что в систему был добавлен еще один пользователь – с именем RFID.

Вход в учетную запись этого пользователя теперь можно будет осуществлять с помощью RFID карт/меток. То есть никакого пароля на вход в систему вводить уже не будет нужно – достаточно будет всего лишь прислонить RFID метку к RFID считывателю и вход в систему произойдет автоматически.

Arduino Code — Multiple RFID/NFC Tags

We can allow multiple RFID/NFC tags to activate the relay. The below code uses two tags as an example.

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 5
#define RELAY_PIN A5

MFRC522 rfid(SS_PIN, RST_PIN);

byte authorizedUID1 = {0x3A, 0xC9, 0x6A, 0xCB};
byte authorizedUID2 = {0x30, 0x01, 0x8B, 0x15};

void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);

Serial.println(«Tap RFID/NFC Tag on reader»);
}

void loop() {
if (rfid.PICC_IsNewCardPresent()) {
if (rfid.PICC_ReadCardSerial()) {
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

if (rfid.uid.uidByte == authorizedUID1 &&
rfid.uid.uidByte == authorizedUID1 &&
rfid.uid.uidByte == authorizedUID1 &&
rfid.uid.uidByte == authorizedUID1 ) {
Serial.println(«Authorized Tag 1»);
digitalWrite(RELAY_PIN, HIGH);
delay(2000);
digitalWrite(RELAY_PIN, LOW);
}
else
if (rfid.uid.uidByte == authorizedUID2 &&
rfid.uid.uidByte == authorizedUID2 &&
rfid.uid.uidByte == authorizedUID2 &&
rfid.uid.uidByte == authorizedUID2 ) {
Serial.println(«Authorized Tag 2»);
digitalWrite(RELAY_PIN, HIGH);
delay(2000);
digitalWrite(RELAY_PIN, LOW);
}
else
{
Serial.print(«Unauthorized Tag with UID:»);
for (int i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte < 0x10 ? » 0″ : » «);
Serial.print(rfid.uid.uidByte, HEX);
}
Serial.println();
}

rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}
}
}

Do the similar steps as the above, and then tap one by one tag on RFID-RC522 module. The result on Serial Monitor looks like below:

COM6

Send

Tap RFID/NFC tag on reader
Authorized Tag 2
Authorized Tag 1

Autoscroll
Show timestamp
Clear output
9600 baud  

Newline  

Аппаратная часть

Для набора кода понадобится библиотека LiquidCrystal_I2C.h в Arduino IDE. Библиотека позволяет подключить ЖК-дисплей к Ардуино. Встроенная библиотека LiquidCrystal_I2C позволяет легко отображать символы на ЖК-дисплее.

Следуйте приведенным ниже инструкциям, чтобы установить новую библиотеку в свою среду разработки Arduino.

  1. Сначала загрузите файлы из Github.
  2. Извлеките из архивов каждую папку.
  3. Скопируйте ZIP-файлы в папку Ардуино.
  4. Откройте Ардуино и добавьте Keypad.zip:Меню эскиза -> Включить библиотеку -> Добавить ZIP-библиотеку
  5. Добавить библиотеку клавиатуры:Эскиз -> Включить библиотеку -> Клавиатура

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

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

Соединения между платой Arduino и модулем RFID приведены в таблице ниже. Положительный контакт зуммера подключен к цифровому контакту 4 платы Arduino, а его контакт GND подключен к контакту земли (ground pin) платы Arduino. Резистор 10 кОм подключен между контактами VCC и OUT датчика Холла. Замок с электромагнитным управлением подключен к плате Arduino с помощью модуля реле.

Модуль RFID Плата Arduino
SDA Digital 10
SCK Digital 13
MOSI Digital 11
MISO Digital 12
IRQ не соединен
GND GND
RST Digital 9
3.3V 3.3V
Датчик Холла Плата Arduino
5V 5V
GND GND
OUT 3

После пайки компонентов проекта на перфорированной плате у нас получилась конструкция следующего вида:

Предназначение дубликатора домофонных ключей

С помощью микроконтроллера Arduino можно копировать домофонный ключ, если случайно его потерял.

RFID – радиочастотная идентификация. Устройство выполняет ту же функцию, что и штрих-код или магнитная полоска на задней стороне кредитной карты. Он предоставляет уникальный идентификатор для этого объекта. И так же, как штрих-код или магнитная полоса, RFID должен быть отсканирован для получения информации.

RFID используется в этом проекте для чтения данных из RFID-меток и отправки информации в энергонезависимую память MCU.

Идентификатор, считываемый из тегов, сравнивается с хранимой информацией, и если он совпадает, то дверь открывается.

Создание дубликатора своими руками

Дубликатор или копировщик домофонных ключей. что это такое и как работает?

ЖК-дисплей имеет 16 контактов, что слишком много для Arduino Nano домофона, поэтому важно иметь адаптер I2C. Это позволяет управлять дисплеем только из двух сигнальных штырей на Ардуино. Это полезно из-за небольшого числа контактов, которые нужно будет контролировать из MCU

Это полезно из-за небольшого числа контактов, которые нужно будет контролировать из MCU.


ЖК-контакты

ЖК-дисплеи имеют параллельный интерфейс, а это означает, что MCU должен одновременно управлять несколькими контактами интерфейса для управления дисплеем. В приведенной ниже таблице дается описание каждого из контактов на английском языке:


Спецификация контактов

Для начала сделаем связи между ЖК-дисплеем и I2C. Для этого нужен адаптер ЖК-дисплея I2C (LCD1602). Адаптер преобразует ЖК-дисплей формата 16 x 2 в серийный ЖК-дисплей I2C, которым можно управлять через Arduino всего посредством 2-х проводов.


Соединения между Arduino и LCD

How RFID Works

An RFID system consists of two main components, a transponder or a tag which is located on the object that we want to be identified, and a transceiver or a reader.

The RFID reader consist of a radio frequency module, a control unit and an antenna coil which generates high frequency electromagnetic field. On the other hand, the tag is usually a passive component, which consist of just an antenna and an electronic microchip, so when it gets near the electromagnetic field of the transceiver, due to induction, a voltage is generated in its antenna coil and this voltage serves as power for the microchip.

Now as the tag is powered it can extract the transmitted message from the reader, and for sending message back to the reader, it uses a technique called load manipulation. Switching on and off a load at the antenna of the tag will affect the power consumption of the reader’s antenna which can be measured as voltage drop. This changes in the voltage will be captured as ones and zeros and that’s the way the data is transferred from the tag to the reader.

There’s also another way of data transfer between the reader and the tag, called backscattered coupling. In this case, the tag uses part of the received power for generating another electromagnetic field which will be picked up by the reader’s antenna.