NFC Manager é um sistema embarcado de gerenciamento de tags NFC/RFID desenvolvido com Arduino Uno e módulo MFRC522, voltado para registro e controle de acesso via CPF. O projeto nasceu como exercício prático de engenharia de computação e evoluiu para uma solução completa com três camadas de interface: firmware em C para Arduino, GUI desktop em Python e interface web moderna com Web Serial API.
O sistema permite gravar, ler, verificar e apagar dados de tags NFC do tipo MIFARE Classic 1K, sendo capaz de armazenar CPFs (11 dígitos) diretamente na memória da tag, no bloco 1, usando autenticação por chave padrão. Durante o desenvolvimento foram investigadas também as limitações de tags com chaves de acesso desconhecidas, leitura de dados binários proprietários de sistemas de condomínio, e análise completa de dump de memória das tags.
A interface web, acessível via GitHub Pages, comunica-se diretamente com o Arduino pela porta serial do computador usando a Web Serial API nativa do Chrome, eliminando a necessidade de qualquer instalação adicional. O design foi desenvolvido com estética cyberpunk/tech dark, animações em CSS, grid animado de fundo, cards com bordas coloridas por ação e terminal de saída estilo macOS.
Hardware utilizado: Arduino Uno, módulo RFID-RC522, protoboard, jumpers e tags MIFARE Classic 1K (cartão e chaveiro). Tensão de operação do módulo: 3.3V. Comunicação via protocolo SPI nos pinos 9 a 13.
Stack: C (Arduino/AVR) · Python 3 + Tkinter + PySerial · HTML5 + CSS3 + JavaScript (Web Serial API)
Acesse direto pelo navegador (Chrome/Edge):
| Componente | Descrição |
|---|---|
| Arduino Uno | Microcontrolador principal |
| MFRC522 | Módulo leitor NFC/RFID |
| Protoboard | Para conexões |
| Jumpers | Fios de conexão |
| Tags NFC | MIFARE Classic 1K |
| Cabo USB | Comunicação com PC |
Link para visualização da conexão | MFRC522 | Arduino Uno | |—|—| | VCC | 3.3V | | GND | GND | | RST | Pino 9 | | SDA | Pino 10 | | MOSI | Pino 11 | | MISO | Pino 12 | | SCK | Pino 13 | | IRQ | Opcional |
arduino_nfc_serial.ino no Arduinopip install pyserial
python gui_nfc.py
| Ação | Descrição |
|---|---|
| ◉ Verificar | Verifica se a tag está apta para registro |
| ✎ Escrever | Grava CPF (11 dígitos) na tag |
| ◎ Ler Tag | Lê e exibe o conteúdo gravado |
| ✕ Apagar | Apaga todos os dados da tag |
nfc-manager/
├── nfc_manager.html ← Interface Web (GitHub Pages)
├── gui_nfc.py ← Interface Python (alternativa)
├── arduino_nfc_serial.ino ← Código do Arduino
└── README.md
pip install pyserial
MIT License — livre para uso e modificação.