Ana Sayfa Arduino Arduino Nano İle NFC Uygulaması

Arduino Nano İle NFC Uygulaması

8 min read
0
0
215

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

#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");

  } }

Devrenin Çalışma Videosu,

Ekrem KELEŞ

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  Arduino

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

PLC Ve DCS Arasındaki Farklar Nelerdir?

PLC ile DCS arasındaki farkları daha rahat kavrayabilmemiz için ilk önce bu iki kavramı iy…