Projekt nie je dostupný zdarma na stiahnutie! Pri záujme o kúpu softvérovej časti projektu s funkčnosťou, ktorá je na danej stránke rozpísaná kontaktovať na adrese: martinius96@gmail.com
ESP8266 WiFi RFID NFC RC522 PHP, HTML MySQL AJAX Bootstrap Arduino Ethernet ESP32 SigFox LoRa IoT Eagle

RFID systém so správou online - Vyskúšajte online TU!!!


Administrátor:


  • Spravuje webové rozhranie
  • V reálnom čase vidí aktivitu - priloženie karty vrátane jej adresy s časom jej priloženia s výsledkom overenia: OVERENÝ / NEOVERENÝ.
  • Hlávný prehľad ponúka 100 posledných priložení karty, má výlučne informatívny charakter.
  • V sekcii pridať kartu môže administrátor jedným kliknutím potvrdiť kartu - autorizovať ju, ktorá bola priložená, no nebola zatiaľ autorizovaná.
  • V prípade, že administrátor vie adresu karty, ktorá zatiaľ v systéme nefiguruje, môže ju do systému zadať aj manuálne.
  • Okrem zobrazenia posledných 5 priložení karty vidí administrátor všetky neautorizované doteraz priložené karty a autorizované karty vrátane dátumov a časov ich autorizácie.
  • V záložke odobrania karty je možné deautozizovať autorizovanú kartu - karta nebude figurovať ani v zozname neautozizovaných kariet, bude tam pridelená automaticky až po jej priložení.
  • V poslednej záložke - Program môže administrátor nahliadnuť do schémy zapojenia RFID čítačky s vývojovou doskou NodeMCU s čipom ESP8266, môže nahliadnuť a stiahnuť si zdrojový kód, ktorý je momentálne nahratý v mikrokontroléri.
  • Pre lepšiu prenositeľnosť programu pre NodeMCU je k dipozícii aj odkaz na knižnice RFID čítačky RC522, datasheet k čítačke a NodeMCU.
  • Možnosť prihlásenia, odhlásenia adminsitrátora, núdzové otvorenie dverí z webového prostredia v prípade straty karty a pod je dostupný iba v platenej verzii tohto softvéru.
  • Používateľ:


  • Využíva služby RFID čítačky fyzickým priložením NFC tagu, kľúčenky, karty, náramku.
  • V prípade overenia priloženého čipu mu NodeMCU odistí dvere na 5 sekúnd.
  • Pri neoverení používateľa z dôvodu neovereného čipu, prípadne nedostupnosti overenia webu mu zámok nie je odistený - nevtiahne sa.
  • Používateľ o neoverení svojho čipu ako takého nie je informovaný. Jeho pokus je zapísaný do databázy za predpokladu, že sa NodeMCU napojí na web, kde sa karta overuje.
  • Používateľ môže na overenie použiť aj svoju bankomatovú kartu, ISIC kartu, či zamestnaneckú kartu, ktorej fyzickú adresu čítačka dokáže prečítať, musí spĺňať štandard ISO/IEC 14443 A.
  • Princíp otvárania zámku:

    Technológie projektu:

  • PHP - funkčnosť systému - overenie čipu
  • HTML - grafické a funkčné prvky systému - tlačidlá, prekliky
  • AJAX - dynamické volania PHP scriptov - real-time dáta o priložení čipu k RFID čítačke
  • C - Wiring - programovací jazyk pre vývojovú dosku NodeMCU s čipom ESP8266.
  • Verzia zdarma (overenie karty, bez ďalších zabezpečovacích prvkov, bez supportu a garancie správnej funkčnosti):

    Hardvér pre projekt:

    ;
  • NodeMCU v2/v3 Lolin
  • RFID RC522 (13.56MHz)
  • Elektromagnetické relé - 5V
  • Solenoid pre zámok - 12V/24V - ovládané cez relé
  • Zdrojový kód pre NodeMCU 1.0 (v2/v3) s HTTPS konektivitou - kompatibilné pod Core 2.3.0:

    /*|----------------------------------------------------------|*/
    /*|SKETCH PRE RFID SYSTEM S WEB ADMINISTRACIOU               |*/
    /*|VYHOTOVIL: MARTIN CHLEBOVEC                               |*/
    /*|EMAIL: martinius96@gmail.com                              |*/
    /*|Doska: NodeMCU v3 Lolin (v2 compatible)                   |*/
    /*|CORE: 2.3.0                                               |*/
    /*|WEB: https://arduino.php5.sk                              |*/
    /*|----------------------------------------------------------|*/
    #include <ESP8266WiFi.h>
    #include <WiFiClientSecure.h>
    #include <SPI.h>
    #include <RFID.h>
    const char * ssid = "MenoWifiSiete";
    const char * password = "HesloWifiSiete";
    const char * host = "arduino.php5.sk"; //bez https a www
    const int httpsPort = 443; //https port
    const int rele = 16; //GPIO16 == D0
    const char * fingerprint = "a6 02 4d e1 32 b0 0b fe 56 85 0f 84 03 ec b2 18 23 09 f0 63"; // odtlacok HTTPS cert
    #define SS_PIN 4
    #define RST_PIN 5
    RFID rfid(SS_PIN, RST_PIN); 
    unsigned long kod;
    WiFiClientSecure client; //HTTPS client
    void setup(){ 
    	Serial.begin(9600);
      	SPI.begin(); 
      	rfid.init();
      	pinMode(rele, OUTPUT);
    	WiFi.begin(ssid, password);
      	while (WiFi.status() != WL_CONNECTED) {
        		delay(500);
        		Serial.print(".");
      	}
    	Serial.println("");
      	Serial.println("WiFi uspesne pripojene");
      	Serial.println("IP adresa: ");
      	Serial.println(WiFi.localIP());
      	Serial.println("Ready");
    }
    
    void loop(){
      	if (WiFi.status() != WL_CONNECTED) {
        		WiFi.begin(ssid, password);
      	}
      	while (WiFi.status() != WL_CONNECTED) {
        		delay(500);
        		Serial.print(".");
      	}
      	if (rfid.isCard()) {
        		if (rfid.readCardSerial()) {
          			Serial.println(" ");
          			Serial.println("Card found");
          			kod = 10000*rfid.serNum[4]+1000*rfid.serNum[3]+100*rfid.serNum[2]+10*rfid.serNum[1]+rfid.serNum[0];
          			Serial.println(kod);
          			String kodik = String(kod);
          			client.stop();      
          			if (client.connect(host, httpsPort)) {
            			String url = "/rfid/karta.php?kod="+kodik;
    				//String url = "/rfid/karta.php?kod="+kodik+"&origin=Lolin";
            			client.print(String("GET ") + url + " HTTP/1.0\r\n" + "Host: " + host + "\r\n" + "User-Agent: NodeMCU\r\n" + "Connection: close\r\n\r\n");
          				while (client.connected()) {
            				String line = client.readStringUntil('\n');
            				if (line == "\r") {
              					break;
            				}	
          				}
      				String line = client.readStringUntil('\n');
      				if (line == "OK"){
    	 				digitalWrite(rele, LOW); //invertovane spinane rele active LOW
    	 				delay(5500);              //cas otvorenia dveri
      				}else if (line == "NO") {
        					digitalWrite(rele,HIGH);
    				}
      			}
              }
        	}
    	rfid.halt();
    }
    

    Zapojenie:


    RC522 NodeMCU
    3.3V 3.3V
    RST D1 (GPIO5)
    GND GND
    MISO D6 (GPIO12)
    MOSI D7 (GPIO13)
    SCK D5 (GPIO14)
    SDA D2 (GPIO4)
    IRQ Nezapája sa

    Relé NodeMCU
    5V VIN / VUSB (Adaptér/USB napájanie)
    GND GND
    IN D0 (GPIO16)

    Relé Solenoid
    NO IN
    COM -
    NC 12/24 DC/AC

    RFID - schematics - ESP8266

    RFID vrátnik - schéma zapojenia: ESP8266 (NodeMCU) s čítačkou RC522

    RFID - schematics - Arduino + Ethernet W5100

    RFID vrátnik - schéma zapojenia: Arduino + Ethernet (W5100) s čítačkou RC522

    RFID - schematics - ESP32

    RFID vrátnik - schéma zapojenia: ESP32 (Devkit) s čítačkou RC522