Skip to content

RFID systém pre otváranie elektronických dverí s webovou časťou pre správu a autorizáciu prístupových kariet. Mikrokontróler ESP8266, ESP32 s WiFi konektivitou.

License

Notifications You must be signed in to change notification settings

martinius96/RFID-otvaranie-dveri

Repository files navigation

RFID vrátnik s mikrokontrolérom ESP8266, ESP32

Podporte projekt pre pridanie nových funkcionalít

Stránka projektu

  • Informácie o projekte: http://arduino.clanweb.eu/rfid-system.php
  • Testovacie webové rozhranie: http://arduino.clanweb.eu/rfid/
  • Z dostupných zdrojových kódov pre platformy Arduino, ESP8266 a ESP32 je možné využiť iba HTTP variant, nakoľko freehosting clanweb.eu nemá podporu HTTPS!
  • Možnosť ihneď vyskúšať funkcionalitu systému v testovacom webovom rozhraní po zapojení čítačky NXP RC522 a nahratí programu pre odtestovanie funkčnosti
  • Čítačka RC522 funguje na frekvencii 13.56 MHz, dokáže prečítať RFID tagy štandardu ISO/IEC 14443-A
  • Webové rozhranie dokáže vizualizovať priloženia karty historicky s výsledkom overenia s možnosťou riadenia prístupu - autorizácie / deautorizácie kariet (automatická obnova údajov bola odstránená)
  • Vhodné ako základ pre vlastný projekt s RFID vstupom od používateľa
  • Pridaná podpora pre Over The Air aktualizáciu firmvéru prostredníctvom LAN siete - Basic OTA cez Python z prostredia Arduino IDE
  • Čítačka Wiegand, RDM6300 nie je dostupná vo free verzii projektu RFID vrátnik
  • Článok k projektu (verzia 1.0): https://chiptron.cz/articles.php?article_id=216

Systém ponúka 2 typy užívateľov projektu

Administrátor: Používateľ:
Spravuje webové rozhranie Fyzicky prikladá NFC tag/kľúčenku/náramok/kartu
V reálnom čase vidí priloženie karty s výsledkom overenia Pri overeni sú mu odistené dvere na 5 sekúnd
Historicky vidí 100 posledných priložení Pri neoverení používateľa sa jazýček nevtiahne
Jedným kliknutím môže schváliť už (skôr) priloženú kartu Používateľ o overení/neoverení nie je informovaný (led/buzzer)
Odstránenie karty jedným kliknutím Používateľ použije Mifare tag, bankomatovú kartu, ISIC kartu, náramok, ktorý spĺňa štandard ISO/IEC 14443 A
Grafická reprezentácia prístupov
Štatistika RFID vrátnika
Vidí zdrojový kód pre mikrokontroléry
  • Mikrokontróler po prečítaní UID (identifikátor, ktorý vysiela) RFID karty prostredníctvom čítačky odošle HTTP (HTTPS) POST request na webové rozhranie
  • Webserver overí, či je karta medzi autorizovanými a odpovie textom OK, prípadne NO.
  • Mikrokontróler na tento payload zareaguje a odistí dvere prostredníctvom solenoidu, ktorý je ovládaný cez 5V relé
  • Z vnútornej strany objektu je možné dvere kľúčkou otvoriť, elektromagnetický jazýček (solenoid) sa vtiahne pri stlačení kľučky (1-cestný RFID vrátnik)
  • Možno použiť Mifare tagy, ISIC karty, bankomatové, zamestnanecké karty, náramky i kľúčenky, ktoré spĺňajú štandard ISO/IEC 14443-A
  • Mikrokontróler UID upraví, nikdy neodosiela pôvodný identifikátor karty, ktorý načíta.
  • Na UART rozhranie mikrokontróler posiela udalosti - Eventy - priloženie karty s výsledkom overenia (akceptácie karty webserverom)
  • UID sa ukladajú do MySQL databázy, existujú rôzne tabuľky - prístupy, autorizované karty, evidencia mien ku kartám...

Hardvér

  • NodeMCUNodeMCU (v2, alebo v3)
  • BasekitBasekit (možný iba pri V3, možnosť využiť externé napájanie na 6-24V)

  • Arduino UnoArduino Uno
  • Ethernet W5100Ethernet Wiznet W5100
  • Ethernet W5500Ethernet Wiznet W5500

  • ESP32 DevKitESP32 DevKit V1 / DevKitC V4

  • RC522Čítačka RC522 na 13.56 MHz pre štandard ISO/IEC 14443 A
  • 13.56MHzKompatibilné karty a kľúčenky
  • 1-kanálové elmg. reléSRD-05VDC-SL-C (elmg. relé 1-kanálové)
  • Solenoidový jazýčekSolenoid - jazýčkový zámok

Princíp solenoid jazýčka

Princíp jazýčka

Technológie

  • HTML5
  • PHP
  • Arduino core

Získanie Root CA certifikátu - (Pre ESP32 - HTTPS):

  • openssl s_client -showcerts -verify 5 -connect example.com:443 < /dev/null

Získanie SHA1 fingerprintu certifikátu - (Pre ESP8266 - HTTPS):

  • openssl s_client -connect example.com:443 -showcerts < /dev/null 2>/dev/null | openssl x509 -in /dev/stdin -sha1 -noout -fingerprint

Inštalácia systému - krok po kroku

  • Stiahnuť repozitár v .zip archíve z Githubu
  • Súbor priečinka sql importovať do vašej MySQL databázy - štruktúru, alebo štruktúru + vzorové dáta
  • V súbore connect.php nastaviť vaše údaje na databázu (umiestnenie (localhost/external), user, heslo, meno_db)
  • (Win 10) src priečinok skopírovať do: C:/Moje Dokumenty/Arduino/libraries/rfid
  • (Win XP/Vista/7) src priečinok skopírovať do: C:/Program Files/Arduino/libraries/rfid
  • Web súbory nahrať na FTP server (kompatibilné s PHP 5, aj PHP 7)
  • V zdrojovom kóde pre NodeMCU - zvoliť si verziu HTTPS/HTTP, zmeniť údaje k wifi sieti, údaje na váš webserver, rovnako i pre ESP32/Arduino
  • Nahrať program, používať Arduino core 2.5.0/2.5.2 (pre NodeMCU), verzia 2.3.0 (doteraz používaná) je nekompatibilná pre HTTPS fingerprint!
  • Pre Arduino, ESP32 je možné použiť aj nanovšie knižnice pre HTTP, HTTPS spojenia
  • Program pre Arduino je plne kompatibilný medzi Arduino Uno, Nano, Mega 1280/2560
  • Hotovo

Webové rozhranie v prevádzke:

  • Hlavný prehľad (real-time vstupy s výsledkom overenia) Hlavný prehľad
  • Pridanie autorizovaných kariet jedným kliknutím Pridanie autorizovaných kariet jedným kliknutím
  • Štatistika RFID vrátnika Štatistika RFID vrátnika

Zapojenie komponentov (Arduino)

RC522 Arduino
3.3V 3.3V
RST D5
GND GND
MISO D12
MOSI D11
SCK D5
SDA/SS D6
IRQ Nezapája sa
Relé Arduino
5V 5V
GND GND
IN D3

Zapojenie komponentov (NodeMCU)

RC522 NodeMCU
3.3V 3.3V
RST D1 (GPIO5)
GND GND
MISO D6 (GPIO12)
MOSI D7 (GPIO13)
SCK D5 (GPIO14)
SDA/SS D2 (GPIO4)
IRQ Nezapája sa
Relé NodeMCU
5V VIN / VUSB (Adaptér/USB napájanie)
GND GND
IN D0 (GPIO16)

Zapojenie komponentov (ESP32)

RC522 ESP32
3.3V 3.3V
RST D22
GND GND
MISO D19
MOSI D23
SCK D18
SDA/SS D21
IRQ Nezapája sa
Relé ESP32
5V 5V VIN
GND GND
IN D17

Zapojenie relé a solenoid jazyčkového zámku

Relé Solenoid
NO IN
COM -
NC 12/24 DC/AC
  • Nulák, respektíve GND podľa typu obvodu (AC/DC) je pripojený na zdroj po celú dobu prevádzky solenoid jazýčka.

Schéma zapojenia Arduino

Schéma Arduino + Ethernet - RFID vrátnik

Schéma zapojenia ESP8266 (NodeMCU)

Schéma NodeMCU - ESP8266 - RFID vrátnik

Schéma zapojenia ESP32

Schéma ESP32 - RFID vrátnik