Files
NFC-University-Gate-Access-…/Readme.md
2026-01-14 09:23:36 +01:00

2.9 KiB

NFC University Gate Access System 🎓🚗

System kontroli dostępu do bramy lub drzwi na uczelni, wykorzystujący Elektroniczną Legitymację Studencką (ELS) oraz komunikację online z bazą danych MySQL.

📝 Opis projektu

Projekt umożliwia autoryzację wjazdu na teren uczelni za pomocą standardowych legitymacji studenckich (standard NFC/RFID 13.56MHz). System nie przechowuje listy uprawnionych osób lokalnie na urządzeniu, lecz każdorazowo odpytuje serwer bazy danych, co pozwala na natychmiastowe nadawanie lub odbieranie uprawnień.

🏗 Architektura systemu

  1. ESP32: Odczytuje unikalny numer (UID) karty zbliżeniowej.
  2. API (PHP): Skrypt pośredniczący, który odbiera UID od ESP32 i komunikuje się z bazą danych.
  3. Baza Danych (MySQL): Przechowuje informacje o studentach, ich numerach UID oraz ważności uprawnień.
  4. Przekaźnik: Fizycznie zwiera styki w sterowniku bramy po otrzymaniu pozytywnej weryfikacji.

🛠 Wymagania sprzętowe

  • Mikrokontroler: ESP32 (lub ESP8266 z poprawkami w kodzie).
  • Czytnik NFC: MFRC522 (RC522) lub PN532.
  • Moduł przekaźnika: 1-kanałowy (Low/High level trigger).
  • Zasilanie: 5V/12V (zależnie od sterownika bramy).
  • Pozostałe: Diody LED (status), rezystory, przewody połączeniowe.

💻 Struktura bazy danych

Wykonaj poniższe zapytanie SQL, aby przygotować bazę danych:

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
        card_uid VARCHAR(20) UNIQUE NOT NULL,
            full_name VARCHAR(100),
                student_id_number VARCHAR(15),
                    is_active BOOLEAN DEFAULT 1,
                        expiry_date DATE,
                            last_entry TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
                            );
Instalacja i Konfiguracja
1. Serwer (Backend)
Skopiuj pliki z folderu /server na swój hosting/serwer.
Skonfiguruj połączenie z bazą danych w pliku db_config.php.
Dodaj testowy rekord (UID swojej legitymacji) do tabeli students.
2. Urządzenie (Firmware)
Otwórz projekt w Arduino IDE lub PlatformIO.
Zainstaluj biblioteki: MFRC522 oraz HTTPClient.
W pliku głównym uzupełnij dane:
SSID i Password Twojej sieci WiFi.
API_URL (adres do Twojego skryptu PHP).
Wgraj program na ESP32.
🔌 Połączenia (Pinout - ESP32 & RC522)
RC522 ESP32
SDA GPIO 5
SCK GPIO 18
MOSI GPIO 23
MISO GPIO 19
IRQ N/C
GND GND
RST GPIO 22
3.3V 3.3V
Przekaźnik podłączony domyślnie pod GPIO 2.
🔒 Bezpieczeństwo
HTTPS: Zaleca się hostowanie skryptu API na serwerze z certyfikatem SSL.
API KEY: Warto dodać nagłówek autoryzacji w zapytaniach HTTP, aby uniemożliwić ręczne wywoływanie skryptu z przeglądarki.
Fail-safe: System w przypadku braku połączenia z siecią pozostaje w trybie zamkniętym.
📄 Licencja
Projekt udostępniony na licencji MIT. Możesz go dowolnie modyfikować na potrzeby własnych projektów edukacyjnych.