Music

ads header

segunda-feira, 15 de junho de 2026

Como fazer leitura NFC com ESP32

0
ESP32 conectado ao módulo RC522 para leitura de tags NFC
ESP32 conectado ao módulo RC522 para leitura de cartões e tags NFC — o coração do seu projeto de automação.

Fala galera! Então, eu vou contar uma história que aconteceu comigo e fez eu pensar em projetos com NFC. Eu sai de casa pra ir trabalhar e esqueci o meu cartão de transporte em cima da mesa, porque?? Porque eu inventei de arrumar minha carteira. hahahah Só por isso, além dele também esqueci o cartão do banco e meu cartão do trabalho. hahahaha. Mas, isso são detalhes, vamos ao post de hoje. :D

Resolvi fazer uns testes com um leitor NFC, ESP e o o meu cartão do metro, estava rezando pra não danificar, mas na teoria é só um leitor, então, não acredito que teria problemas. heheheh. Bem a questão aqui é que quando coloquei meu cartão perto do leitor de NFC, o IDE mostrou um código estranho, mas único. Foi aí que eu descobri: NFC é mais simples do que parece, e com o ESP32, você pode transformar qualquer objeto cotidiano em algo inteligente. Se você já quis usar seu cartão de transporte (metro, onibus, trem etc...) para abrir a porta da casa, ou liberar um snack com um toque, esse post é pra você. Vamos aprender juntos como fazer leitura NFC com ESP32, do zero, sem enrolação, sem jargões desnecessários, e com tudo que você precisa pra colocar a mão na massa.

Neste projeto, você vai aprender não só a ler um cartão NFC, mas a entender como ele funciona, como conectar o hardware corretamente, como programar o ESP32 para reconhecer tags autorizadas, e até como enviar esses dados para a nuvem. Isso tudo com componentes baratos, fáceis de achar no Brasil, e sem precisar de experiência prévia em eletrônica. Se você já fez um LED piscar com Arduino, já está pronto. Se nunca tocou em um pino, nem se preocupe — vamos explicar tudo como se você estivesse segurando o componente pela primeira vez. No final, você vai ter um sistema de acesso NFC funcional, e vai poder expandir isso para o que quiser: porta da garagem, máquina de refrigerante, controle de entrada de eventos… o limite é a sua criatividade.

Antes de qualquer coisa, vamos entender o que é NFC de verdade, porque muita gente confunde com Bluetooth ou RFID. NFC é a sigla para Near Field Communication, ou Comunicação por Campo Próximo. Isso quer dizer que ele só funciona quando os dispositivos estão muito perto — tipo, a distância de um dedo. É como se fosse um “aperto de mão” sem tocar. Enquanto o Bluetooth precisa de pareamento e consome muita bateria, o NFC é passivo: o cartão ou tag não tem bateria. Ele só responde quando o leitor (neste caso, o ESP32 com o módulo RC522) envia um campo eletromagnético. É por isso que você pode usar seu cartão de transporte mesmo sem bateria. E o ESP32? Ele é perfeito pra isso porque já vem com Wi-Fi e Bluetooth embutidos. Ou seja: você lê o cartão, e em milissegundos, envia o ID dele para o seu servidor, ou ativa um buzzer, ou até manda um alerta pro seu celular. É IoT na prática, e sem precisar de um curso de engenharia.

💡 O que é NFC?

NFC é uma tecnologia de comunicação sem fio que funciona em uma frequência de 13.56 MHz, e só entre distâncias de até 10 centímetros. Ela é uma evolução do RFID (Identificação por Radiofrequência), que é usada em controles de acesso de empresas e em etiquetas de produtos. Mas o NFC é mais inteligente: ele permite duas vias de comunicação. Ou seja, não só o leitor lê o cartão — o cartão também pode receber dados. Isso é o que permite que você pague no caixa com o celular: seu telefone envia um comando de pagamento, e o terminal responde com um “pagamento aprovado”. No dia a dia, você encontra NFC em cartões de transporte (como o Bilhete Único de São Paulo), chaves de carro modernas, cartões de crédito sem contato, e até em adesivos que você cola na parede e que, ao encostar o celular, abrem um site ou ativam um modo de música. É como se cada tag NFC fosse um pequeno cartão de visita digital, com um número único que ninguém pode copiar.

Cartão de transporte e tag NFC de chave de carro, exemplos reais de uso
Cartões de transporte e chaves de carro usam NFC para funcionar sem contato — exatamente o mesmo princípio que vamos usar no projeto.

Imagine que cada tag NFC tem um “RG digital” único. Quando você passa o cartão no leitor do metrô, o sistema não lê “cartão de João”, ele lê “UID 04:1A:2B:3C:4D”, e compara com uma lista de usuários autorizados. Se bater, a catraca abre. É o mesmo princípio que vamos usar: vamos salvar os UID dos cartões que você autorizar, e só liberar acesso quando o leitor encontrar um desses. E o melhor: isso não precisa de internet. Você pode fazer um sistema de acesso totalmente offline, só com ESP32 e RC522. Mas se quiser, pode mandar esse UID para o Google Sheets, ou para um app no seu celular. É flexível, barato e extremamente seguro — porque não dá pra clonar um UID NFC com um papel e uma caneta.

Outra vantagem é que o NFC não precisa de bateria no cartão. Isso quer dizer que você pode fazer tags com papel, plástico, ou até colar um adesivo NFC na sua carteira, no seu celular, ou no seu cachorro (sim, tem gente que faz isso!). O leitor é que fornece a energia por indução eletromagnética. É como se o leitor fosse um imã que “empurra” uma corrente elétrica dentro da antena da tag, e essa corrente faz o chip da tag acordar e responder. É magia da física, e é isso que torna o NFC tão elegante: zero bateria, zero fios, e só um toque para funcionar.

🧰 O que você vai precisar

Para montar esse projeto, você não precisa de nada caro ou difícil de achar. Tudo que você vai precisar está disponível em lojas de eletrônica online no Brasil, e o custo total não passa de R$ 60. Vamos listar tudo com os nomes exatos pra você não se perder:

ComponenteOnde comprarPreço médio
ESP32 DevKitC (com antena Wi-Fi)Amazon, Mercado Livre, Loja do MakersR$ 45
Módulo RC522 (NFC)Amazon, Mercado Livre, Loja do MakersR$ 15
Jumper M-M (10 peças)Lojas de eletrônica onlineR$ 5
Protoboard 400 pontosAmazon, Mercado LivreR$ 8
Cartões ou tags NFC (5 unidades)Loja do Makers, AliExpressR$ 10
LED RGB (opcional)Loja do MakersR$ 3
Buzzer passivo (opcional)AmazonR$ 2

Se você está começando, recomendo comprar um kit completo de ESP32 + RC522 + jumper + protoboard. Tem uns kits por R$ 55 que já vem tudo junto. E não compre o RC522 sem antena — alguns vêm sem a antena soldada, e aí você não lê nada. Verifique na foto se tem um fio enrolado em volta do chip. Se não tiver, é um produto defeituoso. Também é bom comprar pelo menos 5 cartões ou tags NFC. Um você vai usar para testar, outro você cola na porta da geladeira, outro no seu celular, e os outros dois você dá de presente pra galera que vai testar com você. É divertido ver a cara de espanto quando alguém passa o cartão e a porta da casa abre!

Se você mora em São Paulo, Rio ou Belo Horizonte, pode achar tudo na Loja do Makers ou na Eletrônica do Tio. Se mora em outra cidade, o Mercado Livre é seu melhor amigo. Busque por “ESP32 RC522 kit NFC” e filtre por vendedores com 4.8+ de avaliação. Evite os que vendem por R$ 20 com “frete grátis” — quase sempre são componentes falsificados ou sem garantia. Um ESP32 original tem o chip ESP-WROOM-32, e o módulo RC522 tem o chip MFRC522 gravado na parte de cima. Se não tiver, é um clone, e pode não funcionar direito.

⚙️ Passo 1 — Ligando o RC522 ao ESP32

Agora vamos ao que interessa: conectar os fios. O módulo RC522 funciona em 3.3V, e o ESP32 também. Isso é ótimo, porque você não precisa de resistores ou conversores de tensão. Mas atenção: se você ligar o RC522 em 5V, ele queima. Já vi vários projetos falharem por isso. Então, nunca use o pino 5V do ESP32 para alimentar o RC522. Use apenas o pino 3.3V. O RC522 tem 7 pinos: VCC, GND, SDA (ou SS), SCK, MOSI, MISO e RST. O ESP32 tem vários pinos, mas vamos usar os padrões da biblioteca MFRC522. Aqui vai a conexão certa:

Diagrama de conexão entre ESP32 e RC522 com cores de fio
Conexão correta entre ESP32 e RC522: cada pino tem sua função e cor recomendada para evitar erros.

Veja a tabela de conexão:

  • RC522 VCCESP32 3.3V (nunca 5V!)
  • RC522 GNDESP32 GND
  • RC522 SDA (SS)ESP32 GPIO 5
  • RC522 SCKESP32 GPIO 18
  • RC522 MOSIESP32 GPIO 23
  • RC522 MISOESP32 GPIO 19
  • RC522 RSTESP32 GPIO 22

Esses pinos são os padrões da biblioteca MFRC522, e funcionam em qualquer ESP32. Se você usar outros pinos, vai ter que alterar o código. Mas como você está começando, siga esse esquema. Use fios coloridos: vermelho para VCC, preto para GND, azul para SCK, verde para MOSI, amarelo para MISO, laranja para SS, e roxo para RST. Isso ajuda a não se perder. Se você não tiver protoboard, pode soldar os fios direto nos pinos, mas fique atento: o RC522 é pequeno, e os pinos são finos. Use uma ponta de solda fina e não exagere no calor. Se você soldar errado, pode danificar o chip.

Outra dica importante: deixe os fios o mais curtos possível. Se você usar fios longos, tipo de 30 cm, o sinal NFC pode enfraquecer e o leitor não vai detectar o cartão. O ideal é que os fios não passem de 10 cm. Se você quiser deixar o RC522 longe do ESP32, use um cabo blindado (como o de rede), mas isso é avançado. Para o primeiro projeto, mantenha tudo junto. E não esqueça de ligar o GND — se você esquecer, o sistema não vai funcionar, e você vai ficar achando que o cartão está defeituoso. É o erro mais comum de iniciantes.

📶 Passo 2 — Instalando a biblioteca MFRC522 no Arduino IDE

Agora vamos para a parte do software. O ESP32 não sabe ler NFC sozinho. Ele precisa de uma “biblioteca” — que é como um manual de instruções escrito em código, que ensina o ESP32 a falar a linguagem do RC522. A biblioteca que usamos se chama MFRC522. Ela foi feita por GitHub user/miguelbalboa, e é a mais usada no mundo todo. Para instalar, abra o Arduino IDE (se você não tem, baixe no site oficial arduino.cc). Depois, vá em “Sketch” > “Include Library” > “Manage Libraries...”.

Na janela que abrir, digite “MFRC522” na caixa de busca. Vai aparecer um resultado chamado “MFRC522 by Miguel Balboa”. Clique nele, e depois clique em “Install”. Espere a instalação terminar — não feche a janela. Se aparecer uma mensagem de erro tipo “Failed to download”, é porque o Arduino IDE não consegue acessar o servidor. Nesse caso, vá em “File” > “Preferences” e cole esse link no campo “Additional Boards Manager URLs”: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json. Depois, vá em “Tools” > “Board” > “Boards Manager”, digite “esp32” e instale o pacote da Espressif. Isso garante que o Arduino IDE reconheça o ESP32.

Tela do Arduino IDE mostrando a instalação da biblioteca MFRC522
Instalando a biblioteca MFRC522 no Arduino IDE — atenção para a versão correta (1.4.12 ou superior).

Se você instalar uma versão muito antiga (como a 1.3.0), pode ter erros de compilação. A versão 1.4.12 é a mais estável. Depois de instalar, feche e abra o Arduino IDE novamente. Isso força o IDE a recarregar todas as bibliotecas. Se você não fizer isso, o código pode não reconhecer as funções da biblioteca. Outro erro comum: instalar “NFC” ou “NFC Reader” em vez de “MFRC522”. Não confunda. Só a MFRC522 funciona com o RC522. Existem outras bibliotecas, mas elas são para chips diferentes, como PN532. Não use elas aqui.

Se você estiver usando o Arduino Web Editor, o processo é o mesmo: vá em “Libraries”, busque por “MFRC522”, e clique em “Add”. Se aparecer uma mensagem dizendo que a biblioteca não foi encontrada, é porque o Web Editor não tem acesso à internet. Nesse caso, use o desktop. Não vale a pena tentar fazer tudo no navegador. O Arduino IDE desktop é mais rápido, mais confiável, e você pode salvar os projetos offline. E se você não sabe o que é Arduino IDE? É o programa que você usa para escrever o código que vai mandar para o ESP32. É como um Word, mas para programar. Você escreve em C++, e ele transforma em linguagem que o chip entende. É simples, mas poderoso.

🔌 Passo 3 — Carregando o código de teste para ler o UID da tag

Agora vamos ao código. Copie e cole isso no Arduino IDE. Não tente digitar — copie direto, porque um espaço errado pode quebrar tudo. Este é o código mais básico para ler o UID de uma tag NFC:

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         22
#define SS_PIN          5

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Cria o objeto do leitor NFC

void setup() {
  Serial.begin(9600);  // Inicia a comunicação serial
  SPI.begin();         // Inicia o protocolo SPI
  mfrc522.PCD_Init();  // Inicializa o módulo RC522
  Serial.println("Leitor NFC pronto. Aproxime uma tag...");
}

void loop() {
  if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
    Serial.print("UID da tag: ");
    for (byte i = 0; i < mfrc522.uid.size; i++) {
      Serial.print(mfrc522.uid.uidByte[i] << 16, HEX);
      Serial.print(":");
    }
    Serial.println();
    mfrc522.PICC_HaltA();  // Para a comunicação com a tag
    mfrc522.PCD_StopCrypto1();  // Desliga a criptografia
  }
  delay(1000);  // Espera 1 segundo antes de ler novamente
}

Vamos entender linha por linha. A primeira linha, #include <SPI.h>, carrega a biblioteca que permite o ESP32 falar com o RC522 usando o protocolo SPI — é como um “telefone” digital entre os chips. A segunda linha, #include <MFRC522.h>, carrega a biblioteca que ensina o ESP32 a entender o RC522. Depois, definimos os pinos: RST_PIN é o pino de reset (22), e SS_PIN é o pino de seleção do dispositivo (5). Esses são os mesmos que conectamos no passo 1.

Depois, criamos o objeto mfrc522 com os pinos que definimos. É como se você estivesse dizendo: “Olha, ESP32, esse é o seu leitor NFC, e ele está nos pinos 5 e 22”. No setup(), iniciamos a comunicação serial com Serial.begin(9600) — isso permite que você veja os resultados no Monitor Serial. O SPI.begin() liga o protocolo de comunicação. E o mfrc522.PCD_Init() é o “acordar” do módulo. Se ele não der certo, o ESP32 não vai ler nada.

No loop(), o código fica esperando. Quando uma tag é aproximada, PICC_IsNewCardPresent() detecta que algo novo chegou. Se sim, PICC_ReadCardSerial() lê os dados da tag. Aí entra a parte mais legal: o UID. Ele é um número único de 4 a 10 bytes. O código pega cada byte, converte para hexadecimal (base 16), e mostra no Monitor Serial. Por exemplo: se você passar um cartão de metrô, pode ver algo como UID da tag: 04:1A:2B:3C. Esse é o RG digital da sua tag. Ninguém tem o mesmo. É único. E é isso que vamos usar para liberar acesso.

💡 Dica Arcade Maker: Sempre que você testar uma nova tag, anote o UID no caderno ou em um arquivo no celular. Depois, você pode copiar esse código para o programa de acesso. Não confie na memória — tags podem se perder, mas o UID nunca.
Atenção: Se o Monitor Serial mostrar “00:00:00:00” ou nada, verifique a conexão dos fios. O pino SS (SDA) está no GPIO 5? O VCC está em 3.3V? O GND está conectado? Se tudo estiver certo, reinicie o ESP32. Às vezes, o módulo precisa de um reset físico.
Explorando NFC

Uma tag NFC não precisa ser só um cartão. Você pode comprar adesivos NFC de 1 cm x 1 cm, e colar em qualquer lugar: na sua carteira, no seu chaveiro, no seu notebook, até na tampa da sua lata de café. Quando você passa o ESP32 perto, ele lê o UID. E se você quiser escrever algo nela? É possível! Existem tags que permitem escrita. Com a biblioteca MFRC522, você pode gravar um texto simples, como “Café da manhã: 8h”, e depois, ao passar o cartão, o ESP32 lê e exibe a mensagem. Mas atenção: nem todas as tags permitem escrita. As de transporte são protegidas — só leitura. As de brinde, como as de supermercado, geralmente permitem escrita.

