¼³¸í:
ÀÌRFID ¸ðµâ±âÃÊMFRC522Ic¿Í ±× mifareÀÇ Å±׸¦ ÀÐ°í ¾µ ¼ö ÀÖ½À´Ï´Ù. ¸¶ÀÌÅ©·Î Á¦¾î±â ¹× Ä«µå Æǵ¶±â´Â Ä¿¹Â´ÏÄÉÀ̼ÇÀ» À§ÇØ spi¸¦ »ç¿ëÇÕ´Ï´Ù. Ä«µå Æǵ¶±â ¹× ű״ 13.56MHz ÀüÀÚ±âÀåÀ» »ç¿ëÇÏ¿© Åë½ÅÇÕ´Ï´Ù.
RFID MFRC522 ¸ðµâÀº MF1xxS20, MF1xxS70 ¹× MF1xxS50 ű׸¦ Áö¿øÇÕ´Ï´Ù. RFID MFRC522 ¸ðµâÀº ºñÁ¢ÃË½Ä Åë½ÅÀ» Áö¿øÇϸç MIFARE ³ôÀº Àü¼Û ¼Óµµ¸¦ µÎ ¹æÇâÀ¸·Î ÃÖ´ë 848 kBd »ç¿ëÇÕ´Ï´Ù.
RFID mfrc522¿¡´Â ¼ÒÇü µðÀÚÀÎ ¹× ¼ÒÇü 36x36mm°¡ ÀÖ½À´Ï´Ù. ¼ö °ø±Þ 3.3V ¶Ç´Â 5V. ½¬¿î ¿¬°á º¸µå 5V, ÇÊ¿ä ·¹±Ö·¹ÀÌÅÍ 3.3V.
¾ÈÅ׳ª´Â ³Î·Î °ÇÃàµË´Ï´Ù. ±×¸®°í ÁÁÀº °¨µµ ³ôÀÌ 25mm
* ÅÂ±× ¼³Á¤ÇÏÁö.
½ºÄÉÄ¡ Arduino:
// VCC----5V
// GND----GND
// RST----D5
// SDA----D10
// MOSI---D11
// MISO---D12
// SCK----D13
# Æ÷ÇÔ <SPI.h>
# Include <RFID.h>
RFID rfid(10,5); /D10--SDA, D5--RST
¼¸íµÇÁö ¾ÊÀº char serNum[5];
Unsigned char writeDate[16] ={`R`, `o`, `b`, `o`, `t`, `D`, `y`, `n`, `-`, `T`, `e`, `, `t`, 0, 0};
Unsigned char sectorKeyA[16][16] = {
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },};
Unsigned char sectorNewKeyA[16][16] = {
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xff,0x07,0x80,0x69, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF },};
Void ¼³Á¤ ()
{
Serial.begin(9600);
SPI.begin();
Rfid. init();
}
Void ·çÇÁ ()
{
¼¸íµÇÁö ¾ÊÀº char i,tmp;
Unsigned char »óÅÂ;
Unsigned char str[MAX_LEN];
Unsigned char RC_size;
Unsigned char blockAddr;
Rfid. isCard();
If (rfid.readCardSerial())
{
ÀÏ·Ã. Àμâ ("Ä«µåÀÇ ¹øÈ£´Â:");
Serial.print(rfid.serNum[0],HEX);
Serial.print(rfid.serNum[1],HEX);
Serial.print(rfid.serNum[2],HEX);
Serial.print(rfid.serNum[3],HEX);
Serial.print(rfid.serNum[4],HEX);
Serial.println("");
}
Rfid. selectTag(rfid.serNum);
BlockAddr = 7;
If (rfid.auth(PICC_AUTHENT1A, blockAddr, sectorKeyA[blockAddr/4], rfid.serNum) = = MI_OK)
{
»óÅÂ = rfid.write(blockAddr, sectorNewKeyA[blockAddr/4]);
Serial.print("»õ Ä«µå ¾ÏÈ£¸¦ ¼³Á¤ÇÏ°í ºÎ¹®ÀÇ µ¥ÀÌÅ͸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù:");
Serial.println(blockAddr/4,DEC);
BlockAddr = blockAddr - 3;
»óÅÂ = rfid.write(blockAddr, writeDate);
If (»óÅÂ = = MI_OK)
{
Serial.println("¾²±â Ä«µå OK!");
}
}
BlockAddr = 7;
»óÅÂ = rfid.auth(PICC_AUTHENT1A, blockAddr, sectorNewKeyA[blockAddr/4], rfid.serNum);
If (»óÅÂ = = MI_OK)
{
BlockAddr = blockAddr - 3;
If (rfid.read(blockAddr, str) = = MI_OK)
{
ÀÏ·Ã. Àμâ ("Ä«µå¿¡¼ Àбâ, µ¥ÀÌÅÍ´Â:");
Serial.println((char *)str);
}
}
Rfid. Á¤Áö ();
Áö¿¬ (500);
}
»çÁø:
¹®¼
¹®¼ (Áö½Ã ¼³¸í¼, µµ½Ä µî), ¸µÅ©:
- Robotdyn.com/NFC-MFRC522-EN-±¹Á¦;
- Robotdyn.ru/NFC-MFRC522-RU·¯½Ã¾Æ.