ESP RFID - Controle de acesso com ESP8266, RC522 PN532 Wiegand Rdm6300
Sistema de controle de acesso usando um MFRC522 barato, leitores PN532 RFID, RDM6300 ou leitores Wiegand RFID e microcontrolador ESP8266 do Espressif.
Características
Para usuários
- Esforço mínimo para configurar seu sistema de controle de acesso, apenas flash e tudo pode ser configurado via interface da web
- Capaz de gerenciar até 1.000 usuários (ainda mais é possível)
- Ótimo para espaços de fabricante, laboratórios, escolas, etc
- Barato de construir e fácil de manter
Para Tinkerers
- Código aberto (quantidade mínima de variável codificada, isso significa mais liberdade)
- Usando o WebSocket Protocol para trocar dados entre hardware e navegador da web
- Os dados são codificados como objeto JSON
- Os registros são o registro de data e hora (o tempo sincronizado de um servidor NTP)
- MQTT ativado
- Bootstrap, jQuery, pés para lindas páginas da web para telas móveis e de mesa
- Graças à comunicação de biblioteca EspaSyncwebServer é assíncrona
Hardware oficial
- Fator de forma de tamanho pequeno, às vezes é possível colar -o nos leitores existentes.
- Fonte de energia única para alimentar 12V/2A Módulo ESP12, leitor de Wiegand RFID e trava magnética para abrir portas.
- Pinos de programação expostos para ESP8266
- Em relação ao design de hardware, você obtém várias opções de configuração possíveis:
- A frente para a frente tocando no leitor para mcu ou passá -lo fora do quadro
- Status da porta da pista
- Control LED do status do leitor
- Control Satady's Status da campainha som *
- Leitor de energia, trava e a placa através de 12V, 2A PSU
- Opcionalmente Power Magnetic Lock através do AC/DC PSU externo
- Possível usar qualquer tipo e qualquer tipo de leitores de Wiegand
- Permite que você faça o sistema de acesso à IoT com muito pouca fiação
- Se encaixa em gabinetes universais com montagem DIN
- Hardware de código aberto
Obtenha mais informações e consulte as opções de acessórios da Tindie Store
| O que os outros estão dizendo sobre o ESP-RFID? |
|---|
| "Oi, bom projeto." - @rotzbua |
| “Seu aplicativo funciona como um charme” - @tueddy |
| “Acabei de tropeçar nesse projeto enquanto planejava fazer algo semelhante. Muito bem feito!” - @lifep |
| "Olá, encontrei seu projeto e, antes de tudo ... uau - graças a todos os colaboradores pelo seu trabalho duro!" - @byt3w4rri0r |
| "Trabalho brilhante." - @danbicks |
| "Este é um projeto impressionante." - @Appi1 |
| "Gostaria de agradecer a todos os colaboradores por criar este projeto épico". - @TheCellmc |
| "Parabéns pelo seu trabalho incrível! Este projeto é absolutamente brilhante." - @Quikote |
Começando
Este projeto ainda em sua fase de desenvolvimento. Novos recursos (e também bugs) são introduzidos com frequência e algumas funções podem ser preteridas. Sinta -se à vontade para comentar ou dar feedback.
- Obtenha o último lançamento daqui.
- Veja os problemas conhecidos antes de começar imediatamente.
- Veja a segurança da sua segurança.
- Veja Changelog
O que você precisará
Hardware
- Conselho oficial de retransmissão ESP-RFID ou
- Um módulo ESP8266 ou uma placa de desenvolvimento como Wemos D1 Mini ou NodeMCU 1.0 com pelo menos 32mbbit flash (é igual a 4mbytes) (o ESP32 não é suportado por enquanto)
- Um módulo PCD RFID MFRC522 ou módulo de leitor PN532 NFC ou RDM6300 125KHz RFID Módulo Wiegand RFID Reader
- Um módulo de retransmissão (ou você pode construir seu próprio circuito)
- n Quantidade de Mifare Classic 1KB (recomendado devido à base de código disponível) PICCS (tags RFID) equivalente ao número do usuário
Software
Usando binários compilados
Download de binários compilados da página do GitHub, https://github.com/esprfid/esp-rfid/releasesas
No Windows, você pode usar "flash.bat" , ele perguntará qual porta COM que ESP está conectada e o pisca. Você pode usar qualquer ferramenta piscante e fazer o piscar manualmente. O processo piscante foi descrito em vários lugares na internet.
Construindo com Platformio
O ambiente de construção é baseado no Platformio. Siga as instruções encontradas aqui: http://platformio.org/#!/get-started para instalá-lo, mas pule a etapa platform init como isso já foi feito, modificado e está incluído neste repositório. Resumindo:
sudo pip install -U pip setuptools
sudo pip install -U platformio
git clone https://github.com/esprfid/esp-rfid.git
cd esp-rfid
platformio run
Quando você executa platformio run pela primeira vez, ele baixará as cadeias de ferramentas e todas as bibliotecas necessárias automaticamente.
Comandos úteis:
-
platformio run - Processe/construa todos os alvos -
platformio run -e generic -t upload -Process/Build e Flash apenas o alvo ESP12E (o nodemcu v2) -
platformio run -t clean - Projeto Limpo (Remova arquivos compilados)
A (s) imagem (construída) resultante pode ser encontrada no diretório /bin criado durante o processo de construção.
Como modificar o projeto
Se você deseja modificar o código, pode ler mais informações no arquivo contribuinte.
Layout do pino
A tabela a seguir mostra o layout típico de pinos usados para conectar o hardware dos leitores à ESP:
| ESP8266 | NodeMcu/Wemos | Wiegand | PN532 | MFRC522 | RDM6300 |
|---|
| GPIO-16 | D0 | | SS (Wemos D1) | SDA/SS | |
| GPIO-15 | D8 | | | SDA/SS | |
| GPIO-13 | D7 | D0 | Mosi | Mosi | |
| GPIO-12 | D6 | D1 | Miso | Miso | |
| GPIO-14 | D5 | | Sck | Sck | |
| GPIO-04 | D2 | | | | Tx |
| GPIO-05 | D1 | | Ss | | |
Para leitores baseados em Wiegand, você pode configurar pinos D0 e D1 via página Configurações. Por padrão, D0 é GPIO-4 e D1 é GPIO-5
Passos
- Primeiro, Flash Firmware (você pode usar /bin/flash.bat no Windows) no seu ESP usando Arduino IDE ou com sua ferramenta Flash favorita
- (Opcional) Inicie seu monitor serial para ser informado
- Pesquise por rede sem fio "ESP-RFID-XXXXXX" e conecte-se a ela (deve ser uma rede aberta e não requer senha)
- Abra seu navegador e visite "http://192.168.4.1" ou "http: //esp-rfid.local" (.Local precisa de Bonjour instalado no seu computador).
- Faça logon no ESP, a senha padrão é "Admin"
- Vá para a página "Configurações"
- Configure seu incrível dispositivo de controle de acesso. Pressione o botão "Digitalizar" para ingressar na sua rede sem fio, configurar hardware RFID, módulo de relé.
- Salvar as configurações, quando reiniciar o seu ESP tentará ingressar na sua rede sem fio.
- Verifique seu novo endereço IP do monitor serial e conecte -se ao seu ESP novamente. (Você também pode se conectar a "http: //esp-rfid.local")
- Vá para a página "Usuários"
- Digitalize um PICC (tag RFID), então ele deve vislumbrar na tela do seu navegador.
- Digite "Nome de usuário" ou "etiqueta" para o PICC que você digitalizou.
- Escolha "Permitir acesso" se quiser
- Clique em "Adicionar"
- Parabéns, tudo correu bem, se você encontrar algum problema, sinta -se à vontade para pedir ajuda no Github.
Mqtt
Você pode integrar o ESP-RFID com outros sistemas usando o MQTT. Leia a documentação adicional para todos os detalhes.
Questões conhecidas
- Você precisa conectar seu leitor MFRC522 ao seu ESP corretamente ou acabará com um loop de inicialização
- Verifique também os problemas do GitHub.
Tempo
Estamos sincronizando o tempo de um servidor NTP (no modo de infraestrutura do cliente -aka). Isso exigirá que o ESP tenha uma conexão com a Internet. Além disso, seu ESP também pode funcionar sem conexão com a Internet (ponto de acesso -aka ad-hoc-modo), sem desistir da funcionalidade. Isso exigirá que você sincronize o tempo manualmente. O ESP pode armazenar e manter o tempo para você aproximadamente 51 dias, sem problemas importantes, o tempo do dispositivo pode cair do tempo real, dependendo do uso, temperatura etc. Portanto, você precisa fazer login na página Configurações e sincronizá -lo em tempo hábil. Os fusos horários são suportados com o interruptor automático de e do horário de verão.
Segurança
Assumimos o projeto ESP-RFID -como um todo-não oferece forte segurança. Existem PICCs disponíveis para que seus UID (números de identificação exclusivos) possam ser definidos manualmente (atualmente o ESP-RFID depende apenas do UID para identificar seus usuários). Também pode haver um bug no código que pode resultar em acesso gratuito aos seus pertences. Além disso, como todos os outros dispositivos ESP-RFID conectados de rede, são vulneráveis a muitos ataques, incluindo man-in-the-middle, força bruta, etc.
Este é um projeto simples e de grau de hobby, não o use onde a segurança forte é necessária.
O que pode ser feito para aumentar a segurança? (por você e por nós)
- Estamos trabalhando de maneiras mais seguras de autenticar tags RFID.
- Você pode desativar a rede sem fio para reduzir a superfície de ataque. (Isso pode ser configurado na página Configurações da interface do usuário da web)
- Escolha uma senha forte para a interface da web
Escalabilidade
Como somos limitados no tamanho do Flash e Ram, as coisas podem ficar feias em algum momento no futuro. Você pode descobrir alguns resultados de teste abaixo.
Testes
1) Quantas tags RFID podem ser tratadas?
Restaurar alguns dados do usuário gerados aleatoriamente no sistema de arquivos no valor:
- 1000 "arquivo de usuário" separado
- Random 4 bytes de longa uid e
- nomes de usuário aleatórios e
- 4 bytes aleatórios unsix time carimbo
- Cada um tem "Tipo de acesso" 1 número inteiro "1" ou "0".
Total de 122.880 bytes
Pelo menos 1000 usuário exclusivo (tag RFID) pode ser tratado, o teste foi realizado no Wemos D1 Mini.
É necessário testes adicionais:
- O registro precisa de testes. Quanto tempo ele deve precisar de logar? E se um chefe precisar de um log de ano inteiro?
- Confiabilidade no flash (estes NOR NOR Flash têm um ciclo de gravação limitado em suas células). Depende da escolha do fabricante de chip e uso flash.
Comunidade
Junte -se ao bate -papo da comunidade no Gitter
Projetos baseados no ESP-RFID
- Projeto ESP-IO para manipular GPIOs com Eventghost
- Monitor climático da sala ESP-RCM com ESP8266, HTU21D, SI7021, AM2320
- A implementação de micro-python do ESP-RFID-PY do ESP-RFID também é disponibilizada por @ibobik
Agradecimentos
- @rneurink
- @thunderace
- @zeraien
- @Nardev
- @Romanzava
- @arduino12
- @Pako2
- @Marelab
Veja Changelog
Doações
O desenvolvimento de software incorporado totalmente aberto e extensivamente testado é difícil e demorado. Por favor, considere fazer doações para apoiar os desenvolvedores por trás deste belo software.
Doações processadas transparentemente por coletivo aberto e despesas estão sendo divulgadas pelo Ledger Open da OC.
- 2017-10-03 Steinar-t
- 2017-12-10 Saschaludwig
- 2018-10-02 Dennis Parsch
- 2019-01-12 Chris-Topher Slater
- 2019-04-23 KLAUS BLUM
- 2019-04-25 Andre Dieteich
Colaboradores
Este projeto existe graças a todas as pessoas que contribuem.
Licença
As peças de código escritas pelos autores do projeto ESP-RFID são licenciadas sob licença do MIT, as bibliotecas de terceiros usadas por este projeto são licenciadas em diferentes esquemas de licença, verifique-as também.