Рейтинг@Mail.ru
Билеты на Московский метрополитен и ТАТ
Билеты на Московский метрополитен и ТАТ

Как прочитать билет на метро и автобус с помощью Arduino

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

Вам понадобится

  • Arduino;
  • RFID-считыватель RC522;
  • компьютер;
  • соединительные провода;
  • бесконтактные билеты на транспорт.

Инструкция по чтению данных с билетов МосГорТранса

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

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

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

2Установка библиотеки для работы с RFID-RC522

Скачаем библиотеку для работы с RC522. Установим её, разархивировав в директорию Arduino IDE\libraries

Установка библиотеки MFRC522
Установка библиотеки MFRC522

3 Скетч для вывода данныхRFID-билета

Запустим Arduino IDE и откроем из примеров библиотеки скетч, который считывает с RFID-карточки данные и выводит в последовательный порт: Файл Образцы MFRC522 DumpInfo. Загрузим этот скетч в память Arduino.

Скетч DumpInfo для вывода данных RFID-метки
Скетч DumpInfo для вывода данных RFID-метки

4Считываем данные с билета метро или наземного транспорта

Откроем монитор последовательного порта (Ctrl+Shift+M). Теперь возьмём любой билет и приложим к считывателю RFID-RC522. В текстовом поле появилась информация о версии прошивки, типе билета, а также содержимое памяти билета (дамп).

Данные, считанные с бесконтактного билета метро
Данные, считанные с бесконтактного билета МосГорТранс

5Спецификация бесконтактных карттипа Mifare Ultralight

Мы видим, что тип билета – Mifare Ultralight. На данный тип устройств существует подробная спецификация (datasheet), которую легко можно найти в интернете.

Структура данных бесконтактных карт типа Mifare Ultralight
Структура данных бесконтактных карт типа Mifare Ultralight

Из спецификации видно, что первые четыре страницы (Page) билета содержат стандартную информацию: уникальный номер (SN или UID), байты защиты от записи (Lock Bytes) и единожды программируемые ячейки (One Time Programmed, OTP). Остальные ячейки памяти билета (страницы с 4 по 15) хранят произвольные данные.

Байты защиты от записи (Lock Bytes), равные во всех билетах F0 00, говорят нам о том, что страницы с 4 по 7 защищены от записи, а страницы памяти с 8 по 15 могут быть перезаписаны.

Но сами байты защиты от записи не заблокированы, поэтому можно снять защиту страниц с 4 по 7 от записи, установив значение Lock Bytes равным 00 00.

6Информация, которая записана на билет МосГорТранс

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

Структура данных бесконтактного билета с московского транспорта
Структура данных бесконтактного билета с московского транспорта
Описание структуры данных билета на метро и наземный транспорт
Страница (Page)БайтыЧто записаноПримечание
42,3Первая часть номера билета, напечатанного на обратной стороне.Только для чтения.
50,1,2Вторая часть номера билета. Только для чтения.
6
70,1,2,3Дублирует страницу 6.
80,1Дата покупки билета.Выражается в днях, прошедших с 01.01.1992. В данном случае 0x222F = 8751 дней, т.е. билет был куплен 17.12.2015.
82Срок действия билета в днях.В примере 0x5A = 90 дней.
91Количество оставшихся поездок.В некоторых случаях, например, на именных социальных картах – количество сделанных поездок.
100,1,2,3Контрольная сумма.
110,1Дата последнего прохода через турникет.Аналогично дате покупки.
12-150,1,2,3Дублирование предыдущих четырёх страниц.

PS. Спасибо за материалы, описанные блогером dark-simpson.

Последнее изменениеВоскресенье, 17 Январь 2016 12:00
(10 голосов)
Прочитано 11869 раз

Поделиться

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены