Read the RC522 NUID RFID Tag STM32F103C Series
/ 10:53
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.
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
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
Comments 0
EmoticonEmoticon