Pencipta istilah IOT (Internet of Things), Kevin Ashton, bekerja di Auto-ID Center di Massachusetts Institute of Technology (MIT). Dia telah memulai sebuah standar internasional untuk RFID. Antara Internet of Things dan teknologi RFID, ada sehingga referensi sejarah. Dalam masalah ini karena itu adalah untuk tumbuh bersama apa yang menjadi milik bersama.
Tapi apa sebenarnya RFID, dan apa itu untuk? Mari saya gulir ke topik ini di ensiklopedia virtual.RFID (. English identifikasi frekuensi radio) yang ditunjuk menurut Wikipedia:"Teknologi untuk sistem pemancar-penerima untuk otomatis dan contactless identifikasi dan lokalisasi benda dan hewan dengan gelombang radio.Sebuah sistem RFID terdiri dari transponder (biasa disebut tag radio) yang terletak pada atau di objek atau makhluk hidup, dan termasuk kode identifikasi dan pembaca untuk membaca kode ini.transponder RFID dapat sekecil sebutir beras dan implan, misalnya hewan peliharaan atau orang-orang. "
"Ada juga kemungkinan transponder RFID pada proses pencetakan khusus sirkuit lebih stabil polimer untuk menghasilkan. Keuntungan dari hasil teknik ini dari kombinasi ukuran kecil, low-profile-nya opsi pemilihan (misalnya. Seperti dalam baru diperkenalkan November 1, 2010 KTP di Jerman) dan harga rendah dari transponder (parsial kisaran persen).
Teknologi baru ini memiliki potensi untuk menggantikan hari barcode banyak digunakan.kopling berlangsung dengan panas yang dihasilkan oleh pembaca medan bolak magnet di jarak pendek atau dengan gelombang radio frekuensi tinggi. Jadi tidak hanya menyediakan data yang akan dikirimkan, tetapi juga transponder dengan energi. Untuk mencapai rentang yang lebih besar transponder aktif dengan catu daya mereka sendiri yang digunakan, yang berhubungan dengan biaya yang lebih tinggi."
Dalam kehidupan sehari-hari kita jumpai RFID sekarang di mana-mana. Misalnya, ketika scanning barang di kasir atau ketika membayar melalui terminal NFC. Hari ini, RFID hardware dan kartu yang sangat murah yang mereka gunakan adalah menguntungkan bahkan dalam dunia Pencipta, berbicara untuk proyek-proyek Anda sendiri.RFID RC522 Set
Sebuah set menarik harga untuk perdagangan eksperimen sendiri di bawah RFID RC522 istilah pencarian. set ini termasuk modul hardware, kartu S50 RFID / NFC, sebuah transponder biru sebagai gantungan kunci, dan Header (siku, lurus) Anda mendapatkan untuk hanya 5 euro di ebay.
SPI bus untuk dihubungkan dan sekitar 6 cm x 4 cm modul lebar membutuhkan 3,3 V pasokan tegangan, mengkonsumsi arus operasi 10-30 mA, dan memiliki arus diam dari 80 microamps. Frekuensi transmisi 13,56 MHz.
Mereka yang ingin menggunakan jenis kartu / RFIDs dengan pembaca RFID memiliki pilihan antara jenis S50, S70, Ultralight, Pro, dan Desfire.
Projeck
Seperti biasa, latihan harus di latar depan. Ini melibatkan simulasi dari sistem pembukaan pintu. Peran mekanisme kunci mengasumsikan motor servo. Sebuah merah dan hijau LED untuk memvisualisasikan status. Awalnya, pintu terkunci, dan merah lampu LED. Sketsa sedang menunggu orang yang menggunakan tag RFID untuk menerima tiket masuk. Mengakui sirkuit, tag RFID di sekitarnya, membaca-out nilai mereka.
Untuk melaksanakan proyek dijelaskan di sini, Anda perlu bahan-bahan berikut:
Arduino MEGA (atau Arduino atau Arduino Leonardo)
LED merah
LED hijau
kecil servo-motor
RFID RC522 Set (lihat di atas)
2 resistor (220 Ω, 330 Ω, 470 Ω atau)
11 buah jumper kawat (tergantung 20-30cm)
papan tempat memotong roti kecilRFID reader dan Arduino mega atau UnoDalam sebuah Arduino koneksi mega berikut diperlukan.Arduino mega RFID RC522 (RFID reader)
GND GND
5 RST
3,3 V 3,3 V
53 SDA
52 SCK
51 MOSI
50 MISOKetika Uno Anda perlu memodifikasi sirkuit dan meletakkan sesuatu SDA ke pin digital 10, SCK di 13, MOSI ke 11 dan MISO pada tanggal 12 Selanjutnya, menghubungkan RST dari pembaca RFID dengan pin digital 9 dari PBB, yang menghasilkan:Arduino RFID RC522 (RFID reader)
GND GND
9 RST
3,3 V 3,3 V
10 SDA
13 SCK
11 MOSI
12 MISODalam rangkaian berikut ditambahkan. Memperlihatkan hubungan untuk Mega Arduino adalah. Ketika Uno hanya menggunakan output digital lainnya.
Biasanya, RFID reader tipe MFRC522 dapat dengan mudah dioperasikan dengan tegangan 3,3 V dari papan Arduino, sementara beristirahat koneksi untuk bus SPI modul langsung di papan Arduino. Untuk berada di sisi aman, gunakan converter tingkat logika, seperti yang kita telah datang untuk mengenal dia, misalnya, di sirkuit untuk Bluetooth. Singkatan MF di MFRC522 adalah cara untuk keluarga MIFARE NXP Semiconductors, produsen chip. Untuk rincian, juga pada halaman Wikipedia ini. Sebuah datasheet Inggris ada melalui link ini.perpustakaanHal ini tidak layak untuk program papan dengan chip MFRC522 sendiri tingkat sistem, seperti Miguel Balboa menawarkan perpustakaan untuk tujuan ini, yang dapat ditemukan pada halaman GitHub ini. Download perpustakaan melalui link di bawah ini. Selanjutnya, perpustakaan diperluas dapat mengimpor (direktori RFID-master) di Arduino IDE.Arahkan ke IDE ke Sketch | Sertakan Perpustakaan | Menambahkan ZIP Perpustakaan dan masukkan path ke perpustakaan.pertama SketchPertama, sketsa pertama harus memungkinkan untuk membaca ID dari tag RFID. pengguna pendekatan kartu RFID ke modul pembaca, program ini dalam loop () - dari ID lingkaran mereka.
/////////////////////////////////////////////////
Awalnya menyala merah LED
Sketsa menunggu untuk mendeteksi kartu RFID =>
RFID RC522 dan tugas pin Gambar nya: https://home.ctw.utwente.nl |
Projeck
Seperti biasa, latihan harus di latar depan. Ini melibatkan simulasi dari sistem pembukaan pintu. Peran mekanisme kunci mengasumsikan motor servo. Sebuah merah dan hijau LED untuk memvisualisasikan status. Awalnya, pintu terkunci, dan merah lampu LED. Sketsa sedang menunggu orang yang menggunakan tag RFID untuk menerima tiket masuk. Mengakui sirkuit, tag RFID di sekitarnya, membaca-out nilai mereka.
- Berisi kartu membaca RFID ID yang valid, lampu merah berhenti untuk bersinar, yang sama akan menyala hijau LED. Motor servo bergerak dengan 180 ° dalam satu arah. Setelah itu, kontrol menunggu selama 3 detik, dan bergerak servo kembali ke arah yang berlawanan 180 °. Setelah itu, LED hijau keluar, dan LED merah menyala. Pintu ditutup lagi.
- Berisi membaca RFID identifikasi non-diterima, LED merah berkedip untuk sinyal lima kali sebelum kembali ke cahaya stabil.
Sirkuit yang diuji |
Output diagnostik selama operasi |
Untuk melaksanakan proyek dijelaskan di sini, Anda perlu bahan-bahan berikut:
Arduino MEGA (atau Arduino atau Arduino Leonardo)
LED merah
LED hijau
kecil servo-motor
RFID RC522 Set (lihat di atas)
2 resistor (220 Ω, 330 Ω, 470 Ω atau)
11 buah jumper kawat (tergantung 20-30cm)
papan tempat memotong roti kecilRFID reader dan Arduino mega atau UnoDalam sebuah Arduino koneksi mega berikut diperlukan.Arduino mega RFID RC522 (RFID reader)
GND GND
5 RST
3,3 V 3,3 V
53 SDA
52 SCK
51 MOSI
50 MISOKetika Uno Anda perlu memodifikasi sirkuit dan meletakkan sesuatu SDA ke pin digital 10, SCK di 13, MOSI ke 11 dan MISO pada tanggal 12 Selanjutnya, menghubungkan RST dari pembaca RFID dengan pin digital 9 dari PBB, yang menghasilkan:Arduino RFID RC522 (RFID reader)
GND GND
9 RST
3,3 V 3,3 V
10 SDA
13 SCK
11 MOSI
12 MISODalam rangkaian berikut ditambahkan. Memperlihatkan hubungan untuk Mega Arduino adalah. Ketika Uno hanya menggunakan output digital lainnya.
- Rel GND biru pada papan tempat memotong roti, terhubung ke GND dari Mega.
- Rel tegangan merah di papan tempat memotong roti, terhubung dengan daya output 5 volt dari Mega atau Uno.
- Motor servo yang terhubung langsung ke output data digital 11 Mega (misalnya ketika Uno pin 6), lebih lanjut terdiri dari GND dan 5V pada papan tempat memotong roti.
- LED merah langsung dikontrol dengan pin 13 dari Mega (Uno: pin 8), LED hijau dengan pin 12 dari Mega (Uno: Pin 7). Kedua LED terhubung melalui resistor ke GND rel dari papan tempat memotong roti.
Sirkuit dengan Atmega, RFID RC522, motor servo, LED |
- Dalam setup () untuk menginisialisasi bus SPI, monitor serial dan pembaca RFID dilakukan.
- Dalam loop () Sketsa menunggu pengakuan dari kartu kedekatan dan mengembalikan ID untuk monitor serial.
/////////////////////////////////////////////////
//
// Lesen und Ausgeben von RFID-Tags
// auf Basis von MFRC422-Reader
// (c) Michael Stal, 2016
//
//////////////////////////////////////////////////
#include <SPI.h> // Import SPI-Bibiothek
#include <MFRC522.h> // Import RFID-Bibiothek
#include <Servo.h> // Import Servo-Bibliothek
///////// Variablen MFRC522 //////////////////////
const int SDAPIN = 53; // Uno => Pin 10
const int RSTPIN = 9; // Uno => Pin 9
MFRC522 rfidReader(SDAPIN, RSTPIN); // RFID-Empfänger
//////////////////////////////////////////////////
//
// setup()
// Initialisieren von SPI,
// seriellem Monitor,
// RFID-Leser
//
//////////////////////////////////////////////////
void setup()
{
Serial.begin(9600); // Serielle Verbindung
SPI.begin(); // SPI-Verbindung aufbauen
rfidReader.PCD_Init(); // RFID-Reader initial.
}
//////////////////////////////////////////////////
//
// loop()
// Warten auf RFID-Erkennung
//
//////////////////////////////////////////////////
void loop()
{
// Karte erkannt und gelesen
if (rfidReader.PICC_IsNewCardPresent() && rfidReader.PICC_ReadCardSerial()) {
Serial.print("Erkanntes RFID-TAG ist => ");
// Bytes der ID lesen und ausgeben
Serial.print("/");
for (byte i = 0; i < rfidReader.uid.size; i++) {
Serial.print(rfidReader.uid.uidByte, HEX);
Serial.print("/");
}
Serial.println();
}
}
Sebagai output ditampilkan pada serial memantau nilai-nilai kartu RFID yang terdeteksi:
Prefiks PCD dan PICC dalam rutinitas perpustakaan adalah cara untuk Proximity
Coupling Perangkat dan Proximity Circuit Card Terpadu. Yang pertama mengacu kepada pembaca, yang terakhir kartu RFID.Program untuk proyek tersebutUntuk proyek yang sebenarnya, kita dapat menggunakan kembali sketsa atas sebagai basis.Variabel [i] wijen (dalam daftar yang lebih rendah di red) kasus berisi ID dari transponder RFID penulis. Tentu saja variabel ini Anda harus menggantinya dengan ID dari kartu RFID sendiri seperti yang Anda tulis di setup tes terakhir.Sketsa berikut dilaksanakan persis skenario yang dijelaskan di atas.Dalam setup ()inisialisasi bus SPI, monitor serial dan pembaca RFID.Dalam loop ()
Awalnya menyala merah LED
Sketsa menunggu untuk mendeteksi kartu RFID =>
- Jika kartu memiliki salah ID, diterangi 5 x LED merah pada
- Jika kartu memiliki ID yang benar, LED merah padam dan lampu hijau atas. Motor servo berputar 180 ° dalam satu arah, berhenti selama 3 detik dan kemudian berubah kembali 180 ° dalam arah yang berlawanan.
//////////////////////////////////////////////////
//
// Demo für RFID-Tags
// auf Basis von MFRC422-Reader
// (c) Michael Stal, 2016
//
//////////////////////////////////////////////////
#include <SPI.h> // Import SPI-Bibiothek
#include <MFRC522.h> // Import RFID-Bibiothek
#include <Servo.h> // Import Servo Bibliothek
///////// Variablen MFRC522 //////////////////////
const int SDAPIN = 53; // Uno => Pin 10
const int RSTPIN = 9; // Uno => Pin 9
MFRC522 rfidReader(SDAPIN, RSTPIN); // RFID-Empfänger
///////// Aktoren: LEDs, Servo ///////////////////
const int REDLED = 13; // Uno -> Pin 8
const int GREENLED = 12; // Uno -> Pin 7
const int SERVOPIN = 11; // Uno -> Pin 6
Servo door; // Türverschluss (Servo)
//////// ID des richtigen RFID-Tags //////////////
byte sesam[] = {0x26, 0xA7, 0xFB, 0x48};
//////////////////////////////////////////////////
//
// setup()
// Initialisieren von SPI,
// seriellem Monitor,
// RFID-Leser
//
//////////////////////////////////////////////////
void setup()
{
door.attach(SERVOPIN);
pinMode(REDLED, OUTPUT);
pinMode(GREENLED, OUTPUT);
pinMode(SERVOPIN, OUTPUT);
Serial.begin(9600); // Serielle Verbindung
SPI.begin(); // SPI-Verbindung aufbauen
rfidReader.PCD_Init(); // Initial. RFID-Leser
Serial.println("Tuerkontrolle aktiviert");
}
//////////////////////////////////////////////////
//
// acceptedRFID()
// Stimmt gelesene RFID
// mit der voreingestellten ID überein?
//
//////////////////////////////////////////////////
bool acceptedRFID(byte uid[4]) {
return
(rfidReader.uid.uidByte[0] == sesam[0]) &&
(rfidReader.uid.uidByte[1] == sesam[1]) &&
(rfidReader.uid.uidByte[2] == sesam[2]) &&
(rfidReader.uid.uidByte[3] == sesam[3]);
}
//////////////////////////////////////////////////
//
// openDoor()
// Servo um 180° in Richtung drehen
//
//////////////////////////////////////////////////
void openDoor() {
for (int pos = 0; pos <= 180; pos++) {
door.write(pos);
delay(20);
}
}
//////////////////////////////////////////////////
//
// closeDoor()
// Servo um 180° in Gegenrichtung drehen
//
//////////////////////////////////////////////////
void closeDoor() {
for (int pos = 180; pos >= 0; pos--) {
door.write(pos);
delay(20);
}
}
//////////////////////////////////////////////////
//
// signalDoorLocked()
// Zugang versperrt =>
// rote LED leuchtet,
// gruene nicht
//
//////////////////////////////////////////////////
void signalDoorLocked() {
digitalWrite(REDLED, HIGH);
digitalWrite(GREENLED, LOW);
}
//////////////////////////////////////////////////
//
// signalAccessGranted()
// Zugang gewährt =>
// gruene LED leuchtet,
// rote nicht
//
//////////////////////////////////////////////////
void signalAccessGranted() {
digitalWrite(REDLED, LOW);
digitalWrite(GREENLED, HIGH);
}
//////////////////////////////////////////////////
//
// signalAccessRefused()
// Zugang verweigert =>
// rote LED blinkt 5x
//
//////////////////////////////////////////////////
void signalAccessRefused() {
for (int i = 0; i < 5; i++) {
digitalWrite(REDLED, HIGH);
delay(250);
digitalWrite(REDLED, LOW);
delay(250);
}
}
//////////////////////////////////////////////////
//
// loop()
// Warten auf RFID-Erkennung
// Reaktion abhaengig vom ID-Vergleich
//
//////////////////////////////////////////////////
void loop()
{
// Rotes Signal
signalDoorLocked();
// Karte erkannt und gelesen
if (rfidReader.PICC_IsNewCardPresent() && rfidReader.PICC_ReadCardSerial()) {
Serial.print("Erkanntes RFID-TAG ist => ");
// Bytes der ID lesen und ausgeben
Serial.print("/");
for (byte i = 0; i < rfidReader.uid.size; i++) {
Serial.print(rfidReader.uid.uidByte[i], HEX);
Serial.print("/");
}
Serial.println();
// Check ob Karte mit Variable sesam übereinstimmt
if (acceptedRFID(rfidReader.uid.uidByte)) { // ja =>
// Erlaubten Zugriff signalisieren
signalAccessGranted();
Serial.println("Zugriff erlaubt => Tuer oeffnen");
// Oeffnen der Tuere
openDoor();
Serial.println("Tuer 3 Sekunden offen lassen");
// 3 Sekunden Pause
delay(3000);
Serial.println("Tuer schliessen");
// Tuere wieder schliessen
closeDoor();
}
else // nein => {
Serial.println("Zugriff verweigert");
// Rote LED blinkt als Warnung
signalAccessRefused();
}
}
}
Pilihan ekspansi
Tentu saja, saya melepaskan Anda kali ini bukan tanpa saran untuk ekstensi.
Anda memiliki beberapa pilihan seperti:
- Dengan cara sensor jarak atau sensor laser Anda bisa mengatakan jika pintu masih terbuka.
- Anda dapat menulis perangkat lunak (misalnya, untuk PC atau Raspberry Pi), yang memungkinkan untuk membuka kartu RFID secara permanen atau sementara dan juga untuk mengunci lagi. Anda juga bisa menentukan saat-saat ketika masing-masing akses tag RFID diperbolehkan dan kapan tidak. Informasi ini dienkripsi di server.
- Rangkaian pada Arduino berkomunikasi melalui WiFi dengan perangkat lunak pusat untuk melihat apakah kartu RFID membaca berhak atau masuk tidak.
- Perangkat lunak pusat dapat log semua transaksi sesuai. Atau, mereka menggunakan pembaca SD di Arduino untuk log peristiwa lokal di mikrokontroler. Tentu saja, Anda harus mengenkripsi semua data yang ditransfer dalam skenario ini.
- Dalam rangka meningkatkan jangkauan pembaca RFID oleh beberapa sentimeter,
Anda dapat menambahkan kode dari file library MRFC522.cpp. - Dalam metode PCD_Init () sebelum PCD_AntennaOn (),
- tambahkan baris berikut: PCD_WriteRegister (RFCfgReg, (0x07 << 4));.
Hal ini meningkatkan sensitivitas MFRC522 chip untuk nilai maksimum.
Khusus untuk rangkaian pintu, yang bisa membuktikan menjadi diperlukan.Dan terakhir,
namun tidak sedikit,
Anda bisa menggunakan sistem penguncian
pintu elektronik nyata bukan motor servo.
Ringkasan
Dengan pembaca RFID dan tag, beberapa proyek yang menarik dapat dibuat.
sistem keamanan untuk mendeteksi organisme atau benda-benda bergerak banyak
aplikasi yang mungkin. Urutan ini hanya bisa menggambarkan puncak gunung es. Untuk
aplikasi profesional dan keselamatan-kritis, bagaimanapun, diperkirakan
akan mencapai batas-batasnya papan RC522 terjangkau. Berikut adalah
pilihan yang lebih mahal dan lebih kuat diperlukan. Untuk mengumpulkan
pengalaman dan banyak make-proyek kemungkinan chip tapi kaya semua.
Bersenang-senang bereksperimen!
Komentar