RFID PN532

Создаем свой блок. Вопросы, помощь знатоков.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Здравствуйте
Помогите пожалуйста создать пользовательский блок для RFID PN532
, с единственным выходом-id card.Наподобие как в блоке на 522.
Подключен по I2C
Выдает в UART следущее
Found a card!
UID Length: 4 bytes
UID Value: 0x24 0x3C 0xFD 0x6E

Неделю бьюсь,ничего не выходит.
Готов оплатить труд.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

[ref]igorgoga[/ref], Выложите пример, скетч, как такое получили, библиотеку...
Этот пример использовали?
Какие пины ещё использованы, кроме I2C ?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

[spoiler]

Код: Выделить всё

/**************************************************************************/
/*! 
    This example will attempt to connect to an ISO14443A
    card or tag and retrieve some basic information about it
    that can be used to determine what type of card it is.   
   
    Note that you need the baud rate to be 115200 because we need to print
    out the data and read from the card at the same time!

    To enable debug message, define DEBUG in PN532/PN532_debug.h
    
*/
/**************************************************************************/


/* When the number after #if set as 1, it will be switch to SPI Mode*/
#if 0
  #include <SPI.h>
  #include <PN532_SPI.h>
  #include "PN532.h"

  PN532_SPI pn532spi(SPI, 10);
  PN532 nfc(pn532spi);

/* When the number after #elif set as 1, it will be switch to HSU Mode*/
#elif 0
  #include <PN532_HSU.h>
  #include <PN532.h>
      
  PN532_HSU pn532hsu(Serial1);
  PN532 nfc(pn532hsu);

/* When the number after #if & #elif set as 0, it will be switch to I2C Mode*/
#else 
  #include <Wire.h>
  #include <PN532_I2C.h>
  #include <PN532.h>
  #include <NfcAdapter.h>
  
  PN532_I2C pn532i2c(Wire);
  PN532 nfc(pn532i2c);
#endif
  
void setup(void) {
  Serial.begin(115200);
  Serial.println("Hello!");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }
  
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
  
  // Set the max number of retry attempts to read from a card
  // This prevents us from waiting forever for a card, which is
  // the default behaviour of the PN532.
  nfc.setPassiveActivationRetries(0xFF);
  
  // configure board to read RFID tags
  nfc.SAMConfig();
    
  Serial.println("Waiting for an ISO14443A card");
}

void loop(void) {
  boolean success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
  uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
  
  // Wait for an ISO14443A type cards (Mifare, etc.).  When one is found
  // 'uid' will be populated with the UID, and uidLength will indicate
  // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
  
  if (success) {
    Serial.println("Found a card!");
    Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i=0; i < uidLength; i++) 
    {
      Serial.print(" 0x");Serial.print(uid[i], HEX); 
    }
    Serial.println("");
    // Wait 1 second before continuing
    delay(1000);
  }
  else
  {
    // PN532 probably timed out waiting for a card
    Serial.println("Timed out waiting for a card");
  }
}
[/spoiler]
Отправлено спустя 5 минут 29 секунд:
Подключено по i2c к меге (20,21) больше ничего не поключал,пример в файле из стандартной библиотеки.Он работает,выдает в сериал номер
карты по типу-- 0x24 0x3C 0xFD 0x6E
Мне нужно перенести этот скейтч в пользовательский блок flprog,что бы на выходе было id карты одной строкой,желательно при помощи переменной Unsigned long Integer.что бы номер был примерно-2121312123234
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

Ок, завтра. Возможно с другой бибкой...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Да,еще желательно чтобы можно было указать адрес i2c.В моем случае он 24,но желательно чтобы был пользоват.параметр с возможностью его задания.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

igorgoga писал(а): 28 ноя 2018, 17:56то бы на выходе было id карты одной строкой,желательно при помощи переменной Unsigned long Integer.что бы номер был примерно-2121312123234
В Вашем примере 4 байта - влезет в unsigned long, а если больше - чего делать?
Пока сделал два выхода - 4 и 3 байта.
Выход Ок прицепите к led - может заработает...
Не тестил - нет бибок, искать лень :)
Жду результата.
Мне пока сложно уловить момент "распараллеливанием внутри void loop(void)" - может знающие люди просветят?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Sancho писал(а): 29 ноя 2018, 12:17Жду результата.
Спасибо.На работе.в 21 приду и обязательно проверю!!!

Отправлено спустя 4 минуты 12 секунд:
Sancho писал(а): 29 ноя 2018, 12:17Не тестил - нет бибок, искать лень
Нужные библиотеки в файле задание есть....

Отправлено спустя 6 часов 23 минуты 44 секунды:
не компелируется....
ругается на эту строку
else out_2_267330372_1 = (out<<(i-4)*8) | uid;

отчет

C:\Users\Ferma2\AppData\Local\Temp\flprog\pr4\pr4.ino: In function 'void loop()':

pr4:36: error: 'out' was not declared in this scope

