2026-01-14 09:23:36 +01:00
2026-01-14 09:23:36 +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.
🔌 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.
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%