Arduino+Ethernet Shield+RFID RC522 – dziennik użyć kart

arduino-rfidW dzisiejszym artykule przedstawię sposób, jak zbudować dziennik użyć kart RFID przy pomocy Arduino Uno, Ethernet Shield oraz czytnika RFID RC522. Wykorzystamy również technologie webowe, takie jak PHP i mySQL - opisywane w poprzednich artykułach. Układ pozwala na autoryzację z góry określonych kart dostępowych i tylko te karty są rejestrowane w dzienniku. W przykładzie wykorzystałem diody LED, lecz układ można uzupełnić o serwo-mechanizm lub elektrozamek - wtedy będziemy mogli zabezpieczyć drzwi wejściowe, bramę wejściową lub szafkę. Możliwości jest bardzo dużo - od nas zależy, jak wykorzystamy układ.

Poniżej kilka propozycji
  • drzwi wejściowe autoryzowane kartą RFID
  • szafka przy biurku
  • pomieszczenie chronione (nasz warsztat 🙂 )
  • brama garażowa
  • prosta rejestracja czasu pracy pracowników w firmie
 Do budowy dziennika niezbędne są następujące elementy:
  • Arduino Uno
  • Ethernet Shield
  • Czytnik RFID RC522 + karty
  • Router, kabel ethernet
  • Diody led, rezystory
  • Płytka prototypowa, kable połączeniowe
  • serwer z obsługą PHP i MySQL
 IMG_20151123_200347 Zasada działania układu:

Po przybliżeniu do czytnika karty RFID sprawdzany jest jej unikalny Uid, następnie jest on porównywalny z numerem który zadeklarowaliśmy na samym początku kodu. Jeżeli numery są takie same, Arduino poprzez http request uruchamia skrypt PHP aktualizujący bazę danych o datę i godzinę użycia karty oraz jej ID. Jeżeli autoryzacja przebiegła pozytywnie, zaświecana jest zielona dioda LED. W przeciwnym wypadku zapala się czerwona dioda. Nic nie stoi na przeszkodzie, aby rejestrować wszystkie użyte karty - nawet te nieautoryzowane (wystarczy zmienić warunek w kodzie). Wszystkie zdarzenia zapisywane są z bazie mySQL a wyświetlane za pomocą prostej strony przygotowanej w PHP i przy pomocy frameworka Bootstrap.

 Podłączenie MR-RC522rfid arduino_uno_ethernet_pins 
Ważne: Ethernet Shield jak również RC522 wykorzystują do komunikacji magistralę SPI. Dlatego ważne jest, aby obydwa moduły podłączyć tak aby "nie gryzły się ze sobą."
 Ethernet Shield korzysta z następujących pinów na UNO:D13, D12, D11 - szyna SPI (D50, D51 i D52 na Arduino Mega) D10 - slave select dla modułu Ethernet D4 - slave select dla karty SD D2 - jeżeli zostanie zlutowany pad na spodniej stronie shielda, wówczas D2 jest połączony z linią INT układu W5100 A0 - detekcja zabezpieczenia zapisu na karcie SD (write protect) A1 - detekcja obecności karty SD w slocie  Opis działania prostej strony przygotowanej w PHP

Skrypt dziennik.php pobiera z bazy danych dwie kolumny: timeStamp oraz idkarty. Następnie wyświetla je w formie tabeli. Dane sortowane są od najnowszego użycia. Szablon jest w pełni responsywny, dzięki czemu dostosuje się do wyświetlania na każdym urządzeniu.

Cały skrypt wraz z strukturą bazy danych dostępny jest do pobrania tutaj. Wystarczy utworzyć bazę danych, uzupełnić plik połączeniowy z bazą danych oraz wrzucić pliki na serwer z obsługą PHP.
 Opis plików:connectDB.php - połączenie z bazą danych dziennik.php - odczyt danych z bazy w formie tabeli rfid.php - skrypt aktualizujący bazę poprzez Arduino dziennikRFID.sql - struktura bazy mySQL: Widok skryptu:dziennikrfidSketch: Jeżeli będą problemy z instalacją skryptów lub ze zrozumieniem kodu, zapraszam do kontaktu. Bardzo chętnie pomogę i postaram się wyjaśnić niezrozumiałe rzeczy.Miłego majsterkowania!

8 myśli na temat “Arduino+Ethernet Shield+RFID RC522 – dziennik użyć kart

  1. Fajnie to działa, ale pytanie z innej beczki, jak (linia 39-41) wynik tego wyświetlić jako Uppercase ?

    W tej chwili string jest z małymi literami, a chciał bym aby ładnie był wyświetlony w dużych 🙂

  2. Hello,
    Good job, but how to play a serial with the RC522 and compare it with that of a mysql database for open a door for exemple ?

    Regards
    Alfred

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *