# 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: ```sql 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.