Помогите с RFID Mifare RC522 module

edisson
Offline
Зарегистрирован: 18.02.2014

а сам процессор ардуино питается от 3,3 вольта или от 5 вольт ? то есть, входы  RC522 толерантны ли к 5 вольту ?

4ishops
Offline
Зарегистрирован: 06.10.2012

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Да все нормально работает - просто если нарушить алгорим чтения или записи карты - она может заблокироваться и вообще перестанет писаться и читаться. У меня так пару карт накрылось - потом достал из новой упаковки и все прекрасно заработало. Так что поищите другие карты (электронные проезные читаются свободные сектора).

edisson
Offline
Зарегистрирован: 18.02.2014

а если в поле сразу окажутся несколько карт, то как прочитать номера всех из них, чтобы определить если ли там "своя" карта ?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

edisson пишет:

а если в поле сразу окажутся несколько карт, то как прочитать номера всех из них, чтобы определить если ли там "своя" карта ?

В документации есть какой-то механизм защиты от коллизий. В конце концов - возьмите да и проверьте у себя. :)

edisson
Offline
Зарегистрирован: 18.02.2014

это прнимаю что есть кокойто механизм, но описание этого алгоритма не смог найдти )

4ishops
Offline
Зарегистрирован: 06.10.2012

нее, врядли, скорее какая первая карта прочиталась та и будет )

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Этот функцинал возложен на сами карты. Называется Anticollision loop - позволяет считать серийные номера всех карт поблизости. затем выбирается одна из карт - остальные деактивируются до следующего поискового запроса. (Из даташита Mifare S50)

computerdiagnostic
Offline
Зарегистрирован: 15.03.2014

zsm@nxt.ru пишет:

Дело в том что пример чтение-запись   не работает у меня , все остальные работают..

Если у вас Arduino Mega, то этот скетч должен работать. Для Uno замените  #define SS_PIN 53 на #define SS_PIN 10, а #define RST_PIN 5 на #define RST_PIN 9 и все должно заработать.

shakalby
Offline
Зарегистрирован: 26.04.2014

Добрый день! Помогите подключить   RFID-RC522  к Mini USB Nano V4.0 ATmega328 5V 16M

4ishops
Offline
Зарегистрирован: 06.10.2012

shakalby пишет:

Добрый день! Помогите подключить   RFID-RC522  к Mini USB Nano V4.0 ATmega328 5V 16M

 

Придется еще преобразователь 5V - > 3.3V добавлять для питания, типа AMS1117 итп, в остальном все согласно схеме выше.

shakalby
Offline
Зарегистрирован: 26.04.2014

 

4ishops

 "схеме выше."

немножко не понял! пины  в этой мини  расписанны  по другому  совсем!  есть схема подключения визуальная,  так как  я  новичек( и только  учусь)

4ishops
Offline
Зарегистрирован: 06.10.2012

shakalby пишет:

 

4ishops

 "схеме выше."

немножко не понял! пины  в этой мини  расписанны  по другому  совсем!  есть схема подключения визуальная,  так как  я  новичек( и только  учусь)

 

Что не так с пинами у вас? непонятно где 9, 10, 11, 12, 13? или GND? :)

 

PS вполне возможно что у вас 3.3V есть на плате

 

shakalby
Offline
Зарегистрирован: 26.04.2014

Совершенно верно не могу  понять где  пины! они с букв начинаются!(

shakalby
Offline
Зарегистрирован: 26.04.2014

Не льется скетч на Nano   ошибка   avrdude: stk500_getsync(): not in sync: resp=0x00

shakalby
Offline
Зарегистрирован: 26.04.2014

shakalby пишет:

Не льется скетч на Nano   ошибка   avrdude: stk500_getsync(): not in sync: resp=0x00

Запитал ее отдельно 12V   все залилось !

shakalby
Offline
Зарегистрирован: 26.04.2014

залил скетч в Nano V3  но ни чего не происходит не читает он карты, ключ  тоже не читает

shakalby
Offline
Зарегистрирован: 26.04.2014

всем привет залил скетч в Arduino UNO  ни чего не работает! я думал дело в nano v4!!!
все подключено правильно подношу карту ни чег не происходит!!

что делать??  как  ее заставить работать?

shakalby
Offline
Зарегистрирован: 26.04.2014

Взял другую карту, которую заказал попутно с RC522!!   она читается, а родная и ключ чип  не  читаются!!
что делать  где копать??

Nurjan
Offline
Зарегистрирован: 07.06.2014

Тима здарова помоги мне плз немогу разобраться скетч на китайском языке выдал это Card detected

100 , 0 
The card's number is  : 

67 , 1100010 , 11111000 , 10100100 , 1111101

 что с этим делать

или можеш по почте отправить скетч с распиновкой для uno и что там делать дальше nurjikm@mail.ru

Гость (не проверено)

Помогите пожалуйста !

Купил RFID считыватель MF522-AN ,все коды перепробовал не работает и в мониторе порта пусто...

Гость (не проверено)

Помогите пожалуйста !!!

RFID не работает !!!

https://www.youtube.com/watch?v=WLZ5B8uTHoM&list=UUXmA1hrrWF6LUJwy231CPXQ

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

а у меня с этой либой: https://yadi.sk/d/Bmvxvkiqa8yGv все работает. Даже проездные метро читал, вот этим скетчем(чтение номера) : https://yadi.sk/d/pBr8cbi5a8yKz

igor-x
Offline
Зарегистрирован: 08.09.2014

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

 

zomdra
Offline
Зарегистрирован: 06.01.2015

Приветствую всех! Приобрёл RC522 и MEGA2560, дрюкался дня три, так и не понял как сделать дубликат ключа. Скетч ReadAndWrite из библиотеки rfid-master в мониторе порта выдаёт следующее: 

Scan a MIFARE Classic PICC to demonstrate read and write.
Using key (for A and B): FF FF FF FF FF FF
BEWARE: Data will be written to the PICC, in sector #1
Card UID: 67 31 B0 BE
PICC type: MIFARE 1KB
Authenticating using key A...
Current data in sector:
   1      7   00 00 00 00  00 00 19 67  8E 00 00 00  00 00 00 00  [ 0 1 1 ] 
          6   00 00 00 00  FF FF FF FF  00 00 00 00  06 F9 06 F9  [ 1 1 0 ]  Value=0x0 Adr=0x6
          5   01 00 00 00  FE FF FF FF  01 00 00 00  05 FA 05 FA  [ 1 1 0 ]  Value=0x1 Adr=0x5
          4   01 02 03 04  05 06 07 08  08 09 FF 0B  0C 0D 0E 0F  [ 0 0 0 ] 
 
Reading data from block 4 ...
Data in block 4:
 01 02 03 04 05 06 07 08 08 09 FF 0B 0C 0D 0E 0F
 
Authenticating again using key B...
Writing data into block 4 ...
 01 02 03 04 05 06 07 08 08 09 FF 0B 0C 0D 0E 0F
 
Reading data from block 4 ...
Data in block 4:
 01 02 03 04 05 06 07 08 08 09 FF 0B 0C 0D 0E 0F
Checking result...
Number of bytes that match = 16
Success :-)
 
Current data in sector:
   1      7   00 00 00 00  00 00 19 67  8E 00 00 00  00 00 00 00  [ 0 1 1 ] 
          6   00 00 00 00  FF FF FF FF  00 00 00 00  06 F9 06 F9  [ 1 1 0 ]  Value=0x0 Adr=0x6
          5   01 00 00 00  FE FF FF FF  01 00 00 00  05 FA 05 FA  [ 1 1 0 ]  Value=0x1 Adr=0x5
          4   01 02 03 04  05 06 07 08  08 09 FF 0B  0C 0D 0E 0F  [ 0 0 0 ] 
 
 
Будте добры кто-нибудь напишите пошагово, что делать дальше. Только прошу не пишите что в библиотеке все написано.
У меня скоро мозг взорвётся. Заранее благодарен.
Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

А что позволяет вам думать, что RC522 умеет делать то, чего вы от него хотите?

Я для таких целей этот модуль купил, только никак (месяца 3 уже...) времени поиграться с ним не найду:

http://www.ebay.com/itm/400757352811?_trksid=p2059210.m2749.l2649&ssPage...

zomdra
Offline
Зарегистрирован: 06.01.2015

Приветствую всех! Так мне (и я думаю не только мне) позволяет вам думать, что RC522 Может программировать/считывать rfid карты, описание на AliExprewss. Но я уже сам башкой стал доходить, что это только ридер. Спасибо Gippopotam.

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

zomdra пишет:

Приветствую всех! Так мне (и я думаю не только мне) позволяет вам думать, что RC522 Может программировать/считывать rfid карты, описание на AliExprewss. Но я уже сам башкой стал доходить, что это только ридер. Спасибо Gippopotam.

 

Нет, RC522 на самом деле умеет таги на корточке писать. А вот 532 (по моей ссылке), по идее может не только переписать все данные карты (хотя я до конца и не уверен), но и эмулировать собой карту (почти уверен).

zomdra
Offline
Зарегистрирован: 06.01.2015

Спасибо за ответ. Хорошо, как это делается (записать код прочитанного ключа на карточку-заготовку)? У меня получается только прочатать ключ, и то не уверен, что всё делаю правильно.

Кстати PN532 - ещё большая загадка. Про этот писатель-читатель вообще мало чего в паутине. 

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Ну если "заготовка" работает как обычная карта - то записывать нужно стандартными способами. Тоесть читаете содержимое ключа по блокам, если карта трабует авторизации - то используете нужные ключи авторизации. Начинать запись следует с 0 блока - так как он несет ИД карты. После записи ИД должен смениться. Потом поблоково записываете карту заготовку, проверяете запись, если где-то не записалось или ошибка пытаетесь еще раз записать этот блок данных. Отличие заготовок от готовых карт - у них доступны на запись 0 блок, где находится серийныйномер(ИД). Так как ключи хранятся в этих же блоках данных - то скорее всего они установятся при записи соответвующего блока. Нужно вести лог записи чтобы знать какие именно данные были записаны в какой блок - чтобы не утратить доступ к карте.

Я записывал данные на проездные московского метро(те самые которые там везде валяются), там доступно 32 байта - 8 блоков по 4 байта в блоке.Тип карты Mifare Ultralight. Остальные 8 блоков(в том числе системные) заблокированны и не записываются(что можно узнать при чтении системного блока и взглянув в мануал)

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

Также рекомендую сбрасывать карту после записи каждого блока и заного искать ее.

zomdra
Offline
Зарегистрирован: 06.01.2015
Спасибо за помощь. Я могу прочитать инфу ключа по блокам. Например:
        13   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
         12   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
   2     11   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
         10   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          9   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          8   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
   1      7   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
          6   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          5   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          4   01 02 03 04  05 06 07 08  08 09 FF 0B  0C 0D 0E 0F  [ 0 0 0 ] 
   0      3   00 00 00 00  00 00 FF 07  80 69 FF FF  FF FF FF FF  [ 0 0 1 ] 
          2   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          1   00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00  [ 0 0 0 ] 
          0   07 0A 2A 71  56 88 04 00  85 00 00 00  00 00 00 00  [ 0 0 0 ]
И т.д.  до 15-го сектора  
 
Я вижу где прописан ИД (07 0A 2A 71) в нулевом блоке.
Проблема в том, что я не знаю где вообще режим записи в проге arduino-1.5.7
И как и какой использовать скетч. Т.е. где у этого парня кнопка.
4ishops
Offline
Зарегистрирован: 06.10.2012

Gippopotam пишет:

zomdra пишет:

Приветствую всех! Так мне (и я думаю не только мне) позволяет вам думать, что RC522 Может программировать/считывать rfid карты, описание на AliExprewss. Но я уже сам башкой стал доходить, что это только ридер. Спасибо Gippopotam.

 

Нет, RC522 на самом деле умеет таги на корточке писать. А вот 532 (по моей ссылке), по идее может не только переписать все данные карты (хотя я до конца и не уверен), но и эмулировать собой карту (почти уверен).

 

В описании на Ebay ничего про эмуляцию нет...  чипом должен поддерживаться режим HCE (Host Card Emulation)

droncs
Offline
Зарегистрирован: 02.02.2015

Подскажите на Mega 2560 ДВА RC522 Card Read Module RFID можно подключить?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

droncs пишет:

Подскажите на Mega 2560 ДВА RC522 Card Read Module RFID можно подключить?

Теоретически - да.

Protez1999
Offline
Зарегистрирован: 08.07.2012

А как записать метку на карту с помощью этого модуля? Может у кого нибудь есть код а то ничего не могу найти.

Nurjan
Offline
Зарегистрирован: 07.06.2014

naberi v youtube dmitru osipov rfid

Купил такую штуку на ebay. Может программировать/считывать rfid карты

Не могу разобраться с подключением к arduino uno и не нашел никакого внятного объяснения как заставить эту штуку работать. Может кто из форумчан работал с таким устройством. Помогите, а?

[/quote]

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Nurjan пишет:

Купил такую штуку на ebay. Может программировать/считывать rfid карты

Не могу разобраться с подключением к arduino uno и не нашел никакого внятного объяснения как заставить эту штуку работать. Может кто из форумчан работал с таким устройством. Помогите, а?

https://www.youtube.com/watch?v=a583vq0vXyg

timurlan
Offline
Зарегистрирован: 04.03.2015

ты не видишь! ты уже на писал смотри четвертый сектор 1,2,3,4,5,6,7,8,

