Система оплаты, входа и безопасности на базе Arduino + PN532 NFC


В этой статье мы рассмотрим плату на базе Arduino+PN532 NFC под названием Maduino Zero NFC. Maduino Zero NFC — это решение IoT (Интернет вещей), основанное на 32-битном микроконтроллере SAMD21 от Atmel и контроллере связи ближнего поля NXP PN532. Эта плата разработки может использоваться для платежных приложений, систем входа и проектов систем безопасности.

Система оплаты, входа и безопасности на базе Arduino + PN532 NFC

Плата Maduino Zero NFC основана на Arduino и поэтому пользователи могут программировать ее с помощью Arduino IDE. Это руководство поможет вам с базовым использованием Maduino Zero NFC, а также обзором оборудования и программированием.

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

Прежде чем двигаться дальше, ознакомьтесь с некоторыми из наших проектов на основе RFID, такими как система безопасности RFID , а также проект системы контроля посещаемости RFID. Вы также можете ознакомиться с обзором модуля NFC PN532 и его взаимодействием с Arduino в режимах UART, I2C и SPI.

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

  1. Плата Maduino Zero NFC (купить на AliExpress).
  2. Модуль OLED дисплея SSD1306 128×64 с интерфейсом I2C (купить на AliExpress).

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

Что такое NFC?

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

Принцип работы NFC

NFC работает по принципу индуктивной связи, по крайней мере, для реализаций на коротких расстояниях. По сути, это включает в себя считывающее устройство, генерирующее магнитное поле путем пропускания электрического тока через катушку. Когда метка (с собственной катушкой) подносится близко, поле индуцирует электрический ток внутри метки. Затем, после завершения первоначального рукопожатия, любые сохраненные на метке данные передаются по беспроводной связи на считыватель.

Индивидуальная плата NFC (Maduino Zero NFC)

Maduino Zero NFC — это совместимая с Arduino небольшая плата разработки с NFC (Near-Field Communication). Она разработана с использованием контроллера ATSAMD21G18, который на самом деле является платой Arduino Zero, и чипа PN532 NFC.

Эту плату можно приобрести у Makerfabs (или на Aliexpress) и использовать ее для многоцелевых приложений.

Плата Maduino Zero NFC и карты для работы с ней

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

Внешний вид платы Maduino Zero NFC

Эта плата имеет порт micro USB для последовательной связи и питания. Мы можем подключить вход питания 5 В или солнечную панель для зарядки литий-полимерной батареи. Она также имеет разъем для литий-полимерной батареи 3,7 В и выключатель питания для включения /выключения модуля. Антенна NFC с интерфейсом IPX используется для сканирования тега NFC. Светодиод индикации состояния подключен к D2 вместе со светодиодом индикации питания. На плате имеется переключатель SWD для загрузки загрузчика. Вы можете нажать кнопку сброса на плате, чтобы сбросить контроллер ATSAMD21G18.

На задней стороне платы находится разъем для SD-карты. В разъем можно вставить SD-карту и сохранить необходимые данные в текстовом формате.

Функции

  • ATMEL SAMD21G18A: 32-битный ARM® Cortex®-M0 до 48 МГц, 256 КБ флэш-памяти, 32 КБ SRAM, LQFP48.
  • Питание от литиевой батареи (3,4-4,2 В) или MicroUSB.
  • NXP PN532, контроллер беспроводной связи ближнего действия (NFC).
  • Бесконтактная связь на частоте 13,56 МГц.
  • Режим PCD для карт FeliCa, ISO/IEC14443-3 Type-A, Mifare, ISO/IEC14443-4 Type-A и Innovision Jewel.
  • Интерфейсы: I2C/SPI/UART/АЦП/ЦАП/I2S/38*GPIO.
  • Совместимость с Arduino: можно программировать с помощью Arduino IDE.
  • Более экономичная и качественная чем Arduino Zero.
  • Скорость передачи данных по умолчанию: 115200 бит/с.

Предупреждение: Не работайте при включенном питании (то есть не подключайте и не отключайте антенну, SD-карту, так как в случае короткого замыкания может выйти из строя ИС).

Как использовать плату Maduino NFC?

Плата Maduino NFC имеет контроллер Arduino Zero PN532 NFC Chip. Чтобы использовать эту плату с Arduino IDE, нам сначала нужно настроить Arduino IDE.

Настройка Arduino IDE

Плата ATSAMD21G18A не предустановлена ​​в Arduino IDE. Поэтому нам нужно установить «Arduino Zero Board» из Board Manager (менеджера плат).

Откройте Boards Manager. В верхнем меню Arduino IDE выберите Tools-> Board-> Boards Manager …, чтобы открыть диалоговое окно Boards Manager. Затем установите платы Arduino SAMD (32-бит ARM Cortex-M0+).

Установка платы ATSAMD21G18A ​​в Arduino IDE

После завершения установки вы можете выбрать плату Arduino Zero, как показано на рисунке ниже. Для программирования этой платы вам необходимо подключить кабель передачи данных Micro USB.

Выбор платы Arduino Zero в Arduino IDE

Аппаратные соединения

Сначала подключите антенну NFC к обозначению, которое показывает ANT1. Затем подключите кабель Micro USB к Maduino Zero NFC. Вы можете подключить 0,96″ I2C OLED-дисплей к плате через 4-контактный разъем.

Аппаратные соединения платы Maduino Zero NFC

Вы можете подать питание от литиевой батареи 3,7 В после загрузки программы на плату, поскольку она работает в диапазоне от 3,4 В до 4,2 В. Для питания можно использовать как батарею, так и MicroUSB. Пока подключен MicroUSB, плата будет питаться от MicroUSB, при извлечении MicroUSB она автоматически переключится на батарею.

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

Выберите плату Arduino Zero(Native USB port) из меню плат в Arduino IDE. Затем выберите правильный номер порта, так как Native USB port появится в COM-порте. Теперь вы можете загрузить приведенный ниже код на плату Maduino.

Но Arduino IDE требует некоторые библиотеки для компиляции. Загрузите следующие библиотеки и добавьте их в Arduino IDE через Library Manager (менеджер библиотек):
1. Библиотека Adafruit PN532Загрузить
2. Библиотека Adafruit GFXhttps://github.com/adafruit/Adafruit-GFX-Library
3. Библиотека SSD1306 OLEDЗагрузить

Это полный код интерфейса Arduino PN532 NFC.

Тестирование и результаты

После успешной загрузки кода вы можете начать процесс тестирования. OLED-дисплей отобразит версию прошивки 1.6 и попросит отсканировать карты.

Работа проекта в режиме ожидания карты

Теперь поднесите несколько карт NFC к антенне Maduino Zero Board. Карта NFC может включать вашу банковскую карту или проездной или, может быть, какую-нибудь тестовую карту NFC.

NFC карты

Когда вы помещаете карту в верхнюю часть антенны, она считывает длину байта вместе со значением UID и отображает их на OLED-экране.

Считывание карты с длиной UID 4 байта

Иногда длина байта может составлять 4 байта или 7 байтов в зависимости от типа карты NFC.

Считывание карты с длиной UID 7 байт

Если вам не нужен OLED-дисплей для проекта, вы можете отобразить значение UID и длину байта на последовательном мониторе.

Тестирование считывания NFC карт в окне монитора последовательной связи

Вот как можно использовать плату Maduino Zero NFC на базе Arduino и PN532 NFC для приложений систем оплаты, входа и безопасности.

Видео, демонстрирующее работу проекта

Ссылка на видео на YouTube

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

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

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