RFID RC522 a karty ISIC, ITIC
RFID RC522 a karty ISIC, ITIC
Dobrý deň,
vyskúšal som všetky dostupné programy aj knižnice pre Arduino, ale modul RFID RF522 Firmware Version: 0x92=v2.0 nedokáže rozpoznať študentskú kartu ITIC a učiteľskú kartu ISIC.
Nie som si celom istý, ale niektoré (asi staršie) študentské karty ISIC fungovali.
Predávajú sa čítačky 13,56MHz (cca. 65Euro), ktoré čítajú aj ISIC a ITIC karty, ale je to pri objednávke treba zadať (formát výstupu).
Takže predpokladám, že problém je niekde v SW a bude treba pridať detekciu týchto kariet.
Platobné karty z rôznych bánk fungujú, ale študenti majú hlavne kartu ISIC.
Potrebujem len, aby čítačka zareagovala a poslala nejaké ID(číslo), ktoré sa bude dať použiť na jednoduchú identifikáciu.
Vopred ďakujem za odpovede.
Kamil
vyskúšal som všetky dostupné programy aj knižnice pre Arduino, ale modul RFID RF522 Firmware Version: 0x92=v2.0 nedokáže rozpoznať študentskú kartu ITIC a učiteľskú kartu ISIC.
Nie som si celom istý, ale niektoré (asi staršie) študentské karty ISIC fungovali.
Predávajú sa čítačky 13,56MHz (cca. 65Euro), ktoré čítajú aj ISIC a ITIC karty, ale je to pri objednávke treba zadať (formát výstupu).
Takže predpokladám, že problém je niekde v SW a bude treba pridať detekciu týchto kariet.
Platobné karty z rôznych bánk fungujú, ale študenti majú hlavne kartu ISIC.
Potrebujem len, aby čítačka zareagovala a poslala nejaké ID(číslo), ktoré sa bude dať použiť na jednoduchú identifikáciu.
Vopred ďakujem za odpovede.
Kamil
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: RFID RC522 a karty ISIC, ITIC
Nemám tu čtečku, nemám to jak vyzkoušet,
ale s jinou čtečkou jsme to řešili, ISIC myslím používá technologii MIFARE 1k ?
Podle datasheetu to ta tvá čtečka umí - tak jen pohledat knihovnu která čte MIFARE
PS: nejsem si jistý, ale karta ISIC používá kryptování, ale teoreticky ID karty (první 4 bajty ?) by měly jít přečíst.
ale s jinou čtečkou jsme to řešili, ISIC myslím používá technologii MIFARE 1k ?
Podle datasheetu to ta tvá čtečka umí - tak jen pohledat knihovnu která čte MIFARE
PS: nejsem si jistý, ale karta ISIC používá kryptování, ale teoreticky ID karty (první 4 bajty ?) by měly jít přečíst.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: RFID RC522 a karty ISIC, ITIC
Já je normálně přes Arduino četl přes MF RC522. Úplně bez problémů vyběhla všechna data. Používal jsem nějaký příklad přímo z knihovny na dump dat.
-
- Příspěvky: 579
- Registrován: 01 srp 2017, 19:29
- Reputation: 0
- Bydliště: Poprad
- Kontaktovat uživatele:
Re: RFID RC522 a karty ISIC, ITIC
Môj ISIC z 2016 RFID čítačka RC522 prečíta. Ten má ešte MiFare Classic 1K. Používa protokol ISO/IEC 14443A.
Dnešné ISIC-y používajú Mifare Desfire (asi EV1). Používa protokol ISO/IEC 14443-4, ktorý je kompatibilný s ISO/IEC 14443A.
Podľa špecifikácie RC522 podporuje aj Desfire karty.
V špecifikácii sa spomína iba štandard ISO/IEC 14443A. Ale keďže ten 14443-4 je kompatibilný, malo by to fungovať.
Bohužiaľ som nemal možnosť vyskúšať.
Dnešné ISIC-y používajú Mifare Desfire (asi EV1). Používa protokol ISO/IEC 14443-4, ktorý je kompatibilný s ISO/IEC 14443A.
Podľa špecifikácie RC522 podporuje aj Desfire karty.
V špecifikácii sa spomína iba štandard ISO/IEC 14443A. Ale keďže ten 14443-4 je kompatibilný, malo by to fungovať.
Bohužiaľ som nemal možnosť vyskúšať.
Re: RFID RC522 a karty ISIC, ITIC
je to sice pro RC532 a je to ultra pokus jen pro cteni UID a jeho posilani po bluetooth, ale cte litacku, fio, isic schollar...
Kód: Vybrat vše
/* NFC reader with color display and bluetooth link (serial echo) to android phone
* selfedu project for arduino nano, under GNU/GPL
*
* version 0.5, demo, 03/2019.
* Arduino NANO - packet version
* SPI disp, I2C PN532, BT HC04, keyboard via A0
*
*/
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include <SoftwareSerial.h>
#define TFT_CS 10 // CS for TFT
#define TFT_RST 9 // Reset for TFT
#define TFT_DC 8 // DC(A0) for TFT
#define TFT_BACKLIGHT 6 // Display backlight pin
#define RX 2 // serial data RX modul HC04/06
#define TX 3 // serial data TX modul HC04/06
const int piskle = 7; // beep (if UID was readed)
// default HARDWARE SPI pins Uno/Nano:
// SPI MOSI = pin 11 (sda)
// SPI MISO = pin 12
// SPI SCLK = pin 13 (sck)
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
PN532_I2C pn532i2c(Wire); // vytvoření instance I2C komunikace pro PN532 adr 0x24
PN532 nfc(pn532i2c); // vytvoření instance PN532 NFC modulu
SoftwareSerial bluetooth(TX, RX); // default pair PIN 1234
void pipni() {
digitalWrite(piskle, HIGH);
delay(50);
digitalWrite(piskle, LOW);
}
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
nfc.begin();
pinMode(piskle, OUTPUT);
pinMode(TFT_BACKLIGHT, OUTPUT);
//tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
tft.initR(INITR_GREENTAB); // Init ST7735S chip, greentab
tft.setRotation(3);
welcomeScreen();
// uložení verze desky pro kontrolu jejího připojení
uint32_t versiondata = nfc.getFirmwareVersion();
// kontrola načtené verze NFC modulu
if (!versiondata) {
Serial.println("Nebyl nalezen PN53x modul!");
bluetooth.println("Nebyl nalezen PN53x modul!");
// zastavení programu
while (1);
}
else {
// vytištění informací o připojeném modulu
Serial.print("Nalezen modul PN5"); Serial.println((versiondata >> 24) & 0xFF, HEX);
bluetooth.print("Nalezen modul PN5"); bluetooth.println((versiondata >> 24) & 0xFF, HEX);
Serial.print("Firmware verze "); Serial.print((versiondata >> 16) & 0xFF, DEC);
bluetooth.print("Firmware modulu NFC - verze "); bluetooth.print((versiondata >> 16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata >> 8) & 0xFF, DEC);
bluetooth.print('.'); bluetooth.println((versiondata >> 8) & 0xFF, DEC);
}
// nastavení maximálního počtu pokusů o čtení NFC tagu,
// 0xFF odpovídá cca jedné sekundě
nfc.setPassiveActivationRetries(0x10);
// konfigurace NFC modulu pro čtení tagů
nfc.SAMConfig();
// vytištění informace o začátku čtení
Serial.println("PN532 modul nastaven, prilozte tag...");
pipni();
}
void welcomeScreen() {
digitalWrite(TFT_BACKLIGHT, HIGH); // Backlight TFT on
tft.fillScreen(ST77XX_BLACK);
tft.setCursor(3,50);
tft.setTextSize(2);
tft.setTextColor(ST77XX_RED);
tft.print("NFC ctecka"); bluetooth.println("NFC reader");
tft.setCursor(3,70);
tft.setTextSize(1);
tft.setTextColor(ST77XX_GREEN);
tft.print("Radarixos, ver. 0.5");bluetooth.println("Radarixos, ver. 0.5");
tft.setCursor(3,90);
tft.setTextSize(1);
tft.setTextColor(ST77XX_MAGENTA);
tft.print("Bluetooth serial"); bluetooth.println("Bluetooth - serial link seems OK!");
}
void printHex(byte *buffer, byte bufferSize)
{
for (byte i = 0; i < bufferSize; i++)
{
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
void cudliky() {
String text;
int analogData = analogRead(0);
if (analogData < 50) text = "BUDIZ "; //do zeme 0R
if (analogData > 150 && analogData < 250) text = "DOLU "; //213
if (analogData > 650 && analogData < 750) text = "NAHORU "; //695
if (analogData > 950 && analogData < 1100) text = "NIC "; //1023
tft.fillRect(3,85,150,17,ST77XX_BLUE);
tft.setTextColor(ST77XX_WHITE);
tft.setCursor(5,90);
tft.setTextSize(1);
tft.print(text); tft.print(analogData);
Serial.println(text); bluetooth.println(text);
Serial.println(analogData);
}
void loop() {
//cteni klavesnice na A0
cudliky();
//modry podklad a text "Nactena data:"
tft.fillRect(3,5,150,17,ST77XX_BLUE);
tft.setTextColor(ST77XX_WHITE);
tft.setCursor(5,10);
tft.setTextSize(1);
tft.print("Nactena data:");
// vytvoření proměnných, do kterých se budou ukládat výsledky čtení
boolean uspech; // úspěšné čtení
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // unikátní ID tagu
uint8_t uidLength; // délka ID tagu
// zahájení čtení tagů v okolí, výsledek čtení se uloží do nastavených proměnných
uspech = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
// pokud je čtení úspěšné, vypíšeme získané informace
if (uspech) {
Serial.println("Nacten NFC:"); bluetooth.println("Nacten NFC: ");
pipni();
tft.fillScreen(ST77XX_BLACK);
tft.setTextSize(1);
Serial.print("UID delka: ");
Serial.print(uidLength, DEC);
Serial.println(" bytu");
tft.setCursor(5,50);
tft.setTextColor(ST77XX_GREEN);
tft.print("UID delka: ");
tft.setTextColor(ST77XX_WHITE);
tft.setCursor(5,60);
tft.print(uidLength, DEC);
tft.print(" bytu");
Serial.print("UID hodnoty: ");
tft.setTextColor(ST77XX_GREEN);
tft.setCursor(5,25);
tft.setTextSize(1);
tft.print("UID v hex: "); bluetooth.println("UID v hex:");
tft.setCursor(5,35);
for (uint8_t i = 0; i < uidLength; i++) {
Serial.print(" 0x"); Serial.print(uid[i], HEX);
tft.setTextColor(ST77XX_WHITE);
tft.print(uid[i] < 0x10 ? " 0" : " "); //zapis s mezerama mezi bytama
tft.print(uid[i], HEX); //zapis s mezerama mezi bytama
bluetooth.print(uid[i] < 0x10 ? " 0" : " "); //zapis s mezerama mezi bytama
bluetooth.print(uid[i], HEX); //zapis s mezerama mezi bytama
}
Serial.println(""); bluetooth.println(""); //odradkovani na serialu a bluetooth
}
else {
// vytištění informace o vypršení času čtení
Serial.println("zadny tag.");
}
}
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti