Buat Kunci RFID Arduino yang Aman – Panduan Langkah demi Langkah
Komponen dan Perlengkapan
- Arduino UNO × 1
- Pembaca RFID (generik) × 1
Aplikasi dan Layanan Online
Tentang Proyek Ini
Halo teman-teman, selamat datang di tutorial lainnya. Saya Nick dari educ8s.tv, dan hari ini kita akan belajar cara menggunakan pembaca RFID ini dengan Arduino untuk membangun sistem kunci sederhana.
Ini adalah kali pertama kami menggunakan tag RFID dengan Arduino. Saya telah membuat proyek sederhana yang membaca ID Unik (UID) dari setiap tag RFID yang ditempatkan di dekat pembaca dan menampilkannya pada layar OLED ini. Jika UID tag sama dengan nilai yang telah ditentukan yang disimpan dalam memori Arduino, maka pada layar akan muncul pesan "Unlocked". Jika ID Unik kartu tidak sama dengan nilai yang telah ditentukan, pesan Unlock tidak akan muncul. Keren, kan?
Ada banyak yang harus kita bahas, jadi mari kita mulai!
Langkah 1: Kumpulkan Semua Komponen
Komponen yang diperlukan untuk membangun proyek ini adalah sebagai berikut:
- Arduino Uno ▶ https://store.arduino.cc/arduino-uno-rev3
- Pembaca RFID ▶ https://educ8s.tv/part/RFID
- Layar OLED ▶ https://educ8s.tv/part/OLED096
- Papan roti kecil ▶ https://educ8s.tv/part/SmallBreadboard
- Beberapa kabel ▶ https://educ8s.tv/part/Wires
Komponen opsional:
- Powerbank ▶ https://educ8s.tv/part/Powerbank
Biaya total proyek ini sekitar $15.
Langkah 2: Pembaca RFID RC522
Setiap tag RFID memiliki chip kecil di dalamnya. Jika saya menempatkan senter di bawah kartu RFID ini, Anda dapat melihat chip kecil dan gulungan yang melingkarinya. Chip ini tidak memiliki baterai untuk mendapatkan daya. Ia menerima daya dari pembaca, perangkat ini, secara nirkabel menggunakan gulungan besar ini. Pembaca dapat membaca kartu RFID seperti ini dari jarak hingga 20 mm!
Chip yang sama juga ada pada tag RFID guncang kunci.
Setiap tag RFID memiliki nomor unik yang mengidentifikasinya. Itulah UID yang kita tampilkan pada layar OLED. Selain UID ini, setiap tag dapat menyimpan data. Pada jenis kartu ini kita dapat menyimpan hingga 1 KB data! Mengagumkan, kan? Kami tidak akan menggunakan fitur ini hari ini, tetapi akan melakukannya di tutorial mendatang. Hari ini, yang kita minati hanyalah mengidentifikasi kartu tertentu berdasarkan UID-nya. Biaya pembaca RFID dan dua kartu RFID ini sekitar $4.
Langkah 3: Layar OLED
Ini adalah layar yang sangat bagus untuk digunakan dengan Arduino. Ini adalah layar OLED yang berarti memiliki konsumsi daya rendah. Konsumsi daya layar ini sekitar 10-20 mA dan tergantung pada berapa banyak piksel yang menyala.
Layar ini memiliki resolusi 128×64 piksel dan ukurannya sangat kecil. Terdapat dua variasi layar. Salah satunya monokrom, dan yang lain seperti yang saya gunakan dapat menampilkan dua warna, kuning dan biru. Bagian atas layar hanya dapat menampilkan kuning, bagian bawah hanya biru.
Layar OLED ini sangat cerah dan memiliki dukungan perpustakaan yang hebat. Adafruit telah mengembangkan perpustakaan yang sangat bagus untuk layar ini. Selain itu, layar ini menggunakan antarmuka I2C, jadi koneksi dengan Arduino sangat mudah. Anda hanya perlu menghubungkan dua kabel selain Vcc dan GND. Jika Anda baru belajar Arduino dan ingin layar yang murah dan mudah digunakan untuk proyek Anda, mulailah dengan layar ini. Ini adalah cara termudah untuk menambahkan layar pada proyek Arduino Anda. Saya telah menyiapkan tutorial terperinci tentang cara menggunakan layar ini yang telah saya lampirkan ke tutorial ini.
Langkah 4: Hubungkan Semua Komponen
Koneksi dengan papan Arduino Uno sangatlah sederhana. Pertama, mari kita hubungkan daya baik pembaca maupun layar.
Hati-hati, pembaca RFID harus dihubungkan ke keluaran 3,3V Arduino Uno atau akan rusak. Karena layar juga dapat bekerja pada 3,3V, kami menghubungkan Vcc dari kedua modul ke bus positif papan roti. Bus ini kemudian dihubungkan ke keluaran 3,3V Arduino Uno. Selanjutnya, kami menghubungkan kedua GND ke bus GND papan roti. Kemudian kami menghubungkan bus GND papan roti ke GND Arduino.
Layar OLED - Arduino
Vcc ▶ 3,3V
GND ▶ GND
SCL ▶ Pin Analog 5
SDA ▶ Pin Analog 4
Pembaca RFID - Arduino
RST ▶ Pin Digital 9
IRQ ▶ Tidak terhubung
MISO ▶ Pin Digital 12
MOSI ▶ Pin Digital 11
SCK ▶ Pin Digital 13
SDA ▶ Pin Digital 10
Modul pembaca RFID menggunakan antarmuka SPI untuk berkomunikasi dengan Arduino. Jadi kami akan menggunakan pin SPI hardware dari Arduino UNO. Pin RST pergi ke pin digital 9. Pin IRQ tetap tidak terhubung. Pin MISO pergi ke pin digital 12. Pin MOSI pergi ke pin digital 11. Pin SCK pergi ke pin digital 13 dan terakhir, pin SDA pergi ke pin digital 10. Itu saja. Pembaca RFID telah terhubung. Kami sekarang harus menghubungkan layar OLED dengan Arduino menggunakan antarmuka I2C. Jadi, pin SCL layar pergi ke Pin Analog 5 dan pin SDA layar ke Pin Analog 4. Jika kami sekarang menyala proyek dan menempatkan kartu RFID di dekat pembaca, kami dapat melihat proyek bekerja dengan baik! Sekarang saatnya untuk melihat kode proyek.
Langkah 5: Kode Proyek
Agar kode proyek dapat dikompilasi, kita perlu menyertakan beberapa perpustakaan. Pertama, kita perlu perpustakaan MFRC522 RFID. Untuk menginstalnya, pergi ke Sketch -> Sertakan Perpustakaan -> Kelola Perpustakaan. Cari MFRC522 dan instal. Kami juga memerlukan perpustakaan Adafruit SSD1306 dan perpustakaan Adafruit GFX untuk layar. Instal kedua perpustakaan dengan prosedur yang sama. Perpustakaan Adafruit SSD1306 memerlukan modifikasi kecil. Pergi ke folder Arduino -> Perpustakaan, buka folder Adafruit SSD1306 dan edit perpustakaan Adafruit_SSD1306.h. Komentar baris 70 dan buka komentar baris 69. Layar kami memiliki resolusi 128x64, itulah yang kita definisikan di sini. Sekarang kami siap untuk melihat kode dengan cepat.
Pertama, kami mendeklarasikan nilai tag RFID yang ingin kami dikenali oleh Arduino. Ini adalah larik bilangan bulat.
int code[] = {69,141,8,136}; //This is the stored UID
Selanjutnya, kami menginisialisasi pembaca RFID dan layar.
rfid.PCD_Init();display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Setelah ini, dalam fungsi loop, kami memeriksa tag pada pembaca setiap 100 ms.
Jika ada tag pada pembaca, kami membaca UID-nya dan mencetaknya pada layar. Selanjutnya, kami membandingkan UID tag yang baru saja dibaca dengan nilai yang disimpan dalam variabel code. Jika nilainya sama, kami menampilkan pesan UNLOCK, jika tidak kami tidak menampilkan pesan ini.
if(match) { Serial.println("\nI know this card!"); printUnlockMessage(); }else { Serial.println("\nUnknown Card"); }
Tentu saja, Anda dapat memodifikasi kode ini untuk menyimpan lebih dari 1 nilai UID agar proyek dapat mengenali lebih banyak tag RFID.
Ini hanyalah contoh. Seperti biasa, Anda dapat menemukan kode proyek yang dilampirkan ke tutorial ini.
RFID.ino
Langkah 6: Pemikiran Akhir & Peningkatan
Seperti yang Anda lihat, dengan biaya sangat rendah kita dapat menambahkan pembaca RFID ke proyek-proyek kita. Kami dapat dengan mudah membangun sistem keamanan dengan pembaca seperti ini atau membangun proyek-proyek yang lebih menyenangkan.
Niat utama saya adalah membangun beberapa game interaktif untuk anak-anak menggunakan pembaca RFID ini dan banyak tag RFID. Di video mendatang, kami juga akan mencoba untuk menulis dan membaca data dari tag RFID. Pada titik ini, saya ingin mendengar pendapat Anda tentang pembaca kartu RFID ini. Apakah Anda berencana menggunakannya dalam salah satu proyek Anda? Silakan posting komentar atau ide apa pun di bagian komentar di bawah ini, terima kasih!