if(i<4)out_1_267330372_1 = (out<<i*8) | uid;

^

pr4:37: error: 'out' was not declared in this scope

else out_2_267330372_1 = (out<<(i-4)*8) | uid;

^

exit status 1
'out' was not declared in this scope
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Народ,не ужели ни кто не поможет?? Для тех кто понимает в с++ это элементарная задача...
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

[ref]igorgoga[/ref], Погоди, не кипишуй. :)

Отправлено спустя 26 минут 19 секунд:
Скетч использует 5000 байт (16%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 528 байт (25%) динамической памяти, оставляя 1520 байт для локальных переменных.
Поправил, забыл немного о двух выходах :)
Пришлось закоментить //#include <NfcAdapter.h> в IDE - у меня нет бибки, может и не нужна, тогда удалить в блоке.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Вобщем при первом прикладывании карты пишет ее номер например 2169996131 светодиод загорается и больше не гаснет а только
немного моргает при новой карте
если повторно ее же приложить-вообще ничего не происходит,только нужно сначала любую другую,только потом первая опять выдаст номер
при прикладывании тел-выдает сразу две строки-
594463061
75508674

Отправлено спустя 8 часов 40 минут 12 секунд:
igorgoga писал(а): 30 ноя 2018, 21:31светодиод загорается и больше не гаснет а только
немного моргает при новой карте
поправка-он тухнет только через 4 сек,после прикладывании карты

Отправлено спустя 12 минут 58 секунд:
igorgoga писал(а): 01 дек 2018, 06:11при прикладывании тел-выдает сразу две строки-
594463061
75508674
При этом на считывателе rf522 nfc метка этого же телефона определяется одной строкой вот так 3259640704
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

igorgoga писал(а): 01 дек 2018, 06:24поправка-он тухнет только через 4 сек,после прикладывании карты
Издержки Вашей библиотеки.
Всё остальное так-же.
Светодиод загорается когда бибка говорит о карте.
Я лишь Ваш пример завернул в ПБ.
Есть другие библиотеки - нужен будет ещё один провод к цифровому пину. Возможны положительные сдвиги...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

а то что одна и та же карта повторно не читается,тоже дело в библиотеке?
Если у вас есть свободное время,помогите пож.довести этот блок до рабочего состояния.Я в долгу не останусь.!!!!...Очень нужен для проекта
рабочий ридер на айтуси....
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

igorgoga писал(а): 01 дек 2018, 09:26а то что одна и та же карта повторно не читается,тоже дело в библиотеке?
При повторном поднесении загорается led?

Отправлено спустя 2 минуты 5 секунд:
есть возможность добавить ещё одно соединение от платы до ардуино?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Sancho писал(а): 01 дек 2018, 09:52При повторном поднесении загорается led?
нет

Отправлено спустя 28 секунд:
Sancho писал(а): 01 дек 2018, 09:52есть возможность добавить ещё одно соединение от платы до ардуино?
да
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

Какая плата, картинку, ссылку? Или уже знаешь где пин выхода прерывания на ней?
Бибка здесь
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

Sancho писал(а): 01 дек 2018, 15:27Какая плата, картинку, ссылку? Или уже знаешь где пин выхода прерывания на ней?
https://www.ebay.com/itm/NXP-PN532-NFC- ... :rk:2:pf:0

Отправлено спустя 1 минуту 54 секунды:
Sancho писал(а): 01 дек 2018, 15:27Бибка здесь
после 20-00 проверю.на работе...(((
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

Пин на плате IRQ к пину, указываемому в настройке блока. Поменяй в редакторе ПБ сразу на свой "по умолчанию".

Отправлено спустя 38 секунд:
Жаль, тогда коррекция только в понедельник....
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

ок

Отправлено спустя 3 минуты 48 секунд:
а как в настройках блока пин поменять,там нет возможности выбора....

Отправлено спустя 5 минут 55 секунд:
удаленно по тиму пытался залить скейтч-ругается на
pr41:9: error: 'PPIINNSS' was not declared in this scope

Adafruit_PN532 nfc_262194121_1( PPIINNSS , 100);

^

exit status 1
'PPIINNSS' was not declared in this scope

Отправлено спустя 3 минуты 52 секунды:
И еще вопрос.пока тестю на меге,но на практике будет потом нанка,кроме пина нужно мне еще что то будет менять? или достаточно в флпрог сменить контроллер?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

RFID PN532

Сообщение Sancho »

igorgoga писал(а): 01 дек 2018, 16:02достаточно в флпрог сменить контроллер
и пин.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
igorgoga
Рядовой
Сообщения: 21
Зарегистрирован: 04 май 2016, 14:40

RFID PN532

Сообщение igorgoga »

СПС.!!! Отпишусь по результату

Отправлено спустя 3 часа 53 минуты 17 секунд:
вобщем ничего не поменялось,так же и работает криво как было с первым вариантом,светодиод вообще теперь после первого считывания не тухнет....
пин 11 подключил...
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя