Pripojenie k Arduinu:

Najprv musíte nainštalovať knižnicu RFID pre MFRC522.

Kontakty na module Modul RC522 RFID musí byť pripojený k Arduinu. Na pripojenie je vhodné použiť vodiče otec-matka.


Popis kontaktov na RFID module RC522:

  • VCC - Napájanie. Potrebujete 3,3 V;
  • RST - reset. Resetovať linku. Nikdy sa nepripájajte na pin RESET na CraftDuino! Tento kolík sa prichytí k digitálnemu portu s PWM;
  • GND – zem. Zem
  • MISO - Master Input Slave Output - dáta z slave na master, SPI;
  • MOSI - Master Output Slave Input - dáta z mastera na slave, SPI;
  • SCK - Serial Clock - hodinový signál, SPI;
  • NSS - Slave Select - výber podriadeného zariadenia, SPI;
  • IRQ - prerušovacia linka;
MFRC522 Arduino Uno Arduino Mega Arduino Nano v3 Arduino Leonardo/Micro Arduino Pro Micro
RST 9 5 D9 RESET/ICSP-5 RST
SDA(SS) 10 53 D10 10 10
MOSI 11 (ICSP-4) 51 D11 ICSP-4 16
MISO 12 (ICSP-1) 50 D12 ICSP-1 14
SCK 13 (ICSP-3) 52 D13 ICSP-3 15
3,3 V 3,3 V 3,3 V Stabilizátor 3,3V Stabilizátor 3,3V Stabilizátor 3,3V
GND GND GND GND GND GND

Modul RFID-RC522 sa dodáva s dvoma štítkami, jedným vo forme plastová karta, a druhý vo forme kľúčenky. V prípade potreby je možné ich zakúpiť samostatne.

Po pripojení všetkého sa indikátor na module rozsvieti, čo znamená, že RFID je napájané . Teraz je čas spustite testovaciu skicu, ktorá je v knižnici, ktorú sme nainštalovali.



Je potrebné skontrolovať správnosť daných konštánt:

#define SS_PIN 10 #define RST_PIN 9 // Tieto konštanty sa zhodujú

Teraz nahrajte náčrt do arduina a zapnite ho Monitorovanie sériového portu.

Štítok prinesieme k čítačke a modul načíta všetky údaje z tohto štítku, napríklad jedinečný identifikátor štítku UID.

Operačné video RFID-RC522:

Dnešný tutoriál je o tom, ako použiť čítačku RFID s Arduino na vytvorenie jednoduchého uzamykacieho systému, jednoducho povedané- RFID zámok.

RFID (anglicky Radio Frequency IDentification, radiofrekvenčná identifikácia) je metóda automatickej identifikácie objektov, pri ktorej sa pomocou rádiových signálov čítajú alebo zapisujú údaje uložené v takzvaných transpondéroch alebo RFID tagoch. Akýkoľvek RFID systém pozostáva z čítačky (čítačky, čítačky alebo dotazovača) a transpondéra (aka RFID tag, niekedy sa používa aj termín RFID tag).

V návode sa použije RFID tag s Arduinom. Zariadenie načíta jedinečný identifikátor (UID) každého RFID tagu, ktorý umiestnime vedľa čítačky a zobrazí ho na OLED displeji. Ak sa UID tagu rovná preddefinovanej hodnote, ktorá je uložená v pamäti Arduina, na displeji sa zobrazí správa „Unlocked“. Ak sa jedinečný identifikátor nerovná preddefinovanej hodnote, správa „Odomknuté“ sa nezobrazí – viď foto nižšie.

Hrad je zatvorený

Hrad je otvorený

Krok 1: Diely, príslušenstvo

Podrobnosti potrebné na vytvorenie tohto projektu:

  • RFID čítačka RC522
  • OLED displej
  • Doska na chlieb
  • drôty

Ďalšie podrobnosti:

  • Batéria (powerbanka)

Celkové náklady na komponenty projektu boli približne 15 USD.

Krok 2: RFID čítačka RC522

Každý RFID štítok má malý čip (biela karta na fotografii). Ak na túto kartu RFID namierite baterku, uvidíte malý čip a cievku, ktorá ju obklopuje. Tento čip nemá batériu na výrobu energie. Prijíma energiu z čítačky bezdrôtovo pomocou tejto veľkej cievky. Takúto RFID kartu je možné prečítať až na vzdialenosť 20 mm.

Rovnaký čip existuje v príveskoch na kľúče RFID.

Každý RFID štítok má jedinečné číslo, ktorý ho identifikuje. Toto je UID, ktoré sa zobrazuje na OLED displeji. S výnimkou tohto UID môže každá značka ukladať údaje. Na tento typ karty je možné uložiť až 1 000 údajov. Pôsobivé, však? Táto funkcia sa dnes nepoužije. Dnes je zaujímavá len identifikácia konkrétnej karty jej UID. Čítačka RFID a tieto dve karty RFID stoja približne 4 doláre.

Krok 3 OLED displej

Návod používa 0,96" 128x64 I2C OLED monitor.

Toto je veľmi dobrý displej na použitie s Arduino. Je to OLED displej a to znamená, že má nízku spotrebu energie. Spotreba energie tohto displeja je cca 10-20mA a závisí od počtu pixelov.

Displej má rozlíšenie 128 x 64 pixelov a je maličký. K dispozícii sú dve možnosti zobrazenia. Jedna z nich je monochromatická a druhá, podobne ako tá, ktorá sa používa v návode, môže zobrazovať dve farby: žltú a modrú. Horná časť obrazovky môže byť iba žltá a Spodná časť- Modrá.

Tento OLED displej je veľmi jasný a má skvelú a veľmi peknú knižnicu, ktorú Adafruit pre tento displej vyvinul. Okrem toho displej používa rozhranie I2C, takže pripojenie k Arduinu je neuveriteľne jednoduché.

Potrebujete pripojiť iba dva vodiče okrem Vcc a GND. Ak ste novým používateľom Arduina a chcete vo svojom projekte použiť lacný a jednoduchý displej, začnite tu.

Krok 4: Spojte všetky časti dohromady

V súčasnosti sa stáva veľmi populárnym používanie technológie rádiofrekvenčnej identifikácie (RFID). Mnoho aplikácií sa implementuje v rôznych oblastiach naše životy a používajú sa na rôzne účely. RFID umožňuje bezdrôtový zber údajov pomocou čítačiek elektronických štítkov pripojených alebo zabudovaných do objektov na identifikáciu a iné účely. Tento článok ukazuje, ako vytvoriť jednoduché domáce zariadenie na kontrolu prístupu RFID pomocou Arduino UNO a čítačky RFID (EM-18) na ovládanie LED a relé. Elektrické schéma a skica Arduina ( zdroj) sú zobrazené nižšie.

Keď je aktivovaná, čítačka vysiela RF signál. Keď je štítok RFID umiestnený v blízkosti čítačky, prijíma RF signál cez anténu vo vnútri štítku. Prijatý RF signál sa premení na elektrickú energiu, ktorá postačuje na prenos údajov z tagu späť do RFID čítačky. Okrem toho čítačka odošle ID tagu počas externé zariadenie cez sériový dátový port. V súčasnosti je k dispozícii široká škála modelov čítačiek. Najbežnejší a najpohodlnejší na použitie je modul EM-18. Tento modul číta pasívne značky RFID a odosiela ID značky do mikrokontroléra Arduino.

ČítanieID štítku RFID

Ak chcete začať, stiahnite si jednoduchý programovací kód rfid1.ino v Arduino Uno pomocou vývojového nástroja IDE.

Teraz zostavte obvod podľa obrázka nižšie.

Otvorte sériový monitor v Arduino IDE, držte RFID tag veľmi blízko stredu RFID čítačky a poznačte si zobrazené ID tagu. Tento jedinečný identifikátor bude potrebný v ďalšom náčrte! (Naša značka má ID 51005F46642C)

Riadenie prístupu

V tomto bode je systém nakonfigurovaný tak, aby porovnával jedinečný identifikátor (používaný štítok) s identifikátorom akéhokoľvek štítku, ktorý sa má prečítať.

Analyzujte existujúce pripojenie a nahrajte nový náčrt rfid2.ino na mikrokontrolér Arduino

Znova zapojte hardvérové ​​komponenty (s určitými úpravami), ako je znázornené na obrázku vyššie. Tu je výstup z D12 Arduino mikrokontrolér slúži na napájanie štandardnej 5mm LED. Pin D13 slúži na ovládanie elektromagnetického relé cez riadiaci tranzistor. Zakaždým, keď sa značka zhoduje, na kolíku D13 sa na 5 sekúnd objaví vysoký riadiaci signál. Relé možno použiť na ovládanie externej záťaže, ako je napríklad zarážka dverí. Ak sa hodnoty označenia nezhodujú, na výstupe D13 zostáva nízka úroveň signálu, ale súčasne sa na výstupe D12 objaví signál vysoký stupeň na spustenie LED diódy alarmu.

1 Popis čítačky RFID RC522

Modul RFID-RC522 je založený na čipe NXP MFRC522. Tento čip poskytuje obojsmernú bezdrôtovú (do 6 cm) komunikáciu na frekvencii 13,56 MHz.

Čip MFRC522 podporuje nasledujúce možnosti spojenia:

Používaním tento modul môžete zapisovať a čítať údaje z rôznych RFID štítkov: kľúčenky z interkomov, plastové karty a lístky na metro a pozemná doprava, ako aj čoraz populárnejšie značky NFC.

RFID je skratka pre „Radio Frequency IDentification“ a prekladá sa ako „Radio Frequency Identification“.
NFC je „Near field communication“, „near field communication“ alebo „blízko bezkontaktná komunikácia“.

2 Elektrické schéma RFID-RC522 na Arduino

Pripojme modul RFID-RC522 k Arduinu cez rozhranie SPI podľa vyššie uvedenej schémy.


Modul je napájaný napätím 2,5 až 3,3 V. Ostatné piny sú pripojené k Arduinu takto:

Pin RC522Arduino Pin
RSTD9
SDA(SS)D10
MOSID11
MISOD12
SCKD13

Nezabudnite tiež, že Arduino má špecialitu ICSP konektor pracovať na rozhraní SPI. Jeho pinout je tiež znázornený na obrázku. Piny RST, SCK, MISO, MOSI a GND modulu RC522 môžete pripojiť k hlavičke ICSP na Arduine.

3 Knižnica pre prácu Arduino s RFID

Čip MFRC522 má pomerne rozsiahlu funkčnosť. So všetkými možnosťami sa môžete zoznámiť preskúmaním jej pasu (datasheet). Sme na oboznámenie sa s možnosťami toto zariadenie použijeme niektorú z hotových knižníc napísaných pre Arduino práca s RC522. Stiahnite si ho a rozbaľte ho do adresára Arduino IDE\libraries\


Inštalácia knižnice „rfid-master“ pre Arduino na prácu s RFID tagmi

Potom spustite Arduino IDE.

4 Náčrt na čítanie informácií, napísané na RFID štítku

Teraz otvoríme náčrt z príkladov: Ukážky súboru MFRC522 DumpInfo a nahrajte ho do pamäte Arduino.


Tento náčrt určuje typ zariadenia pripojeného k čítačke a číta údaje zapísané na štítku alebo karte RFID a potom ich odošle na sériový port.

#include #include const int RST_PIN = 9; // pin RST const int SS_PIN = 10; // SDA pin (SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // vytvorenie objektu MFRC522 void setup()( Serial.begin(9600); // posledná inicializácia. port SPI.begin(); // Inicializácia SPI zbernice mfrc522.PCD_Init(); // inicializácia čítačky RC522 ) void loop() (// Čaká sa na použitie novej značky RFID: if (! mfrc522.PICC_IsNewCardPresent()) ( return; // exit, ak sa nepoužije nová mapa) // Prečítajte si sériové číslo: if (! mfrc522.PICC_ReadCardSerial()) ( return; // ukončite, ak nie je možné prečítať sériové číslo ) port: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

Text náčrtu je celkom dobre komentovaný.

Pre viac úplné zoznámenie so súbormi na preskúmanie knižnice MFRC522.h a MFRC522.cpp z adresára majster rfid.

5 Výpis údajov s RFID štítkami

Spustite monitor sériového portu pomocou kombinácie klávesov Ctrl + Shift + M cez ponuku Nástroje alebo tlačidlo s lupou. Teraz k čítačke pripevníme lístok na metro alebo akýkoľvek iný RFID štítok. Monitor sériového portu zobrazí údaje zapísané na RFID štítku alebo lístku.


Napríklad v mojom prípade je tu šifrované jedinečné číslo lístka, dátum nákupu, dátum vypršania platnosti, počet zostávajúcich jázd, ako aj informácie o službe. Čo je zaznamenané na mapách metra a pozemnej dopravy, rozoberieme v jednom z budúcich článkov.

Poznámka

Áno, pomocou modulu RFID-RC522 môžete zapisovať údaje do lístka na metro. Ale nelichotte si, každá karta má neprepisovateľné počítadlo cyklov zápisu, takže si nebudete môcť „pridávať“ cesty do svojho metra - bude to okamžite detekované a karta bude turniketom odmietnutá :) Ale pomocou lístkov na metro na ne zapisovať malé množstvá dát - od 1 do 4 kb - môžete. A spôsoby, ako ho môžete použiť, sú obmedzené iba vašou fantáziou.

V tejto lekcii sa naučíme, ako to urobiť jednoduchý systém, čím sa zámok odomkne elektronický kľúč(Metke).

V budúcnosti môžete vylepšiť a rozšíriť funkčnosť. Pridajte napríklad funkciu „pridanie nových kľúčov a ich odstránenie z pamäte“. V základnom prípade zvážte jednoduchý príklad, keď je v kóde programu vopred špecifikovaný jedinečný identifikátor kľúča.

V tomto návode budeme potrebovať:

Na realizáciu projektu potrebujeme nainštalovať knižnice:

2) Teraz musíte pripojiť bzučiak, ktorý vydá signál, ak kľúč funguje a zámok sa otvorí, a druhý signál, keď sa zámok zatvorí.

Bzučiak pripájame v nasledujúcom poradí:

Arduino Bzučiak
5V VCC
GND GND
špendlík 5 IO

3) Ako odblokovací mechanizmus sa použije servo. Je možné zvoliť akékoľvek servo v závislosti od požadovaných rozmerov a síl, ktoré servo vytvára. Servo má 3 piny:

Jasnejšie, ako sme prepojili všetky moduly, môžete vidieť na obrázku nižšie:

Teraz, ak je všetko pripojené, môžete pokračovať v programovaní.

Skica:

#include #include #include // "RFID" knižnica. #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // na uloženie čísla tagu v desiatkovom formáte Servo servo; void setup() ( Serial.begin(9600); Serial.println("Čaká sa na kartu..."); SPI.begin(); // Inicializácia SPI / Spustenie zbernice SPI. mfrc522.PCD_Init(); // inicializácia MFRC522 / Init MFRC522 card.servo.attach(6); servo.write(0); // nastavenie serva do zatvoreného stavu ) void loop() ( // Vyhľadanie nového štítku, ak (! mfrc522.PICC_IsNewCardPresent()) return; ) // Výber označenia if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // Problém sériové čísloštítky. for (bajt i = 0; i< mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec * 256 + uidDecTemp; } Serial.println("Card UID: "); Serial.println(uidDec); // Выводим UID метки в консоль. if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданому то серва открывает. { tone(5, 200, 500); // Делаем zvukový signál, otváranie servo.write(90); // Otočte servo o 90 stupňov (Odomknite akýkoľvek mechanizmus: západka, otočte kľúčom atď.) delay(3000); // pauza 3 sekundy a mechanizmus je zablokovaný. tón (5, 500, 500); // Pípnutie, Zavrieť ) servo.write(0); // nastaviť server do zatvoreného stavu )

Poďme analyzovať náčrt podrobnejšie:

Aby ste zistili UID karty (štítky), musíte napísať tento náčrt do arduina, zostaviť obvod popísaný vyššie a otvoriť konzolu (Monitorovanie sériového portu). Keď prinesiete štítok do RFID, na konzole sa zobrazí číslo

Výsledné UID je potrebné zadať do nasledujúceho riadku:

If (uidDec == 3763966293) // Porovnajte Uid štítku, ak sa rovná zadanému, potom servo otvorí ventil.

Pre každú kartu je tento identifikátor jedinečný a neopakuje sa. Keď teda predložíte kartu, ktorej ID máte nastavené v programe, systém otvorí prístup pomocou serva.

Video: