2026-01-14 10:02:40 +01:00
2026-01-14 10:02:40 +01:00
2026-01-14 09:59:16 +01:00

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.

🔌 Schemat połączeń (Pinout)

Poniższa tabela przedstawia połączenie czytnika RFID-RC522 z mikrokontrolerem ESP32:

Moduł RC522 ESP32 (GPIO) Opis
VCC 3.3V Zasilanie (UWAGA: Nie podłączać pod 5V!)
RST GPIO 22 Reset
GND GND Masa
MISO GPIO 19 Master In Slave Out (SPI)
MOSI GPIO 23 Master Out Slave In (SPI)
SCK GPIO 18 Serial Clock (SPI)
SDA (SS) GPIO 5 Chip Select (SPI)

Elementy dodatkowe:

  • Przekaźnik (Relay): Sygnał sterujący podłączony do GPIO 2.
  • Dioda LED (Opcjonalnie): GPIO 4 (sygnalizacja otwarcia).

🔒 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.

Description
System kontroli dostępu do bramy uczelnianej oparty na Elektronicznej Legitymacji Studenckiej (ELS). Projekt wykorzystuje technologię NFC, mikrokontroler ESP32 oraz zdalną bazę danych MySQL do weryfikacji uprawnień w czasie rzeczywistym.
Readme 40 KiB
Languages
C++ 89.6%
PHP 10.4%