timurlan
Offline
Зарегистрирован: 04.03.2015
 
    // In this sample we use the second sector,
    // that is: sector #1, covering block #4 up to and including block #7
    byte sector         = 1;
    byte blockAddr      = 4;
    byte dataBlock[]    = {
        0x01, 0x02, 0x03, 0x04, //  1,  2,   3,  4,
        0x05, 0x06, 0x07, 0x08, //  5,  6,   7,  8,
        0x08, 0x09, 0xff, 0x0b, //  9, 10, 255, 12,
        0x0c, 0x0d, 0x0e, 0x0f  // 13, 14,  15, 16
 
 
    // In this sample we use the second sector,
    // that is: sector #1, covering block #4 up to and including block #7
    byte sector         = 1;
    byte blockAddr      = 4;
    byte dataBlock[]    = {
        0x22, 0x22, 0x23, 0x24, //  1,  2,   3,  4,
        0x22, 0x22, 0x22, 0x22, //  5,  6,   7,  8,
        0x22, 0x22, 0x22, 0x22, //  9, 10, 255, 12,
        0x22, 0x22, 0x22, 0x22  // 13, 14,  15, 16
 
нада изменить цифры

 

Oleg24
Offline
Зарегистрирован: 02.09.2014

Здравствуйте, пользуюсь стандартной библиотекой. Возможно ли выполнять разные действия одной картой? Если карта, к примеру, поднесена на 2 секунды, включается один пин. Если карта считывается больше 2 секунд, то включается другой пин.
В общем одной картой и одним ридером открывать две двери.

Terranovod
Offline
Зарегистрирован: 29.04.2015

Доброго времени суток , помогите новечку плизз , купил клон уно и rc522 подключил все согласно схеме в начале и залил скеч оттуда же и собственно ноль эмоций порт молчит , может кто сталкивался ?

 

Oleg24
Offline
Зарегистрирован: 02.09.2014

Стандартные скетчи из библиотеки тоже молчат?

droncs
Offline
Зарегистрирован: 02.02.2015

Можно. насколько пинов хватит...

кроме:

MISO ---> 12

MOSI ---> 11

SCK ----> 13

Все остальные rc522 также подключаются Кроме сигнального 

У меги другие... 

Можно даже в масив записать.

 
Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Terranovod пишет:

Доброго времени суток , помогите новечку плизз , купил клон уно и rc522 подключил все согласно схеме в начале и залил скеч оттуда же и собственно ноль эмоций порт молчит , может кто сталкивался ?

 

молчит в каком смысле?

если не реагирует на карты, которые шли в комплекте - это обычное дело, пробуйте заведомо рабочие карты.

skyspirit
Offline
Зарегистрирован: 27.02.2015

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

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

skyspirit пишет:

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

см. сообщение #87

yucan
Offline
Зарегистрирован: 20.04.2015

Здравствуйте, тоже приобрёл RC522А!

Загрузил скетч для управления контролем доступа из 10-го урока http://lesson.iarduino.ru/page/kontrol-dostupa-rfid-rc522-servo-arduino/

Откомпилировал, загрузил, но монитор карту не определяет. Вот скетч

#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h> // библиотека "RFID".
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp;  // для хранения номера метки в десятичном формате
Servo servo;
void setup() {
  Serial.begin(9600);
  Serial.println("Waiting for card...");
  SPI.begin();  //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.
  servo.attach(6);
  servo.write(0);  // устанавливаем серву в закрытое состояние
}
void loop() {
  // Поиск новой метки
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Выбор метки
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  uidDec = 0;
  // Выдача серийного номера метки.
  for (byte i = 0; i < mfrc522.uid.size; i  )
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec * 256 + uidDecTemp;
  }
  Serial.println("Card UID: ");
  Serial.println(uidDec); // Выводим UID метки в консоль.
  if (uidDec == 1665019904) // Сравниваем Uid метки, если он равен заданному то серва открывает.
  {
    tone(5, 200, 500); // Делаем звуковой сигнал, Открытие
    servo.write(90); // Поворачивавшем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворачивавшем ключ и т.д.)
    delay(3000); // пауза 3 сек и механизм запирается.
    tone(5, 500, 500); // Делаем звуковой сигнал,  Закрытие
  }
  servo.write(0);  // устанавливаем серву в закрытое состояние
}

Кто может помочь, подскажите пожалуйста!

 

droncs
Offline
Зарегистрирован: 02.02.2015

Это скейч будет работать только если ваша карта имеет uid 1665019904. Если карта с таким номером поднесена то серва повернется... Вам нужно узнать номер вашей карты https://youtu.be/z6-q_BS9LmQ

yucan
Offline
Зарегистрирован: 20.04.2015

Спасибо, что откликнулись! Я как раз свой номер и внёс! (узнал из другого скетча). Дело в том, что дуина никак не раегирует на карточку. Где то здесь есть ошибка, никак не докумекаю

  }
  uidDec = 0;
  // Выдача серийного номера метки.
      for (byte i = 0; i < mfrc522.uid.size; i  )
 {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec * 256 + uidDecTemp;
  }
  Serial.println("Card UID: ");
  Serial.println(uidDec); // Выводим UID метки в консоль.
  if (uidDec == 1665019904) // Сравниваем Uid метки, если он равен заданному то серва открывает.
  {

droncs
Offline
Зарегистрирован: 02.02.2015

У вас не проверки статуса вот код для проверки буфера. Отредактируйте под себя...

void loop() {
  digitalWrite(Relay, HIGH);
        byte status;
        byte byteCount;
        byte buffer[2]; // длина массива (16 байт + 2 байта контрольная сумма) 
        
        byteCount = sizeof(buffer);
        uidDec = 0;
        status = mfrc522.PICC_RequestA(buffer, &byteCount); 
          if (mfrc522.PICC_ReadCardSerial()) {
                  for (byte i = 0; i < mfrc522.uid.size; i++) {  
                     uidDecTemp=mfrc522.uid.uidByte[i];
                     uidDec=uidDec*256+uidDecTemp;
                  }
                  if ((uidDec==4088481163) && (switchOn == false)) {
                    digitalWrite(Relay, HIGH);
                    delay(1000);
                    switchOn = true;
                     Serial.println("Switched On");
                  }                          
                  mfrc522.PICC_ReadCardSerial();
                  
        } else {
          if (switchOn == true) {
            digitalWrite(Relay, HIGH);
             Serial.println("Switched Off");
            switchOn = false;
          }
        }
 }