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.
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.
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.
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:
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):
Następnie inicjalizujemy czytnik RFID oraz wyświetlacz:
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:
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:
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/
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.
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.
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:
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
Następnie inicjalizujemy czytnik RFID oraz wyświetlacz:
Code: c
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
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
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
Code: actionscript
Cool? Ranking DIY