Outra ideia legal: use uma tag NFC como “comando de voz” sem falar. Coloque uma tag no seu quarto, e quando você passa o celular perto, ele liga a luz. Ou coloque uma tag na sua mesa de trabalho, e quando você passa o ESP32 perto, ele manda um email para seu chefe dizendo “estou no escritório”. Isso tudo é possível com o ESP32 e o NFC. O mais legal é que você pode fazer isso sem precisar de app. O ESP32 faz tudo sozinho. É como se você tivesse um controle remoto invisível, só que em vez de apertar botão, você passa o cartão.

Se você quer ir além, pode usar tags com memória maior, como as NTAG213 (144 bytes) ou NTAG216 (888 bytes). Elas permitem armazenar URLs, contatos, ou até pequenos scripts. Quando você passa o celular perto, ele abre um site automaticamente. Isso é usado em pôsteres de eventos, em embalagens de produtos, e até em cartões de visita. O ESP32 pode ler essas informações também — só que aí você precisa de código mais avançado. Mas por enquanto, fique com o UID. Ele é o suficiente para criar sistemas incríveis.

🚀 Dicas extras para o seu projeto

Se você quer deixar seu projeto mais profissional, use uma caixa plástica para proteger o ESP32 e o RC522. Pode ser uma caixa de doces vazia, ou uma caixa de plástico de 10 cm. Faça um furo para o RC522 ficar exposto, e cole a antena dele para fora. Assim, ele lê melhor. Também é legal colocar um LED de status — quando o cartão é lido, o LED acende. Isso dá feedback visual. E se você quiser usar o ESP32 como servidor web? É possível! Você pode criar uma página simples, tipo http://192.168.1.100/nfc, e quando alguém passa o cartão, a página atualiza com o UID lido. Isso é útil para monitorar acesso em tempo real.

Outra dica: use o ESP32 em modo de baixo consumo. Se você vai deixar o sistema ligado 24h, como em uma porta de garagem, use o modo Deep Sleep. O ESP32 pode dormir por 10 segundos, acordar, ler o NFC, e voltar a dormir. Isso economiza bateria. Se você usar uma bateria de 18650, o sistema pode rodar por semanas. E se quiser, você pode conectar um display OLED de 0.96 polegadas para mostrar o UID na tela. É só adicionar a biblioteca Adafruit_SSD1306 e umas 10 linhas de código. O projeto fica ainda mais bonito.

Se você está fazendo isso para uma escola, um clube, ou até para a sua casa, pense em como o NFC pode substituir chaves. Um cartão NFC é mais fácil de perder que uma chave, mas é muito mais fácil de bloquear. Se alguém roubar seu cartão, você simplesmente remove o UID da lista de autorizados no código, e o cartão vira um pedaço de plástico. Não precisa trocar fechadura. É um upgrade de segurança barato e inteligente.

🕹️ Já testou NFC com o seu ESP32?

E aí, galera? Já passou seu cartão de transporte perto do seu ESP32? Já viu o UID aparecer no Monitor Serial? Se sim, comenta aqui embaixo qual foi o código que você leu! Se não testou ainda, não fique só lendo — monta o circuito, copia o código, e testa hoje mesmo. É mais fácil do que parece. E se você tiver dúvidas, manda um print do seu circuito ou do erro que apareceu no Monitor Serial. A gente responde todos os comentários aqui no blog. E se você fez um projeto legal com NFC — tipo uma máquina de snacks que libera um refrigerante só se você passar o cartão — manda o vídeo! Vamos fazer um post especial com os melhores projetos da galera. O NFC não é só para experts. É para quem quer transformar o mundo com um toque. E você? O que vai fazer com ele?

Participem e me ajude a melhor ainda mais esse blog. :D Obrigaduuuuuuuuuuuu.
OBS.: Obrigado pelo feedback, estão mesmo excelentes e me ajudando bastante. :D
Author Image
AboutAlexandre Paixao

Soratemplates is a blogger resources site is a provider of high quality blogger template with premium looking layout and robust design

Nenhum comentário:

Postar um comentário