Arduino Arduino Nano İle NFC Uygulaması By Konuk Yazar Posted on 28 Ağustos 2017 8 min read 0 0 4,768 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr 1.Arduino NANO Arduino Nano; Atmega328 temelli bir mikrodenetleyici kartıdır. Üzerinde 14 adet dijital giriş/çıkış pini (6 tanesi PWM çıkışı olarak kullanılabilir), 8 analog giriş, 16Mhz kristal, usb soketi, ICSP konektörü ve reset tuşu bulundurmaktadır. Kart üzerinde mikrodenetleyicinin çalışması için gerekli olan her şey bulunmaktadır. Kolayca usb kablosu üzerinden bilgisayara bağlanabilir, adaptör veya pil ile çalıştırılabilir. Nano; program yüklemek ve bilgisayar haberleşmesi yapmak için üzerinde FTDI FT232 usb-seri dönüştürücü bulundurmaktadır. 2.NFC Module V3 Near field communication (Yakın Alan İletişimi); müşteri elektroniği, mobil cihazlar ve bilgisayarlar ile etkileşim için tasarlanmış bir kısa menzilli, kablosuz, kişisel iletişim alanı teknolojisidir. Yakın Alan İletişimi manyetik alan indüksiyonu kullanarak çalışır ve etiket ile okuyucu işlevine sahiptir. Bu teknolojiyi kullanan cihazları birbirlerine dokundurularak veya yakın mesafeye getirilerek 2 yönlü iletişim sağlanabilir. Bluetooth’un aksine, NFC uyumlu bir cihaz ile pasif RFID (güç kaynağına ihtiyaç duymayan cihazlar) teknolojisinin yerleşik olduğu kredi kartı, poster, ambalaj ve fiziksel ürünler gibi geniş yelpazedeki nesneler etkileşime geçebilir. Aynı zamanda başka bir NFC uyumlu cihazla P2P(peer to peer – iki eş cihaz arasındaki bağlantı) iletişimi destekleyebilir. Şekil 2’de görülen modül Elektronik meraklıları için NFC teknolojisini kullanabilmek üzere tasarlanmıştır. Bu modül NXP PN532 etrafında inşa edilmiştir. NXP PN532, NFC alanında çok popüler bir şirkettir ve şirket geliştiricilere yardımcı olmak için birçok teknoloji belgesi sunuyor. İşleri kolaylaştırmak için, bu modül için kitaplık da oluşturulmuştur. Arduino kütüphanesini indirmek için ve daha detaylı bilgi için https://dangerousthings.com/wp-content/uploads/PN532_Manual_V3-1.pdf ziyaret edebilirsiniz. 3.Kullanılan Malzemeler Arduino Nano Nfc Module V3 125 KHz RFID Anahtar 16*2 Lcd 10k’lık Potansiymetre kullanılmıştır. 4-Devre Şeması LCD Ekran bağlantıları ise şu şekildedir: LCD’nin RS pini -> Arduino’nun 7. Pini LCD’nin Enable (E) pini -> Arduino’nun 6. pini LCD’nin D4 pini -> Arduino’nun 5. pini LCD’nin D5 pini -> Arduino’nun 4. pini LCD’nin D6 pini -> Arduino’nun 3. pini LCD’nin D7 pini -> Arduino’nun 2. pini LCD’nin R/W pini -> toprağa LCD’nin R0 pini -> potansiyometre çıkışına LCD VDD -> Arduino 5 Voltuna LCD VSS -> toprağa NFC CS -> Arduino’nun 10. Pini NFC SCK -> Arduino’nun 13. Pini NFC MOSI -> Arduino’nun 11. Pini NFC MISO -> Arduino’nun 12. Pini 5.Arduino Kodu [php]#if 1 #include <SPI.h> #include <PN532_SPI.h> #include "PN532.h" #include <LiquidCrystal.h> PN532_SPI pn532spi(SPI, 10); PN532 nfc(pn532spi); #elif 0 #include <PN532_HSU.h> #include <PN532.h> PN532_HSU pn532hsu(Serial1); PN532 nfc(pn532hsu); #else #include <Wire.h> #include <PN532_I2C.h> #include <PN532.h> #include <NfcAdapter.h> PN532_I2C pn532i2c(Wire); PN532 nfc(pn532i2c); #endif #define LIMA 67F9fC8B LiquidCrystal lcd(7, 6, 5, 4, 3, 2); void setup(void) { lcd.begin(16, 2); int i; for(i=0; i<17; i++) {lcd.setCursor(i,0); lcd.print(" NFC "); lcd.setCursor(i,1); lcd.print(" Test Cihazi"); lcd.setCursor(i,0); lcd.print(" "); delay(1000);} String Uid; nfc.begin(); nfc.setPassiveActivationRetries(0xFF); nfc.SAMConfig();} void loop(void) { String Uid; 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) success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength); if (success) { lcd.clear(); lcd.print("donanim bulundu"); lcd.clear(); for (uint8_t i=0; i < uidLength; i++) {Serial.print(uid[i], HEX); Uid+=String (uid[i], HEX); } if(Uid=="67f9fc8b"){ lcd.setCursor(0,0); lcd.print("Anahtar 1 aktif"); delay(1000); lcd.setCursor(1,1);} else if (Uid=="876fc9bf") { lcd.clear(); lcd.setCursor(1,0); lcd.print("Anahtar 2 aktif"); delay(1000);}} else { lcd.clear(); lcd.print("donanimbulunmadi"); lcd.setCursor(1, 1); lcd.print("kart bekleniyor"); } }[/php] Devrenin Çalışma Videosu, Ekrem KELEŞ