Připojení k Arduinu:

Nejprve musíte nainstalovat knihovnu RFID pro MFRC522.

Kontakty na modulu Modul RC522 RFID musí být připojen k Arduinu. Pro připojení je vhodné použít vodiče otec-matka.


Popis kontaktů na RFID modulu RC522:

  • VCC - Výkon. Potřeba 3,3V;
  • RST - reset. Resetovat linku. Nikdy se nepřipojujte na RESET pin na CraftDuino! Tento kolík se přichytí k digitálnímu portu s PWM;
  • GND – zem. Země
  • MISO - Master Input Slave Output - data z slave na master, SPI;
  • MOSI - Master Output Slave Input - data z master na slave, SPI;
  • SCK - Serial Clock - hodinový signál, SPI;
  • NSS - Slave Select - volba slave, SPI;
  • IRQ - přerušovací 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 je dodáván se dvěma štítky, jedním ve tvaru plastová karta, a druhý ve formě klíčenky. V případě potřeby je lze zakoupit samostatně.

Poté, co je vše připojeno, indikátor na modulu se rozsvítí, což znamená, že RFID je napájeno . Nyní je čas spusťte testovací skicu, která je v knihovně, kterou jsme nainstalovali.



Je nutné zkontrolovat správnost zadaných konstant:

#define SS_PIN 10 #define RST_PIN 9 // Tyto konstanty se shodují

Nyní nahrajte skicu do arduina a zapněte jej Monitorování sériového portu.

Štítek přivedeme ke čtečce a modul načte všechny údaje z tohoto štítku, například jedinečný identifikátor štítku UID.

Provozní video RFID-RC522:

Dnešní návod je o tom, jak pomocí RFID čtečky s Arduinem vytvořit jednoduchý uzamykací systém, jednoduchými slovy- RFID zámek.

RFID (anglicky Radio Frequency IDentification, radiofrekvenční identifikace) je metoda automatické identifikace objektů, ve které se pomocí rádiových signálů čtou nebo zapisují data uložená v tzv. transpondérech neboli RFID značkách. Jakýkoli RFID systém se skládá ze čtečky (čtečky, čtečky nebo dotazovače) a transpondéru (neboli RFID tag, někdy se také používá termín RFID tag).

Výukový program bude používat RFID tag s Arduinem. Zařízení načte jedinečný identifikátor (UID) každého RFID štítku, který umístíme vedle čtečky, a zobrazí jej na OLED displeji. Pokud se UID tagu rovná předdefinované hodnotě, která je uložena v paměti Arduina, na displeji se zobrazí zpráva „Unlocked“. Pokud se jedinečný identifikátor nebude rovnat předdefinované hodnotě, hláška "Odemčeno" se nezobrazí - viz foto níže.

Hrad je uzavřen

Hrad je otevřen

Krok 1: Díly, příslušenství

Podrobnosti potřebné k vytvoření tohoto projektu:

  • RFID čtečka RC522
  • OLED displej
  • Prkénko na chleba
  • dráty

Další detaily:

  • Baterie (powerbanka)

Celkové náklady na součásti projektu byly přibližně 15 USD.

Krok 2: RFID čtečka RC522

Každý RFID štítek má malý čip (bílá karta na fotografii). Pokud na tuto kartu RFID namíříte baterku, uvidíte malý čip a cívku, která ji obklopuje. Tento čip nemá baterii pro výrobu energie. Přijímá energii ze čtečky bezdrátově pomocí této velké cívky. RFID kartu je možné takto číst až na vzdálenost 20 mm.

Stejný čip existuje v přívěšcích na klíče RFID.

Každý štítek RFID má jedinečné číslo, který to identifikuje. Toto je UID, které se zobrazuje na OLED displeji. S výjimkou tohoto UID může každá značka ukládat data. Tento typ karty pojme až 1000 dat. Působivé, že? Tato funkce se dnes nevyužije. Dnes je zajímavá pouze identifikace konkrétní karty jejím UID. Čtečka RFID a tyto dvě karty RFID stojí asi 4 dolary.

Krok 3 OLED displej

Výukový program používá 0,96" 128x64 I2C OLED monitor.

Toto je velmi dobrý displej pro použití s ​​Arduinem. Je to OLED displej a to znamená, že má nízkou spotřebu energie. Spotřeba tohoto displeje je cca 10-20mA a záleží na počtu pixelů.

Displej má rozlišení 128 x 64 pixelů a je malý. Existují dvě možnosti zobrazení. Jedna z nich je monochromatická a druhá, stejně jako ta použitá v tutoriálu, může zobrazovat dvě barvy: žlutou a modrou. Horní část obrazovky může být pouze žlutá a Spodní část- modrá.

Tento OLED displej je velmi jasný a má skvělou a velmi pěknou knihovnu, kterou Adafruit pro tento displej vyvinul. Displej navíc využívá rozhraní I2C, takže připojení k Arduinu je neuvěřitelně snadné.

