Połączenie z Arduino:

Najpierw musisz zainstalować bibliotekę RFID dla MFRC522.

Styki na module Do Arduino musi być podłączony moduł RFID RC522. Do połączenia wygodnie jest użyć przewodów ojciec-matka.


Opis styków modułu RFID RC522:

  • VCC - Moc. Potrzebujesz 3,3 V;
  • RST - reset. Zresetuj linię. Nigdy nie łącz się z pinem RESET w CraftDuino! Ten pin przylega do portu cyfrowego z PWM;
  • GND - Uziemienie. Ziemia
  • MISO - Master Input Slave Output - dane od slave do master, SPI;
  • MOSI - Master Output Slave Input - dane z mastera do slavea, SPI;
  • SCK - Serial Clock - sygnał zegarowy, SPI;
  • NSS - Slave Select - wybór slave'a, SPI;
  • IRQ - linia przerwań;
MFRC522 Arduino Uno Arduino Mega Arduino Nano v3 Arduino Leonardo/Mikro 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,3V 3,3V 3,3V Stabilizator 3,3V Stabilizator 3,3V Stabilizator 3,3V
GND GND GND GND GND GND

Moduł RFID-RC522 jest dostarczany z dwoma tagami, jeden w formie plastikowa karta, a drugi w postaci breloczka. W razie potrzeby można je kupić osobno.

Po podłączeniu wszystkiego wskaźnik na module zaświeci się, co oznacza, że ​​zasilanie jest dostarczane do RFID . Teraz jest czas uruchom testowy szkic, który znajduje się w zainstalowanej przez nas bibliotece.



Należy sprawdzić poprawność podanych stałych:

#define SS_PIN 10 #define RST_PIN 9 // Te stałe pasują

Teraz wgraj szkic do arduino i włącz go Monitorowanie portu szeregowego.

Przynosimy etykietę do czytnika, a moduł odczytuje wszystkie dane z tej etykiety, na przykład unikalny identyfikator etykiety UID.

Wideo obsługi RFID-RC522:

Dzisiejszy samouczek dotyczy wykorzystania czytnika RFID z Arduino do stworzenia prostego systemu blokowania, w prostych słowach- Blokada RFID.

RFID (ang. Radio Frequency IDentification, identyfikacja częstotliwości radiowej) to metoda automatycznej identyfikacji obiektów, w której dane przechowywane w tzw. transponderach, czyli tagach RFID, są odczytywane lub zapisywane za pomocą sygnałów radiowych. Każdy system RFID składa się z czytnika (czytnika, czytnika lub interrogatora) i transpondera (inaczej tag RFID, czasami używa się również określenia tag RFID).

Samouczek użyje tagu RFID z Arduino. Urządzenie odczytuje unikalny identyfikator (UID) każdego tagu RFID, który umieszczamy obok czytnika i wyświetla go na wyświetlaczu OLED. Jeżeli UID tagu jest równy predefiniowanej wartości, która jest zapisana w pamięci Arduino, na wyświetlaczu pojawi się komunikat „Unlocked”. Jeżeli unikalny identyfikator nie jest zgodny z predefiniowaną wartością, komunikat „Odblokowany” nie pojawi się – patrz zdjęcie poniżej.

Zamek jest zamknięty

Zamek jest otwarty

Krok 1: Części, Akcesoria

Szczegóły potrzebne do stworzenia tego projektu:

  • Czytnik RFID RC522
  • Wyświetlacz OLED
  • Deska do chleba
  • przewody

Dodatkowe Szczegóły:

  • Bateria (powerbank)

Całkowity koszt komponentów projektu wyniósł około 15 USD.

Krok 2: Czytnik RFID RC522

Każdy tag RFID posiada mały chip (na zdjęciu biała karta). Jeśli skierujesz latarkę na tę kartę RFID, zobaczysz mały chip i otaczającą go cewkę. Ten chip nie ma baterii do generowania energii. Otrzymuje zasilanie z czytnika bezprzewodowo za pomocą tej dużej cewki. Taką kartę RFID można odczytać z odległości do 20 mm.

Ten sam chip występuje w brelokach RFID.

Każdy tag RFID ma unikalny numer, który go identyfikuje. To jest UID, który jest wyświetlany na wyświetlaczu OLED. Z wyjątkiem tego UID, każdy tag może przechowywać dane. Karta tego typu może przechowywać do 1000 danych. Imponujące, prawda? Ta funkcja nie będzie dziś używana. Dziś interesująca jest tylko identyfikacja konkretnej karty za pomocą jej UID. Czytnik RFID i te dwie karty RFID kosztują około 4 USD.

Krok 3 Wyświetlacz OLED

W samouczku zastosowano monitor OLED I2C o przekątnej 0,96 cala i rozdzielczości 128x64.

To bardzo dobry wyświetlacz do współpracy z Arduino. Jest to wyświetlacz OLED, a to oznacza, że ​​ma niski pobór mocy. Pobór mocy tego wyświetlacza wynosi około 10-20mA i zależy od liczby pikseli.

Wyświetlacz ma rozdzielczość 128 na 64 piksele i jest niewielki. Dostępne są dwie opcje wyświetlania. Jeden z nich jest monochromatyczny, a drugi, podobnie jak ten użyty w samouczku, może wyświetlać dwa kolory: żółty i niebieski. Górna część ekranu może być tylko żółta i Dolna część- niebieski.

Ten wyświetlacz OLED jest bardzo jasny i ma świetną i bardzo ładną bibliotekę, którą Adafruit opracował dla tego wyświetlacza. Oprócz tego wyświetlacz wykorzystuje interfejs I2C, więc połączenie z Arduino jest niezwykle łatwe.

Wystarczy podłączyć dwa przewody z wyjątkiem Vcc i GND. Jeśli jesteś nowy w Arduino i chcesz użyć niedrogiego i prostego wyświetlacza w swoim projekcie, zacznij tutaj.

Krok 4: Łączenie wszystkich części

W dzisiejszych czasach bardzo popularne staje się wykorzystanie technologii identyfikacji radiowej (RFID). Wiele aplikacji jest wdrażanych w różne obszary nasze życie i są wykorzystywane do różnych celów. RFID umożliwia bezprzewodowe zbieranie danych za pomocą elektronicznych czytników tagów przymocowanych do obiektów lub w nich osadzonych w celu identyfikacji i innych celów. W tym artykule pokazano, jak zbudować proste, domowej roboty urządzenie kontroli dostępu RFID przy użyciu Arduino UNO i czytnika RFID (EM-18) do sterowania diodą LED i przekaźnikiem. Schemat połączeń i szkic Arduino ( źródło) przedstawiono poniżej.

Po włączeniu czytnik wysyła sygnał RF. Gdy znacznik RFID jest umieszczony w pobliżu czytnika, odbiera sygnał RF przez antenę wewnątrz znacznika. Odebrany sygnał RF zostanie zamieniony na energię elektryczną, która wystarcza do przesłania danych z taga z powrotem do czytnika RFID. Ponadto czytnik prześle identyfikator tagu podczas zewnętrzne urządzenie przez port szeregowy danych. Obecnie dostępna jest szeroka gama modeli czytników. Najpopularniejszym i najwygodniejszym w użyciu jest moduł EM-18. Ten moduł odczytuje pasywne tagi RFID i wysyła identyfikator tagu do mikrokontrolera Arduino.

CzytanieIdentyfikator tagu RFID

Aby rozpocząć, pobierz prosty kod programowania rfid1.ino w Arduino Uno za pomocą narzędzia programistycznego IDE.

Teraz zmontuj obwód, jak pokazano poniżej.

Otwórz Serial Monitor w Arduino IDE, trzymaj tag RFID bardzo blisko środka czytnika RFID i zanotuj wyświetlany identyfikator tagu. Ten unikalny identyfikator będzie potrzebny w następnym szkicu! (Nasz tag ma ID 51005F46642C)

Kontrola dostępu

W tym momencie system jest skonfigurowany do porównywania unikalnego identyfikatora (etykiety w użyciu) z identyfikatorem dowolnej etykiety do odczytania.

Przeanalizuj istniejące połączenie i prześlij nowy szkic rfid2.ino do mikrokontrolera Arduino

Ponownie podłącz elementy sprzętowe (z pewnymi modyfikacjami), jak pokazano na powyższym rysunku. Oto wynik D12 Mikrokontroler Arduino służy do napędzania standardowej diody LED 5 mm. Pin D13 służy do sterowania przekaźnikiem elektromagnetycznym poprzez tranzystor sterujący. Za każdym razem, gdy znak jest dopasowany, na pinie D13 pojawia się wysoki sygnał kontrolny na 5 sekund. Przekaźnik może być używany do sterowania zewnętrznym obciążeniem, takim jak ogranicznik drzwi. Jeśli wartości etykiet nie pasują, to na wyjściu D13 pozostaje niski poziom sygnału, jednak w tym samym czasie na wyjściu D12 pojawia się sygnał wysoki poziom aby wyzwolić alarmową diodę LED.

1 Opis czytnika RFID RC522

Moduł RFID-RC522 oparty jest na chipie NXP MFRC522. Układ ten zapewnia dwukierunkową komunikację bezprzewodową (do 6 cm) na częstotliwości 13,56 MHz.

Obsługuje układ MFRC522 następujące opcje znajomości:

Używając ten moduł możesz zapisywać i odczytywać dane z różnych tagów RFID: breloczków z domofonów, plastikowych przepustek i biletów metra oraz transportu naziemnego, a także coraz popularniejsze tagi NFC.

RFID jest skrótem od „identyfikacji częstotliwości radiowej” i tłumaczy się jako „identyfikacja częstotliwości radiowej”.
NFC to „komunikacja bliskiego zasięgu”, „komunikacja bliskiego zasięgu” lub „komunikacja zbliżeniowa bliskiego zasięgu”.

2 Schemat połączeń RFID-RC522 do Arduino

Podłączmy moduł RFID-RC522 do Arduino poprzez interfejs SPI zgodnie z powyższym schematem.


Moduł zasilany jest napięciem od 2,5 do 3,3 V. Pozostałe piny podłączamy do Arduino w następujący sposób:

Pin RC522Pin Arduino
RSTD9
SDA(SS)D10
MOSID11
MISOD12
SCKD13

Nie zapominaj też, że Arduino ma specjalną Złącze ICSP do pracy na interfejsie SPI. Jego rozmieszczenie jest również pokazane na ilustracji. Możesz podłączyć piny RST, SCK, MISO, MOSI i GND modułu RC522 do nagłówka ICSP na Arduino.

3 Biblioteka do pracy Arduino z RFID

Układ MFRC522 ma dość rozbudowaną funkcjonalność. Możesz zapoznać się ze wszystkimi możliwościami, sprawdzając jej paszport (arkusz danych). Jesteśmy za zapoznaniem się z możliwościami to urządzenie skorzystamy z jednej z gotowych bibliotek napisanych dla Praca Arduino z RC522. Pobierz go i rozpakuj do katalogu Arduino IDE\libraries\


Instalacja biblioteki „rfid-master” dla Arduino do pracy z tagami RFID

Następnie uruchom Arduino IDE.

4 Szkic do czytania informacji, napisane na tagu RFID

Otwórzmy teraz szkic z przykładów: Przykłady plików MFRC522 DumpInfo i załaduj go do pamięci Arduino.


Szkic ten określa typ urządzenia podłączonego do czytnika i odczytuje dane zapisane na tagu lub karcie RFID, a następnie wyprowadza je na port szeregowy.

#włączać #włączać const int RST_PIN = 9; // pin RST const int SS_PIN = 10; // pin SDA (SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // utwórz obiekt MFRC522 pusta konfiguracja()( Serial.początek(9600); // inicjalizacja ostatnia. port SPI.początek(); // Inicjalizacja magistrali SPI mfrc522.PCD_Init(); // inicjalizacja czytnika RC522 ) void loop() (// Oczekiwanie na zastosowanie nowego tagu RFID: if (! mfrc522.PICC_IsNewCardPresent()) ( return; // zakończ, jeśli nie zastosowano nowa mapa) // Odczytaj numer seryjny: if (! mfrc522.PICC_ReadCardSerial()) ( return; // wyjdź, jeśli nie można odczytać numeru seryjnego ) port: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

Tekst szkicu jest dość dobrze skomentowany.

Więcej pełna znajomość z biblioteką przeglądaj pliki MFRC522.h oraz MFRC522.cpp z katalogu mistrz rfid.

5 Zrzut danych z tagami RFID

Uruchom monitor portu szeregowego za pomocą kombinacji klawiszy Ctrl + Shift + M , poprzez menu Narzędzia lub przycisk lupy. Teraz dołączmy do czytnika bilet metra lub dowolny inny tag RFID. Monitor portu szeregowego pokaże dane zapisane w tagu lub bilecie RFID.


Na przykład w moim przypadku szyfrowany jest tutaj unikalny numer biletu, data zakupu, data ważności, liczba pozostałych przejazdów, a także informacje o usłudze. W jednym z kolejnych artykułów przeanalizujemy, co jest zapisane na mapach metra i transportu naziemnego.

Notatka

Tak, za pomocą modułu RFID-RC522 można zapisać dane do biletu metra. Ale nie pochlebiaj sobie, każda karta ma jednorazowy licznik cykli zapisu, więc nie będziesz mógł „dodać” przejazdów do swojego metra - zostanie to natychmiast wykryte, a karta zostanie odrzucona przez kołowrót :) Ale używając biletów metra do rejestrowania na nich niewielkich ilości danych - od 1 do 4 kb - możesz. A sposoby, w jakie możesz go używać, są ograniczone tylko twoją wyobraźnią.

W tej lekcji dowiemy się, jak to zrobić prosty system, który odblokuje zamek przez klucz elektroniczny(Metkego).

W przyszłości możesz udoskonalać i rozszerzać funkcjonalność. Na przykład dodaj funkcję "dodawanie nowych kluczy i usuwanie ich z pamięci". W przypadku podstawowym rozważmy prosty przykład, w którym w kodzie programu jest wstępnie określony unikalny identyfikator klucza.

W tym samouczku będziemy potrzebować:

Aby zrealizować projekt, musimy zainstalować biblioteki:

2) Teraz musisz podłączyć brzęczyk, który da sygnał, jeśli klucz zadziała i zamek się otworzy, a drugi sygnał, gdy zamek się zamknie.

Brzęczyk podłączamy w następującej kolejności:

Arduino Brzęczyk
5V VCC
GND GND
pin 5 IO

3) Serwo będzie używane jako mechanizm odblokowujący. Można wybrać dowolne serwo, w zależności od wymaganych wymiarów i sił, które serwo wytwarza. Serwo posiada 3 piny:

Bardziej wyraźnie widać, jak połączyliśmy wszystkie moduły na poniższym obrazku:

Teraz, jeśli wszystko jest połączone, możesz przejść do programowania.

Naszkicować:

#włączać #włączać #włączać // Biblioteka "RFID". #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // przechowywanie numeru znacznika w formacie dziesiętnym Servo servo; void setup() ( Serial.begin(9600); Serial.println("Oczekiwanie na kartę..."); SPI.begin(); // inicjalizacja SPI / Init SPI bus. mfrc522.PCD_Init(); // inicjalizacja MFRC522 / Init MFRC522 card.servo.attach(6); servo.write(0); // ustaw serwo w stan zamknięty ) void loop() ( // Wyszukaj nową etykietę, jeśli (! mfrc522.PICC_IsNewCardPresent()) ( return; ) // Wybór etykiety if (! mfrc522.PICC_ReadCardSerial()) ( return; ) uidDec = 0; // Problem numer seryjny etykiety. 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); // Делаем sygnał dźwiękowy, otwieranie servo.write(90); // Obróć serwo o 90 stopni (Odblokuj dowolny mechanizm: zatrzask, przekręć klucz itp.) delay(3000); // pauza 3 sekundy i mechanizm jest zablokowany. ton (5, 500, 500); // Wydaj sygnał dźwiękowy, Zamknij ) servo.write(0); // ustaw serwer w stan zamknięty )

Przeanalizujmy szkic bardziej szczegółowo:

Aby znaleźć UID karty (Etykiety), musisz napisać ten szkic do arduino, złożyć opisany powyżej obwód i otworzyć Konsolę (Monitorowanie portu szeregowego). Gdy zbliżysz tag do RFID, w konsoli zostanie wyświetlony numer

Wynikowy UID należy wpisać w następującym wierszu:

If (uidDec == 3763966293) // Porównaj Uid etykiety, jeśli jest równy podanemu, to serwo otwiera zawór.

Dla każdej karty ten identyfikator jest unikalny i nie powtarza się. Dzięki temu, gdy przedstawisz kartę, której identyfikator ustawiłeś w programie, system otworzy dostęp za pomocą serwomechanizmu.

Wideo: