RFID Doorphone - Attendance system with online news - Try online HERE!!!


  • Manages the web interface
  • See real-time activity - attaching a card, including its address with the time it was attached to the verification result: VERIFIED / UNLIMITED.
  • The report offers 100 recent card appearances, and is purely informative.
  • In the "Add a card" section, an administrator can confirm a card with a single click - authorize it, which has been attached, but has not yet been authorized.
  • If the administrator knows the card address that is not yet on the system, it can also enter the system manually.
  • In addition to displaying the last 5 attachments, the administrator sees all unauthorized cards and authorized cards that have been attached to them, including their authorization dates and times.
  • In the card removal tab, you can authorize an authorized card - the card will not be included in the list of non-authorized cards, it will be assigned there automatically after it is attached.
  • In the last tab - Program, the administrator can view the RFID reader schematic with the ESP8266 - NodeMCU development board, can view and download the source code currently loaded on the microcontroller.
  • For better portability of the NodeMCU program there is also a link to the RC522 RFID reader library, a reader datasheet and a NodeMCU.
  • The ability to sign in, unsubscribe from the administrator, open the door from the web in case of a card loss, and so on is only available in the paid version of this software.
  • User:

  • Uses RFID readers by physically attaching an NFC tag, key tag, card, bracelet.
  • If the attached chip is verified, the NodeMCU will release the door for 5 seconds.
  • If a user is not authenticated due to an unverified chip or unavailability of site verification, the lock is not unlocked - it will not retract.
  • The user is not informed about not verifying their chip as such. Its attempt is written to the database, provided that the NodeMCU connects to the site where the card is verified.
  • The user can also use his or her ATM card, ISIC card, or an employee card, whose physical address the reader can read, must comply with ISO / IEC 14443A to verify
  • The principle of opening the lock:

    Project Technology:

  • PHP - system functionality - chip verification
  • HTML - graphical and functional system elements - buttons, clicks
  • AJAX - dynamic calling of PHP scripts - real-time data about chip attachment to RFID reader
  • C - Wiring - programming language for NodeMCU development board with ESP8266 chip.
  • Free version (card verification, no other security features):

    Hardware for the project:

  • NodeMCU v2/v3 Lolin
  • RFID RC522 (13.56MHz)
  • Electromagnetic relay - 5V
  • Solenoid for lock - 12V / 24V - controlled via relay
  • Source code for NodeMCU 1.0 (v2 / v3):

    /*|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(){ 
      	pinMode(rele, OUTPUT);
    	WiFi.begin(ssid, password);
      	while (WiFi.status() != WL_CONNECTED) {
      	Serial.println("WiFi uspesne pripojene");
      	Serial.println("IP adresa: ");
    void loop(){
      	if (WiFi.status() != WL_CONNECTED) {
        		WiFi.begin(ssid, password);
      	while (WiFi.status() != WL_CONNECTED) {
      	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];
          			String kodik = String(kod);
          			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") {
      				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") {


    RC522 NodeMCU
    3.3V 3.3V
    RST D1 (GPIO5)
    MISO D6 (GPIO12)
    MOSI D7 (GPIO13)
    SCK D5 (GPIO14)
    SDA D2 (GPIO4)
    IRQ Not connected

    Relay NodeMCU
    5V VIN / VUSB (USB input, Vin pin)
    IN D0 (GPIO16)

    Relay Solenoid
    NO IN
    COM -
    NC 12/24 DC/AC