RFID access control system based on cheap ESP8266 and MFRC522 writen in LUA on nodemcu
Those are used by me:
a few other components gonna be needed for hardware part of the project I will make fritzing schema and post it later.
This web server gonna be used for basic frontend interface:
- Standalone RFID control system. Usable on building entrances/exits, elevators, etc.
- Support dual RFID readers
- Support usage TAG counters
- Support TAG usage limits
- Generate report for all tags
- Switching lights, depending on light intensity (LDR gonna be used)
- Door open button (if only one reader is used)
- TAG authentication via web page using password
- MQTT logging
- Out of memory :)
- Fixed various web server memory leaks
- Backend (for reading/updating/editing/grant access to tags)
- Buzzer support
- Dual RFID readers support
- Grant access by button
- Learning mode (automated records creation for new tags)
- Counting of tag usage, limits, deny access if go above limit
- FrontEND - settings, add/edit/delete tag
- Added tag list creation is separate boot mode
- Added export tag (JSON format) in separate boot mode
- Added user authentication (for access) via login screen.
- Added amound calculation based on tag usage (lists)
- testing.
- possible wireless CFG problem, investigate
- MQTT logging
- find a way to import tags thru web interface
use nodemcu with following support : adc,bit,file,gpio,net,node,sjson,spi,tmr,uart,wifi
Download all files, upload them to ESP, start compile.lua and reboot Use google chrome to translate it in your language. default wireless password is "88888888"
- When switch from wireless client to AP mode, do not initialize with proper SSID/PASSWORD (until reboot twice)
- Due to nodemcu file.list function, scripts are capable of generate tag lists/export json file for around 200-250 tags. Increasing it cause out of memory error that cannot be avoided unless someone rewrite nodemcu file module. However system still work, add/edit/delete tags but cannot generate list.
- Web server cannot handle more than 2 connection at same time (out of memory) so make sure you use only one browser window to access web interface.
Primary MFRC522 reader:
Signal | MFRC522 | WeMos D1 mini | NodeMcu | Generic |
---|---|---|---|---|
RST/Reset | RST | NONE | NONE | NONE |
SPI SS | SDA [3] | D8 [2] | D8 [2] | GPIO-15 [2] |
SPI MOSI | MOSI | D7 | D7 | GPIO-13 |
SPI MISO | MISO | D6 | D6 | GPIO-12 |
SPI SCK | SCK | D5 | D5 | GPIO-14 |
SPI IRQ | NONE | NONE | NONE | GPIO-14 |
Secondary RFID reader:
Signal | MFRC522 | WeMos D1 mini | NodeMcu | Generic |
---|---|---|---|---|
RST/Reset | RST | NONE | NONE | NONE |
SPI SS | SDA [3] | D0 | D0 | GPIO-16 |
SPI MOSI | MOSI | D7 | D7 | GPIO-13 |
SPI MISO | MISO | D6 | D6 | GPIO-12 |
SPI SCK | SCK | D5 | D5 | GPIO-14 |
SPI IRQ | NONE | NONE | NONE | GPIO-14 |
reset button on GPIO 0 Grant access button on GPIO 1,2,9,10 buzzer: GPIO 1,2,9 Relay: 1,2,9
I switch that project for my private and commercial use. Code listed here is good for a start for someone who want to achieve good, cheap standalone RFID system.