تکنولوژی RFID یکی از کاربردی ترین روش ها در سیستم های کنترل تردد است . به طور کلی هر سیستم RFID متشکل از دو قسمت گیرنده و تگ RFID می باشد . تگ های RFID که در قالب جا سوئیچی ، کارت ، برچسب و … هستند که در داخل آن ها یک میکروکنترلر کوچک به همراه یک آنتن وجود دارد . با نزدیک کردن تگ به سیستم گیرنده ، گیرنده با القای امواج الکترومغناطیسی تگ را فعال کرده و سپس بر اساس یک پروتکل خاص و در فرکانسی مشخص اطلاعات مابین تگ و گیرنده جا به جا می شود . ماژول های rfidزیادی در بازار وجود دارند که هر کدام ویژگی های خاص خود را دارد . از جمله ماژول هایی که قابلیت خواندن و نوشتن تگ های 13.56MHz را دارند مدل PN532 شرکت NXP می باشد . این ماژول قابلیت های زیادی دارد و از کلیه تگ های با فرکانس 13.56MHz مایفر پتشیبانی می کند . همچنین علاوه بر قابلیت خواندن ، امکان نوشتن بر روی تگ ها را نیز دارد . یکی از مهمترین مزیت های PN532 پشتیبانی از NFC می باشد . لذا به راحتی می توانید توسط گوشی های هوشمندی که قابلیت NFC دارند با ماژول PN532 ارتباط برقرار کنید . ماژول PN532 داری یک دیپ سوئیچ دوتایی است که از طریق آن می توان رابط کنترلی ماژول را انتخاب کرد . در تصویر زیر حالت های مختلف دیپ سوئیچ ماژول نشان داده شده است :
در این آموزش ما از رابط SPI استافده خواهیم کرد لذا دیپ سوئیچ ماژول را بر روی حالت SPI قرار دهید .
ماژول PN532 را همانند شکل زیر به برد آردوینو متصل کنید :
/*You can download the code library below*/ #include <Adafruit_PN532.h> #include "Wire.h" #include "LiquidCrystal.h" // Optioanl #define SCK (13) #define MOSI (11) #define SS (10) #define MISO (12) Adafruit_PN532 nfc(SCK, MISO, MOSI, SS); void setup(void) { Serial.begin(9600); Serial.println("14CORE | NFC - SPI Test Code TAG Reader"); Serial.println("Initializing please wait......."); delay(3000); 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("Device Found PN5 Chip"); Serial.println((versiondata>>24) & 0xFF, HEX); Serial.print("Firmware version > "); Serial.print((versiondata>>16) & 0xFF, DEC); Serial.println((versiondata>>8) & 0xFF, DEC); nfc.SAMConfig(); //Set to read RFID tags Serial.println("Waiting for an ISO14443A Card ..."); }
مطابق شکل زیر ماژول را به آردوینو متصل کنید :