Jump to content
iT4iT.CLUB

Recommended Posts

Прикупил ридер Pn532 . RFID модуль поддерживает технологию NFC (NFC это часть RFID стандарта ISO 14443) и может взаимодействовать с девайсами поддерживающими данную возможность(в большинстве современных смартфонов имеется) Модуль стоит ощутимо дороже rc522 я взял за 800р но так как давно имею задумку соорудить IT замок в квартиру, покупку считаю оправданной. Покурив тему не нашел примеров реализации замка в рунете так что обращаю внимание на данную тему уважаемого KITSUM. Так вот немного подробнее: 

 

ридер имеет размер .

PN532.jpg

Поддержка I2C , SPI и HSU (High Speed UART )

прошу прощения за кривой гугл перевод данных производителя

чтения и запись , P2P общение с коллегами, NFC с Android телефон RFID- устройство считывания / записи поддерживает следующие функции: Mifare 1k , 4k , Ultralight , и DESFire карт ISO / IEC 14443-4 карты, такие как CD97BX , CD свет, DESFire , P5CN072 ( SMX ) Innovision Jewel карты, такие как карты IRT5001 FeliCa карты, такие как RCS_860 и RCS_854 До 5 см - 7см расстояние чтения На борту сдвига уровня , Стандартный 5V TTL для I2C и UART , SPI 3.3V TTL

 

В качестве основной функции , этот модуль может считывать и записывать RFID- карты . Различные карты могут быть поддержаны .

Скрытый текст

PN5321.jpg

 

Два модуля PN532 могли бы общаться друг с другом .

Скрытый текст

PN5322.jpg

в качестве ключа можно использовать телефон с NFC и если допустим в базе пользователь не зарегистрирован то телефон автоматически переходит на страничку с инструкцией по получению ключа а в случае авторизированного пользователя можно получить страничку с кнопками для дальнейших действий и все это использует в качестве связи технологию NFC никаких WIFi или GSM

ссылка на английский мануал от производителя http://www.elechouse.com/elechouse/images/product/PN532_module_V3/PN532_%20Manual_V3.pdf 

библеотечка nfc-pn532-master.zip PN532-PN532_HSU.zip

На данный момент занят собственными изысканиями на эту тему буду рад любой информации и идеям.

  • Like 2

Share this post


Link to post
Share on other sites

В общем штука оказалась очень хорошая,мало того что чувствительность заметно выше так еще и зацепив девайс по i2c освободились пины .установка библиотек немного не стандартна , нужно распаковать PN532-PN532_HSU.zip  внутри архива будут пять папок NDEF , PN532 , PN532_HSU , PN532_I2C, PN532_SPI их нужно по отдельности сжать в ZIP и устанавливать как самостоятельные библиотеки . Комутируется все тоже без проблем ибо в четырех проводах запутатся сложно ,два питание (у меня работает на 3.3 вольта) и два SDA  и SCL выбор интерфейса осуществляется джамперами 

  • Like 1

Share this post


Link to post
Share on other sites

очень интересно, есть и дешевые PN532 NFC RFID модуль V3  294,04 руб.  https://clck.ru/ATVxR как я понимаю можно применить тоже открывание двери телефоном со встроенным NFC если этот модуль прикрутить к Arduino и электро-замок, а также этот модуль должен читать NFC Смарт-Теги  https://clck.ru/ATVfp так?

111.PNG

Edited by ribafei

Share this post


Link to post
Share on other sites

@ribafei PN532 очень интересный чип, намного веселее чем RC522, использующийся в теме с замком

В упомянутых выше метках используется чип NTAG203 использующий стандарт ISO/IEC 14443A и таким образом подпадающий под поддерживаемые чипы для PN532

Скрытый текст

NTAG203

RF интерфейс (ISO/IEC 14443A)

  • Бесконтактная передача данных, бесконтактная подача энергии
  • Дальность чтения до 10 см (в зависимости от размера антенны и устройства)
  • Рабочая частота- 13,56 МГц
  • Скорость передачи данных- 106 кбит/с
  • Высокая целостность данных
  • Антиколлизия
  • 7 байтовый серийный номер (уровень 2 согласно ISO/IEC 14443-3)

EEPROM

  • 168 байт памяти (разделена на 42 части по 4 байта)
  • 144 байта пользовательской read/write памяти
  • 32 битная одноразово программируемая память (OTP)
  • 16 разрядный счетчик
  • Хранение данных – 5 лет
  • 100 000 циклов перезаписи
  • Настройка полей только для чтения

 

Что касаемо эмуляции метки самим чипом PN532, вот пример передачи NDEF тега https://github.com/elechouse/PN532/blob/PN532_HSU/PN532/examples/emulate_tag_ndef/emulate_tag_ndef.ino а вот с эмуляцией Mifare Classic 1K и 4K могут быть большие сложности.

В общем нужно плотно изучать вопрос.

PS: у меня есть в наличие этот модуль, думаю заведется из коробки и не будет сложности сделать замок на его основе.

 

Share this post


Link to post
Share on other sites

здесь скетч http://arduino.ru/forum/proekty/chitaem-nomera-rfid-nfc-kart-metok-s-pomoshchyu-modulya-s-chipom-pn532-1356-mhz 
Читаем номера rfid nfc карт меток с помощью модуля с чипом PN532, 13.56 MHz
сейчас собираю тоже замок на  RC522 с вашем скетч-ом Замок с радиочастотной идентификацией за что вам огромное спасибо за эту подробную тему, но с таким модулем  PN532 было бы получше сделать, так как на алиэкспресс много NFC Смарт-Теги Стикер Чип Rfid клейкие https://clck.ru/ATcPe, дешевые и можно наклеить на телефон или на любое устройство, и открывать двери. замок нужен на работе для 12-16 человек открывать только снаружи брелком, а с внутри выход ручным механическим открытием.

 

Edited by ribafei

Share this post


Link to post
Share on other sites

Добрый день!

Купили на ali модуль RFID PN532 (из дешевых, в районе 300 р) для ребенка, который слишком рано увлекся электроникой. Мне приходится помогать ему разбираться, хотя электроника и программирование - совсем не мои области, я биолог. Итак, контакты я более менее припаял (это тоже не моя область), плата UNO, rev.3. Сканер I2C находит плату почему-то по адресу 0x24, хотя везде указан адрес 0x48. Переключатели на плате установлены на I2C. Библиотеки elechouse c github скачаны и установлены. Запускается пример из описания, например, iso14443a_uid или readMifare (в примере выбирается подключение по I2C). Открываем монитор порта и видим Hello! и сообщение, что карта не найдена. Подключение: VCC на 5 вольт, SDA и SCL к последним контактам в ряду цифровых, после AREF. Пробовал также подключение по SPI (правда, не припаивая контакты), картина такая же... Библиотеки от Adafruit тоже пробовали, все так же. Не знаю уже, что делать, очень обидно, ждали месяц, хотели с ребенком поиграть на выходных, а тут...

Если кто имел дело с данной картой, подскажите, может быть библиотеки надо какие-то определенные? И возможно ли, что карта просто битая, поэтому и адрес странный 0x24?

Заранее спасибо!

Share this post


Link to post
Share on other sites

Адрес на i2C шине действительно должен быть 0x48. Вот выписка из технической спецификации.

pn532_i2c_address.png

А вот SPI работает только с 3.3v логическим уровнем, без конвертера не получится подключиться.

Попробуйте подтянуть SCL и SDA пины к +5v питания через резисторы 4.7k. Обычно на платах они уже распаяны, но доверять никому нельзя, а тем более Китайскому массовому производству. Также, на всякий случай, можете перейти на пины A4 (SDA) и A5 (SCL).

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

В библиотеке от elechouse в файле PN532_I2C.cpp, а в библиотеке от Adafruit в файле Adafruit_PN532.h ищите строку

#define PN532_I2C_ADDRESS (0x48 >> 1)

 

Share this post


Link to post
Share on other sites

Получилось подключить вот таким способом: использовал библиотеку Adafruit и соединил контакты IRQ и RESET с цифровыми пинами 2 и 3, как указано в скетче. Удивительно, но все заработало. Также выяснил, что адрес 0x24 это 7-битовый, который меняется на 0x48 при присоединении бита чтения или записи (если бы я еще что-то понимал в этой строчке :) ). Собственно это и сподвигло меня на дальнейшие исследования, поскольку я уже было решил что плата битая и собрался покупать другую. Непонятно только одно, на многих видео ясно видно, что плата подключена только четырьмя проводами, без IRQ и RESET, но работает, как же это???

  • Like 1

Share this post


Link to post
Share on other sites

@vladmed Рад, что у Вас все получилось.

4 минуты назад, vladmed сказал:

Непонятно только одно, на многих видео ясно видно, что плата подключена только четырьмя проводами, без IRQ и RESET, но работает, как же это???

Модуль может работать по 3 интерфейсам, это SPI, i2C и HSU (высокоскоростной UART). Вот последний как раз и подключается всего по 4 проводам.

Share this post


Link to post
Share on other sites
23 минуты назад, Kitsum сказал:

Модуль может работать по 3 интерфейсам, это SPI, i2C и HSU (высокоскоростной UART). Вот последний как раз и подключается всего по 4 проводам

Ах вот оно что, мне это даже в голову не приходило, спасибо!

P.S. Скажите, а вы с I2C шиной хорошо знакомы? У нас тут нестандартный вариант ее применения, но похоже я исчерпал свои возможности...

Share this post


Link to post
Share on other sites

@vladmed  Я энтузиаст в мире микроконтроллеров и имею не большой опыт, но стараюсь разбираться в тех или иных моментах по мере наличия свободного времени.

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

Проблема была только в подключении. А вот для чего нужен сам пин прерывания IRQ

pn532_irq.png

По сути, таким образом, PN532 сообщает, что имеются данные для основного контроллера. И количество общего трафика на шине, уменьшается.

Share this post


Link to post
Share on other sites

Спасибо, меня сбила с толку документация Elechouse, у них там табличка со схемами подключения, а про IRQ ничего нет. 

Про нестандартное использование I2C я не совсем правильно выразился. Просто есть такой детский конструктор Fischertechnik, к контроллеру которого можно подключать устройства на шине I2C. Язык программирования графический. Мы с ребенком решили подключить гироскоп (BMI160), штатного у них нет, в результате я 2 месяца мучался с документацией, проклял все :) ,но сделал. Сейчас взялись за компас (5883L), казалось бы должно быть проще, но я  ничего не понял из datasheet, кроме адреса устройства, в силу отсутствия базовых знаний о регистрах, адресах и т.д. Ну это я так, абстрактно, не к тому, чтобы вы бросались разбираться...

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Kitsum
      Доброе время суток.
      Сегодня мы будем собирать бесконтактный замок с использованием NFC контроллера PN532. Опираясь на опыт прошлого варианта (на контроллере MFRC522) и на отзывы тех, кто пытался повторить схему, были сделаны определенные выводы. Постараемся избавиться от старых подводных камней и поищем новые 

      И так, что мы знаем о PN532:
      Очень компактный размер 42.7 x 40.4 мм Поддерживает работу по SPI, i2C и HSU (высокоскоростной UART) Читение/Запись RFID меток, может общаться с другими контроллерами PN532, и вроде как общаться с Android телефонами Рабочая дистанция 5-7 см Поддерживаемые чипы
      ISO 14443 Type A  - NXP Mifare 1k, 4k, Ultralight, Desfire ISO 14443 Type B ISO/IEC 14443-4-совместимые чипы FeliCa Jewel TopaZ Чтение / Запись RFID меток
      Обмен данными P2P
      Передача данных смартфону
      Кстати, вроде как начиная с Androik 4.4 KitKat операционная система умеет эмулировать NFC метки программным способом. Это подразумевает, что мы можем на телефоне сделать копию проездного билета (БСК, Тройка) или просто обычной метки, и использовать смартфон в качестве ключа для замка. К сожалению, у меня пока нет под рукой аппарата с поддержкой NFC, а значит и проверить это мне не под силам. Оставляю эту задачу Вам! 
      Для сборки замка нам понадобятся:
      Arduino UNO или любой аналог с контроллером ATmega328 Сам модуль сканера с контроллером PN532 Китайский модуль реле с опторазвязкой (в программе предусмотрена инверсия управляющего сигнала на случай управления реле напрямую или замены его на транзисторный ключ / мосфет) Две кнопки для, одна для разблокировки замка изнутри помещения, а другая для сброса памяти микроконтроллера Два резистора 10kOm и 4.7kOm Танталовый конденсатор на 1uF Светодиод для индикации о попытках взлома замка с помощью брутфорса ключа Транзистор KT315 или его аналог для управления питанием PN532. Говорят, что война между Десептиконами и Автоботами началась именно из-за этих Советских транзисторов!
      Зачем нужен транзистор? Он используется для управления питанием сканера, если по какой-либо причине Arduino пойдет на перезагрузку, то она потянет за собой и сканер. Таким образом мы лишний раз подстрахуем себя. Конденсатор в обвязке транзистора необходим для сглаживания пульсаций, у меня они были явно заметны при питании от USB. Конечно это все можно выкинуть из схемы и пустить на ножку VCC контроллера PN532 питание напрямую с 5V платы Arduino. Это уже на Ваш страх и риск.
      Критически важно обратить внимание на питание! Не поленитесь и возьмите отдельный блок питания, USB используйте только в качестве Serial монитора. На реле желательно подавать отдельное питание, на Китайских модулях для этого есть соответствующие пины (GND, VCC, JD-VCC). На схеме я это не отражено т.к каждый волен самостоятельно выбирать как управлять силовой частью замка. Может вы замените реле мосфетом.
      На просторах мирового интернета нашел пару изображений схем показывающий, как реализовано питание и управление китайскими релейными модулями.
      Так показано на схеме и так делает большинство. Все будет работать. 

      А так будет правильно, но необходим отдельный источник питания для релейного модуля

      Выбор за Вами.
      Вернемся к сканеру. Уже упоминалось, что он имеет возможность общаться по одному из нескольких интерфейсов на выбор. Сам выбор интерфейса реализован на физическом уровне и представляет из себя сдвоенный переключатель. На изображении ниже выбран HSU (UART). В таком варианте модули приходят к нам из поднебесной.

      Мы будем использовать i2C интерфейс. Возможно стоило бы SPI?

      Все подключения можно свести к одной таблицы

      Как все устроено
      Часть функционала было позаимствовано из предыдущего варианта о котором говорилось в самом начале данного поста. При первом запуске Вам будет предложено создать мастер ключ, но не спешите это делать. Я советую Вам очистить EEPROM, для этого нажмите и удерживайте кнопку RESET до тех пор, пока не услышите звуковой сигнал. После очистки памяти контроллер будет перезапущен, замок разблокируется в ожидании первого поднесенного ключа (метки), может быть даже смартфона (ищите эмуляторы RFID меток и проверяйте).
      Первый поднесенный ключ станет мастером, советую его надежно спрятать дома т.к только с его помощью можно записывать новые ключи в память микроконтроллера. Кстати о памяти, вот схема как она используется, всего занято 1kB.

      Первые 8 байт используются для хранения системной информации. Пока заняты только первые 2 байта, а остальные 6 зарезервированы под будущие улучшения. Возможно Вы что-то захотите добавить свое. Начиная с 9 байта идут ключи. Ключи бывают разного размера, но мы будем использовать только первые его 4 байта. Первый ключ всегда идет мастер, все последующие обычные. Всего можно иметь 1 мастер и 253 обычных ключа. То есть мы израсходуем весь объем EEPROM контроллера ATmega328. Вы конечно можете воспользоваться другим контроллером, с большим количеством памяти, но программа не даст Вам создать более 254 ключей. Оставшаяся память останется свободной.
      И так после создания мастер ключа замок перейдет в дежурный режим, разблокировать его можно кратковременным нажатием на кнопку OPEN или самим мастер ключом. Для добавления новых ключей необходимо поднести мастер ключ к сканеру и удерживать более 5 секунд. Замок перейдет в режим программирования оповестив Вас об этом звуковым сигналом. В этом состоянии замок будет в разблокированном состоянии и все поднесенные новые ключи будет записаны в память. Для выхода из режима программирования необходимо опять поднести мастер ключ к сканеру и удерживать более 5 секунд. Звуковой сигнал оповестит об этом и замок вернется в дежурный режим.
      После открытия двери ключом или кнопкой запускается таймер, который закроет замок через 5 секунд. Можно удерживать замок в открытом состоянии при удержании кнопки OPEN, но при её отпускании замок сразу закроется.
      Теперь немного про защиту
      В программе имеется счетчик ложных срабатываний. Если в течении минуты будут зарегистрированы 5 попыток подбора ключа, замок будет заблокирован на 1 минуту. Открыть дверь можно будет только с кнопки OPEN. Поднесения действующего ключа, даже мастера, будет проигнорировано замком. По истечению минуты доступ будет открыт, но на этом еще не конец. Счетчик даст только одну попытку разблокировать замок, если она потерпит неудачу, блокировка повторится. Замок будет давать по одной дополнительной попытки за каждую минуту ожидания, но не более 5 попыток. Таким образом скорость подбора ключа сводится к 1 ключу в минуту, а учитывая длину ключа даже в 4 байта, тот кто захочет этим заняться должен быть бессмертным. Проще ключ украсть или сделать копию, но от этого не застрахованы даже обычные замки, но в следующем варианте программы мы позаботимся и об этом.
      Если кто-то пытался подобрать ключ и замок его поймал на этом, то светодиод начнет периодически мигать. И даже если отключить питания, контроллер не забудет об этом инциденте и при его восстановлении продолжит оповещать о случившемся. Интенсивность мигания будет напрямую зависеть от количества блокировок.
      1 раз в секунду если была выявлена хотя бы одна блокировка 2 раза в секунду если было выявлено более 5 блокировок 3 раза в секунду если более 10 блокировок 4 раза в секунду если выявлено более 20 попыток Горит постоянно при более 50 попытках Есть два способа сбросить счетчик. Воспользоваться мастер ключом и перевести замок в режим программирования, после вернуть обратно в дежурный режим. Или удерживая активный ключ у сканера PN532 зажать кнопку OPEN на 5 секунд.
      В принципе на этом пока все. Для реализации Вам понадобятся следующие библиотеки:
      Bounce2 для программной защиты от дребезга Timer1 для удобной реализации прерываний Adafruit PN532 для связи с самим сканером Хотите помочь проект?
      Yandex.Money PayPal.me Сама программа замка: PN532_lock_iT4iT.CLUB.7z
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...