Potřebujete pouze připojit dva vodiče kromě Vcc a GND. Pokud jste v Arduinu noví a chcete ve svém projektu použít levný a jednoduchý displej, začněte zde.

Krok 4: Spojte všechny díly dohromady

V dnešní době se stává velmi populární využití technologie radiofrekvenční identifikace (RFID). Mnoho aplikací je implementováno v různé oblasti naše životy a jsou využívány k různým účelům. RFID umožňuje bezdrátový sběr dat pomocí čteček elektronických štítků připojených nebo zabudovaných do objektů pro identifikaci a další účely. Tento článek ukazuje, jak vytvořit jednoduché domácí zařízení pro řízení přístupu RFID pomocí Arduino UNO a čtečky RFID (EM-18) k ovládání LED a relé. Elektrické schéma a skica Arduina ( zdroj) jsou uvedeny níže.

Je-li povoleno, čtečka vysílá RF signál. Když je RFID štítek umístěn v blízkosti čtečky, přijímá RF signál přes anténu uvnitř štítku. Přijatý RF signál bude přeměněn na elektrickou energii, která je dostatečná pro přenos dat z tagu zpět do RFID čtečky. Kromě toho bude čtečka přenášet ID tagu během externí zařízení přes sériový datový port. V současné době je k dispozici široká škála modelů čteček. Nejběžnější a nejpohodlnější k použití je modul EM-18. Tento modul čte pasivní tagy RFID a odesílá ID tagu do mikrokontroléru Arduino.

ČteníID štítku RFID

Chcete-li začít, stáhněte si jednoduchý programovací kód rfid1.ino v Arduino Uno pomocí vývojového nástroje IDE.

Nyní sestavte obvod, jak je znázorněno níže.

Otevřete Serial Monitor v Arduino IDE, držte RFID tag velmi blízko středu RFID čtečky a poznamenejte si zobrazené ID tagu. Tento jedinečný identifikátor bude potřeba v dalším náčrtu! (Náš štítek má ID 51005F46642C)

Řízení přístupu

V tomto okamžiku je systém nakonfigurován tak, aby porovnal jedinečný identifikátor (používaný štítek) s identifikátorem libovolného štítku, který má být přečten.

Analyzujte stávající připojení a nahrajte nový náčrt rfid2.ino na mikrokontrolér Arduino

Znovu připojte hardwarové komponenty (s určitými úpravami), jak je znázorněno na obrázku výše. Zde je výstup D12 Mikrokontrolér Arduino používá se k napájení standardní 5mm LED. Pin D13 slouží k ovládání elektromagnetického relé přes řídicí tranzistor. Pokaždé, když se značka shoduje, objeví se na kolíku D13 na 5 sekund vysoký řídicí signál. Relé lze použít k ovládání externí zátěže, jako je dveřní zarážka. Pokud se hodnoty štítku neshodují, pak na výstupu D13 zůstává nízká úroveň signálu, ale současně se na výstupu D12 objeví signál vysoká úroveň pro spuštění alarmové LED.

1 Popis čtečky RFID RC522

Modul RFID-RC522 je založen na čipu NXP MFRC522. Tento čip zajišťuje obousměrnou bezdrátovou (až 6 cm) komunikaci na frekvenci 13,56 MHz.

Čip MFRC522 podporuje následující možnosti připojení:

Používáním tento modul můžete zapisovat a číst data z různých RFID tagů: klíčenky z interkomů, plastové karty a jízdenky na metro a pozemní doprava, stejně jako stále populárnější značky NFC.

RFID je zkratka pro „Radio Frequency IDentification“ a překládá se jako „Radio Frequency Identification“.
NFC je „Near field communication“, „near field communication“ nebo „blízká bezkontaktní komunikace“.

2 Elektrické schéma RFID-RC522 na Arduino

Připojme modul RFID-RC522 k Arduinu přes rozhraní SPI podle výše uvedeného schématu.


Modul je napájen napětím 2,5 až 3,3 V. Zbytek pinů je připojen k Arduinu takto:

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

Nezapomeňte také, že Arduino má speciální ICSP konektor pracovat na rozhraní SPI. Jeho pinout je také znázorněn na obrázku. Piny RST, SCK, MISO, MOSI a GND modulu RC522 můžete připojit k ICSP headeru na Arduinu.

3 Knihovna pro práci Arduino s RFID

Čip MFRC522 má poměrně rozsáhlou funkčnost. Se všemi možnostmi se můžete seznámit nahlédnutím do jejího pasu (datasheetu). Jsme pro seznámení s možnostmi toto zařízení použijeme některou z hotových knihoven napsaných pro Práce na Arduinu s RC522. Stáhněte si jej a rozbalte do adresáře Arduino IDE\libraries\


Instalace knihovny „rfid-master“ pro Arduino pro práci s RFID tagy

Poté spusťte Arduino IDE.

4 Náčrt pro čtení informací, napsané na štítku RFID

Nyní otevřeme skicu z příkladů: Ukázky souborů MFRC522 DumpInfo a nahrajte jej do paměti Arduino.


Tento náčrt určuje typ zařízení připojeného ke čtečce a čte data zapsaná na štítku nebo kartě RFID a poté je odesílá na sériový port.

#zahrnout #zahrnout const int RST_PIN = 9; // pin RST const int SS_PIN = 10; // SDA pin (SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // vytvoření objektu MFRC522 void setup()( Serial.begin(9600); // poslední inicializace. port SPI.begin(); // Inicializace sběrnice SPI mfrc522.PCD_Init(); // inicializace čtečky RC522 ) void loop() (// Čekání na použití nového štítku RFID: if (! mfrc522.PICC_IsNewCardPresent()) ( return; // exit, pokud není použit nová mapa) // Přečtěte si sériové číslo: if (! mfrc522.PICC_ReadCardSerial()) ( return; // exit, pokud není možné přečíst sériové číslo ) port: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

Text náčrtu je celkem dobře komentovaný.

Více plné seznámení se soubory průzkumu knihovny MFRC522.h a MFRC522.cpp z adresáře rfid mistr.

5 Výpis dat s RFID štítky

Spusťte monitor sériového portu pomocí kombinace kláves Ctrl + Shift + M prostřednictvím nabídky Nástroje nebo tlačítko s lupou. Nyní ke čtečce připevníme lístek na metro nebo jakýkoli jiný RFID štítek. Monitor sériového portu zobrazí data zapsaná na RFID štítku nebo lístku.


V mém případě je zde šifrováno například jedinečné číslo jízdenky, datum nákupu, datum expirace, počet zbývajících jízd a také informace o službě. Co je zaznamenáno na mapách metra a povrchové dopravy, rozebereme v některém z budoucích článků.

Poznámka

Ano, pomocí modulu RFID-RC522 můžete zapisovat data na jízdenku na metro. Ale nelichotte si, každá karta má nepřepisovatelné počítadlo cyklů zápisu, takže si nebudete moci „přidávat“ cesty do svého metra - bude to okamžitě detekováno a karta bude turniketem odmítnuta :) Ale pomocí jízdenek na metro na ně zapisovat malé objemy dat - od 1 do 4 kb - můžete. A způsoby, jak to můžete použít, jsou omezeny pouze vaší představivostí.

V této lekci se naučíme, jak na to jednoduchý systém, kterým se zámek odemkne elektronický klíč(Metke).

V budoucnu můžete funkce upřesnit a rozšířit. Přidejte například funkci „přidání nových klíčů a jejich odstranění z paměti“. V základním případě zvažte jednoduchý příklad, kdy je v kódu programu předem specifikován jedinečný identifikátor klíče.

V tomto tutoriálu budeme potřebovat:

K realizaci projektu potřebujeme nainstalovat knihovny:

2) Nyní je potřeba připojit Bzučák, který vydá signál, pokud klíč funguje a zámek se otevře, a druhý signál, když se zámek zavře.

Bzučák připojujeme v následujícím pořadí:

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

3) Jako odjišťovací mechanismus bude použito servo. Lze zvolit libovolné servo v závislosti na požadovaných rozměrech a silách, které servo vytváří. Servo má 3 piny:

Jasněji můžete vidět, jak jsme propojili všechny moduly na obrázku níže:

Nyní, pokud je vše připojeno, můžete přistoupit k programování.

Skica:

#zahrnout #zahrnout #zahrnout // Knihovna "RFID". #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // pro uložení čísla tagu v desítkovém formátu Servo servo; void setup() ( Serial.begin(9600); Serial.println("Čekání na kartu..."); SPI.begin(); // Inicializace SPI / Init SPI sběrnice. mfrc522.PCD_Init(); // inicializace MFRC522 / Init MFRC522 card.servo.attach(6); servo.write(0); // nastavení serva do uzavřeného stavu ) void loop() ( // Vyhledání nového štítku, pokud (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // Výběr štítku 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, otevření servo.write(90); // Otočte servo o 90 stupňů (Odemkněte jakýkoli mechanismus: západku, otočte klíčkem atd.) delay(3000); // pauza 3 sekundy a mechanismus je uzamčen. tón (5, 500, 500); // Pípne, Zavřít ) servo.write(0); // nastavit server do uzavřeného stavu )

Pojďme si skicu analyzovat podrobněji:

Abyste zjistili UID karty (štítky), musíte tento náčrt napsat do arduina, sestavit obvod popsaný výše a otevřít konzolu (Monitorování sériového portu). Když štítek přinesete do RFID, na konzole se zobrazí číslo

Výsledné UID je třeba zadat do následujícího řádku:

If (uidDec == 3763966293) // Porovnejte Uid štítku, pokud se rovná zadanému, pak servo otevře ventil.

Pro každou kartu je tento identifikátor jedinečný a neopakuje se. Když tedy předložíte kartu, jejíž ID máte nastavené v programu, systém otevře přístup pomocí serva.

Video: