Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Zamek otwierany RFID na Arduino

ghost666 23 Mar 2018 21:37 18426 6
  • Zamek otwierany RFID na Arduino
    W poniższym materiale autor opisuje jak wykorzystać Arduino i czytnik RFID do zbudowania prostego zamka. W systemie tym Arduino odczytuje identyfikator taga RFID z pomocą specjalnego czytnika. Identyfikator jest wyświetlany na ekranie OLED, a jeżeli zgadza się z zapisanym w pamięci układu numerem, to wyświetla napis "Unlocked", może także otwierać zamek etc.

    Zamek otwierany RFID na Arduino
    Krok 1: Potrzebne elementy

    Do zestawienia poniższego systemu potrzebne są następujące moduły:

    * Moduł Arduino Uno
    * Czytnik tagów RFID
    * Ekran OLED
    * Niewielką płytkę uniwersalną
    * Trochę kabelków do wykonania połączeń.

    Dodatkowo przyda nam się zasilacz lub powerbank, który umożliwi zasilanie modułu Arduino.

    Koszt zestawienia układu to około 15 dolarów.

    Zamek otwierany RFID na ArduinoZamek otwierany RFID na Arduino
    Krok 2: Czytnik RFID RC522

    Każdy tag RFID zawiera w sobie mały układ scalony. Jeśli umieścimy go w świetle latarki, to zobaczymy w środku niewielki układ scalony oraz cewkę - antenę - wokół niego. Moduł taki nie ma w sobie baterii. Energię do zasilania pobiera z otoczenia, poprzez antenę. W momencie, gdy umieścimy go przy czytniku, fale radiowe czytnika wzbudzają prąd w cewce, który wystarcza, by moduł RFID w odpowiedzi przesłał informacje. Maksymalna odległość pomiędzy czytnikiem a tagiem to około 20 mm.

    Takie same układy scalone i anteny jak pokazano powyżej znajdziemy też w kartach RFID, breloczkach czy w niektórym sprzęcie.

    Każdy tak RFID ma swój unikatowy numer identyfikacyjny - UID. Ten numer wyświetlamy właśnie na OLEDowym wyświetlaczu systemu. Oprócz samego UID w układzie zapisać możemy jakieś dane - do 1 Kb danych. W tym systemie nie będziemy używać tej możliwości, ale autor przewiduje stworzenie kolejnego tutoriala, w ramach którego zostanie to opisane.

    W tym artykule skupimy się na identyfikacji konkretnego taga poprzez jego UID. Na podstawie tego numeru otwierać będziemy zamek.

    Opisana technologia jest szeroko wykorzystywana i bardzo tania. Koszt czytnika RFID i dwóch tagów to około 4 dolary.

    Zamek otwierany RFID na Arduino
    Krok 3: Wyświetlacz OLED

    Wyświetlacze OLED są chętnie stosowane w projektach z Arduino, z uwagi na niski pobór prądu i doskonałą czytelność ekranu. Pobór prądu typowego wyświetlacza tego rodzaju to około 10..20 mA i zależy od tego ile, w danym momencie, zapalonych jest pikseli.

    Wykorzystany wyświetlacz ma rozdzielczość 128 x 64. Tego rodzaju miniaturowe wyświetlacze dostępne są w dwóch wersjach - monochromatycznej lub podzielonej na dwie sekcje - niebieską i żółtą.

    Wyświetlacze OLED oprócz wymienionych powyżej zalet, są także proste w sterowaniu. Kontrolowane są one przez interfejs I²C, dzięki czemu oprócz zasilania wystarczy podłączyć do nich dwa wyprowadzenia mikrokontrolera. Dodatkowo do Arduino dostępne są gotowe, proste w wykorzystaniu biblioteki dedykowane do obsługi tego rodzaju wyświetlaczy. Szerszy opis korzystania z tej biblioteki znajdziemy w poniższym filmie:





    Zamek otwierany RFID na ArduinoZamek otwierany RFID na ArduinoZamek otwierany RFID na ArduinoZamek otwierany RFID na Arduino
    Krok 4: Połączenia poszczególnych elementów

    Podłączenie poszczególnych elementów do modułu Arduino jest bardzo proste. Do modułu z mikrokontrolerem podłączyć musimy wyświetlacz i czytnik RFID. Ważne jest, by czytnik podłączony był do zasilania 3,3 V a nie 5 V (może pracować z oboma), gdyż inaczej uszkodzi Arduino. Dlatego też Vcc czytnika i wyświetlacza podłączamy do zasilania 3,3 V. Pamiętajmy też o połączeniu ze sobą pinów masy.

    Wyświetlacz OLED - Arduino
    Vcc ▶ 3.3V
    GND ▶ GND
    SCL ▶ Analogowy pin numer 5
    SDA ▶ Analogowy pin numer 4

    Czytnik RFID - Arduino
    RST ▶ Cyfrowy pin numer 9
    IRQ ▶ Niepodłączone
    MISO ▶ Cyfrowy pin numer 12
    MOSI ▶ Cyfrowy pin numer 11
    SCK ▶ Cyfrowy pin numer 13
    SDA ▶ Cyfrowy pin numer 10

    Moduł RFID do komunikacji wykorzystuje interfejs SPI. Dlatego też skorzystamy ze sprzętowego modułu SPI w module Arduino UNO. Moduł OLED, jak napisaliśmy wyżej, korzysta z interfejsu I²C, dlatego też podłączamy go do pinów 4 i 5, gdzie znajdziemy sprzętowy moduł I²C.

    Teraz wystarczy tylko podłączyć układ do zasilania i wgrać do Arduino odpowiedni program, aby wszystko zaczęło działać.

    Krok 5: Oprogramowanie

    Software do naszego układu napisany jest w środowisku Arduino IDE. Aby było to możliwe, musimy zainstalować odpowiednie biblioteki. Klikamy w Sketch -> Include Libraries -> Manage libraries i szukamy biblioteki do modułu MFRC522 i instalujemy ją. Następnie w ten sam sposób instalujemy bibliotekę do wyświetlacza - SSD1306 - oraz bibliotekę Adafruit GFX. Biblioteka obsługująca wyświetlacz wymaga kilku drobnych zmian. Klikamy a folder Arduino/Libraries i otwieramy folder z Adafruit SSD1306, gdzie edytujemy plik Adafruit_SSD1306.h. W bibliotece musimy zakomentować linię 70 i odkomentować linię 69, co pozwoli dostosować bibliotekę do rozdzielczości 128x64.

    Teraz przyjrzyjmy się samemu kodowi programu.

    Po pierwsze musimy zdeklarować wartość UID taga RFID, jaka rozpoznawana ma być przez program. Jest to macierz liczb całkowitych (int):

    Code: c
    Log in, to see the code


    Następnie inicjalizujemy czytnik RFID oraz wyświetlacz:

    Code: c
    Log in, to see the code


    Następnie program rozpoczyna główną pętlę programu, w której odczytuje wartość czytnika poprzez SPI co około 100 ms. Jeżeli odczytana wartość jest taka sama jak zapisana w zmiennej zdefiniowanej na początku, to program wykonuje kod zawarty w odpowiednim miejscu funkcji if:

    Code: c
    Log in, to see the code


    W tym przypadku jest to wyświetlenie informacji o rozpoznaniu karty i 'otwarcie zamka', tj. wyświetlenie takiego napisu. W naszym systemie może być tam cokolwiek innego, np. sterowanie siłownikiem bądź silnikiem sterującym prawdziwym zamkiem.

    Pełen kod szkicu Arduino zamieszczono poniżej:

    Code: c
    Log in, to see the code


    Zamek otwierany RFID na Arduino


    Podsumowanie

    Jak widać w powyższym projekcie - stworzenie czytnika RFID jest bardzo prostym zadaniem. Tego rodzaju system można wykorzystać nie tylko w zamku, ale też w innych projektach, np. w interaktywnych zabawkach dla dzieci.

    Źródło: http://www.instructables.com/id/Arduino-RFID-Lock-Tutorial/
    Code: actionscript
    Log in, to see the code
    Code: actionscript
    Log in, to see the code

    Cool? Ranking DIY
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11811 posts with rating 9948, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • #4
    austin007
    Level 17  
    eXcLiFe wrote:
    "Maksymalna odległość pomiędzy czytnikiem a tagiem to około 20 mm. " Po zmianie dopasowania anteny spokojnie 100mm... Na MFRC522 śmiało można uruchamiać DESFire EVx czy inne taki typu t w ISO14443-4 aby taki czytnik spełniał SL3


    @eXcLiFe
    Jaki na tych PCB jest układ dopasowujący/balun RF?
    Dobre dopasowanie tj takie z datasheet producenta układu?
    Pytam , bo zamówiłem u majfrienda sztukę
  • #6
    BOYXBA
    Level 6  
    Możesz kupić kontroler RFID Assy z 20 euro od aliexpress ....