RFID запись

RFID запись

RFID запись.

Третий урок из цикла «Всё про RFID».
Сегодня мы продолжим изучать RFID считыватель на базе микросхемы RC522.
В первой части была теория, во второй мы сделали электронный rfid замок с доступом по карте или брелоку. Теперь настала очередь рассмотреть запись на карту
Давайте представим, что мы некое предприятие и у нас есть группа сотрудников и нам надо выпустить именные карты для допуска этих сотрудников в офис.
В этом уроке мы научимся писать на карту свою фамилию и имя, номер офиса, а в следующем уроке добавим время прихода и ухода.

 

Чтение и запись rfid меток не сложный процесс. Надо просто понять принцип и знать структуру rfid карты, а с модулем RFID RC522 и Ардуино – это вообще просто, так как большинство функций прописано в библиотеке MFRC522.h.
Rfid  карта состоит из секторов и блоков, подробнее смотрите урок 1.

сектора и блоки
Сначала посмотрим, как подключить модуль считывания RC522 к Ардуино.  Для тех, кто смотрел предыдущий урок и не поленился собрать свой замок мои поздравления. Напишите кто собрал замок.
Объяснять схему не буду, и так всё понятно. Если что не понятно пишите в комментариях.
 

подключение

Сначала посмотрим, что получилось, а потом рассмотрим скетч.

Сначала давайте посмотрим дамп карты. Для этого загружаем из скетч dumpinfo.


Прикладываем карту к считывателю и ждём пока не считаются все данные.
Нас интересуют сектора 1 и 2.

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

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

дамп-карты
Сначала запускаем Пример 1.
 пример-1
Нас просят поднести карту для считывания.
Что же, давайте так и сделаем.
Дождёмся окончания.
Что мы здесь видим, точнее, увижу только я, так как у вас пока чистая карта и вы ничего не увидите, ну кроме НОМЕРА КАРТЫ.

  • В сектор 1 у меня записана ФАМИЛИЯ.
  • В секторе 2  ИМЯ
  • Третий сектор использовать нельзя, так как это трейлер.
  • А в четвёртом секторе НОМЕР КАБИНЕТА.

Давайте рассмотрим скетч.
скетч
Как подключен модуль rc522 я рассказывать не буду. Давайте сразу перейдём  к считыванию секторов.
В самом начале мы должны проверить ключ карты и если он совпадает, то продолжаем работу.
По умолчанию для новой карты ключ равен FFFFFF.
Потом ждём пока не появится новая карта.
Выводим номер КАРТЫ в шестнадцатеричной системе. С этим всё понятно из предыдущего урока.
Код для вывода фамилии, имени и кабинета одинаков.
Меняется только номер блока. Поэтому я расскажу только про фамилию.

  • Создаём массив – буфер -  для хранения значений.
  • Указываем номер блока.
  • Затем в статус загружаем разные значения.

Такие как - Ключ карты, номер блока, UID карты.
Если всё правильно то можно работать дальше, а если нет, то выскочит ошибка и скетч прекратит работу.
Дальше мы в цикле выводим все 16 байт из блока.

И так со всеми блоками, то есть с блоками 1, 2 и 4.
Со считыванием разобрались, теперь давайте разбираться с записью.

Загружаем скетч Пример 2.
запись на карту
Поднести карту.

 

Кстати там есть ограничение на время ожидания ввода текста. Я установил 60 секунд.
ограничение
Сначала вводим ФАМИЛИЮ  и символ «решётка». Этот символ даёт знать, что ввод окончен и надо обработать текст. Нажимаем ENTER.
Затем вводим ИМЯ и снова вводим решётку и нажимаем ENTER.
Теперь вводим номер кабинета, решётку и ENTER.
И если после каждого ввода у вас не было ошибок и вы видите надпись УБЕРИТЕ КАРТУ, то значит всё прошло хорошо, и теперь можно перейти к ПРИМЕРУ 1 и считать ваши записи с карты.
Записывать на карту можно до 200 тыс. раз, так что можете тренироваться и не ограничивать себя.

 


Ну вот и всё. Всё работает. И как всегда в конце урока я прошу вас поставить лайк этому видео если оно вам понравилось. И жду ваших комментариев.
Следующее видео будет про копирование и клонирование карт.
И чем больше ваших положительных отзывов, тем быстрее оно выйдет.
До встречи в следующих уроках.
Как и обещал, хочу рассказать про русский шрифт. Если вы будете делать записи на латинице, то в каждом блоке вы можете сохранить до 16  символов. А вот если вы будете писать на кириллице, то всего лишь 8 букв.
Это потому, что для хранения будут использован формат Unicode , а он требует для хранения 2 байта. 
Постскриптум.
Я ещё написал код для очистки блоков карт. Правда, это только набросок, но он вполне рабочий.

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

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.