Advertise here

Selasa, 05 Maret 2019


Introduction
Proyek selanjutnya adalah membaca Nomer Identifikasi Tidak Unik (NUID) yang berasal dari tag kartu RFID. 

NUID ini  merupakan nomer yang telah di isi dari pabrik pembuat yang didalamnya memiliki informasi nomer seri tag NUID di sektor 0 pada 4 byte pertama, sedangkan 12 byte berikutnya diisi dengan informasi pabrikan. 

Dengan membaca NUID ini maka kita dapat mengembangkan aplikasi untuk mesin absensi kartu, sistem keamanan kendaraan, pembuka pintu rumah, dll. 

Hasil pembacaan pada proyek ini ditampilkan pada layar serial monitor. Jika anda ingin mengembangkan menggunakan layar LCD 16x2 maka anda dapat menggabungkan modul tersebut dengan melihat proyek Interfacing LCD I2C 16x2.

Sebelum mencoba tutorial ini diharapakan anda sudah MemasangBoard STM32F103C Series Pada Arduino IDE, dan Mengerti cara melakukan flash program atau uploadprogram kedalam sistem blue pill STM32F103C Series.

Bill Of Material
Kebutuhan alat dan bahan yang anda perlukan dalam membuat proyek membaca NUID dari RFID tag Mifare RC522 adalah :

·         Board STM32F103C Blue Pill
·         Board Reader RFID-RC522
·         Bread Board 400 dot point
·         Dan beberapa kabel Jumper Female to Male, dan Male to Male
·         Liblary MFRC522.h yang dapat di unduh pada link berikut

Circuit Wiring
Pada dasarnya program ini dikembangkan untuk mendukung board arduino berbagai macam tipe, tapi untuk dapat dijalankan pada Board STM32F103C Blue Pill, kita harus memodifikasi pin SS dan RST agar bisa dijalankan. secara perbandingannya  pin SPI  board arduino dan board STM32 seperti pada tabel berikut

Board RFID-RC522
PIN Arduino Uno
PIN Arduino Mega
PIN Arduino Nano
PIN STM32 Bluepill
RST
9
5
D9
PB0
SS/SDA
10
53
D10
PA8
MOSI
11
50
D11
PA7
MISO
12
51
D12
PA6
CLK
13
52
D13
PA5

Dengan perbandingan tabel diatas, kita dapat menghubungkan pengkabelan dari board RFID-RC522 ke PIN STM32 Bluepill yaitu RST ke PB0, SS/SDA ke PA8, MOSI ke PA7, MISO ke PA6, CLK ke PA5.


Ketika membuat  program  jangan sampai lupa untuk mendefinisikan  PIN SS dan dan RST seperti berikut
#define SS_PIN PA8
#define RST_PIN PB0

Program
Buka jendela arduino IDE dan kopikan program dibawah ini ke workspace, setelah selesai lakukan verify untuk mengetahui kesalahan dalam memprogram. 

Tapi yang paling penting adalah kita terlebih dahulu menginstall liblary MFRC522.h dan SPI.h pada directory C:\Users\PC_Home\Documents\Arduino\libraries

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN PA8
#define RST_PIN PB0

MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class

MFRC522::MIFARE_Key key;

// Init array that will store new NUID
byte nuidPICC[3];

void setup() {
  Serial.begin(115200);
  SPI.begin(); // Init SPI bus
  rfid.PCD_Init(); // Init MFRC522

  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }

  Serial.println(F("This code scan the MIFARE Classsic NUID."));
  Serial.print(F("Using the following key:"));
  printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
}

void loop() {
  // Look for new cards
  if ( ! rfid.PICC_IsNewCardPresent())
    return;

  // Verify if the NUID has been readed
  if ( ! rfid.PICC_ReadCardSerial())
    return;

  Serial.print(F("PICC type: "));
  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
  Serial.println(rfid.PICC_GetTypeName(piccType));

  // Check is the PICC of Classic MIFARE type
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && 
    piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
    piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println(F("Your tag is not of type MIFARE Classic."));
    return;
  }

  Serial.print("Non Unique Identification Number (NUID) tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < rfid.uid.size; i++)
  {
     Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(rfid.uid.uidByte[i], HEX);
     content.concat(String(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(rfid.uid.uidByte[i], HEX));
  }
  Serial.println();
  content.toUpperCase();

  // Halt PICC
  rfid.PICC_HaltA();

  // Stop encryption on PCD
  rfid.PCD_StopCrypto1();
}

Test Result

ini adalah hasil pembacaan NUID tag RFID dari setiap kartu yang berbeda-beda dan ditampilkan pada layar melalui serial monitor



ini adalah foto rangkaian yang dilakukan untuk pengujian




Comments 0

Advetise banner