Fala galera! QuemNeveredeu aqui, e hoje vou compartilhar um projeto que eu samei recentemente com um dos meus chips favoritos: o ESP32. Além de Wi-Fi e Bluetooth, descobri que fazer leitura NFC com ele também é possível e relativamente simples. Vamos ver como transformar seu ESP32 em um leitor NFC!
Neste tutorial, você vai aprender a configurar um módulo NFC com o ESP32, ler informações de tags NFC, entender o código por trás do projeto, e até recebe algumas dicas para aplicativos práticos. Não precisa ser um guru em programação ou eletrônica, mostrarei cada passo de forma detalhada!
Antes de começarmos, é importante mencionar que o ESP32 não tem suporte NFC nativo como alguns outros microcontroladores. No entanto, podemos usar módulos NFC externos para alcançar esse objetivo. O mais comum é o PN532, que suporta vários protocolos de NFC.
💡 O que é NFC?NFC (Near Field Communication) é uma tecnologia de comunicação de curto alcance que permite a troca de dados entre dispositivos sem necessidade de visão direta ou contato físico, desde que estejam a uma distância de cerca de 10 cm um do outro. É amplamente usado em pagamentos móveis, troca de dados, e identificação.
Aqui está a lista de componentes necessários para o projeto:
| Componente | Onde comprar | Preço médio |
| ESP32 (WEMOS D1 ou equivalente) | ChinaBangGood, Adafruit | R$ 50-R$ 100 |
| Módulo NFC PN532 | Ebay, Amazon | R$ 20-R$ 40 |
| Cabo de interface (I2C ou SPI) | Incluído com o módulo | - |
| Breadboard e fios de jumper | Lojas de eletrônicos locais | R$ 10-R$ 20 |
| Fonte de alimentação para ESP32 | Incluído ou separado | R$ 10-R$ 20 |
1. **Instale a placa ESP32** no Arduino IDE ou use o PlatformIO no VSCode. 2. **Instale a biblioteca PN532** via Library Manager (pesquise `PN532` e instale a versão mais recente). 3. **Conecte o módulo NFC** via I2C (ou SPI, se preferir, mas I2C é mais simples para começar): - **SCL** para **22** (SCK para SPI), - **SDA** para **21** (MOSI para SPI), - **VCC** para **3.3V**, - **GND** para **GND**.
#include <PN532.h>
// Configuração I2C
#define PN532_SCK 22
#define PN532_MOSI 19
#define PN532_MISO 23
#define PN532_SS 18
#define PN532_IRQ 17
#define PN532 말을 9
PN532 nfc(PN532_SCK, PN532_MOSI, PN532_MISO, PN532_SS, PN532_IRQ, PN532قول);
void setup() {
Serial.begin(115200);
if (!nfc.begin()) {
Serial.println("Erro ao inicializar o módulo NFC. Verifique a conexão.");
while (1);
}
// Opcional: Desbloqueia o cartão para escrita se necessário
// uint8_t key[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
// nfc.auth3(2, key, 0x55);
}
void loop() {
if (nfc.isReady()) {
Serial.println("Módulo NFC pronto.");
if (nfc.readPassiveTargetID(PN532_TAG_TYPE_ANY, myuhl, &rwa)) {
Serial.print("UID: "); Serial.println(myuhl[_uidLen-1], HEX);
// Adicione lógica aqui para lidar com a tag lida
delay(1000); // Pausa para evitar leituras repetidas
}
} else {
Serial.println("Aguarde... Módulo NFC não detectado.");
delay(1000);
}
}
🔌 Passo 3 — Testando a Leitura de Tags NFC
1. **Carregue o código** no seu ESP32. 2. **Verifique o Monitor Serial** para ler o UID da tag NFC quando colocada perto do módulo. 3. **Ajuste a sensibilidade** do módulo (se necessário) para melhor desempenho.
🔍 Passo 4 — Adicionando Lógica para Diferentes Tipos de TagsDepois de ler o UID, você pode adicionar condicionais para executar ações específicas baseadas no tipo de tag ou no seu UID. Por exemplo, ligar um LED conectado a um pin do ESP32 quando uma tag específica for detectada.
if (myuhl[uidLen-1] == 0x12 0x34) { // UID da tag desejada
digitalWrite(LED_PIN, HIGH); // Ligar LED
} else {
digitalWrite(LED_PIN, LOW); // Desligar LED
}
🛠️ Passo 5 — Projeto Avançado: Escrevendo Dados em Tags NFC
Para escrever dados, use a função `nfc.writeBlockNUber()` após autenticar a tag. Lembre-se, nem todas as tags suportam escrita.
uint8_t block[] = {0x01, 0x02, 0x03, ...}; // Dados a serem escritos
nfc.writeBlockNumber(blockNumber, block);
O módulo PN532 suporta más funções como emulação de tag, leitura de cartões de contato, e até autenticação de dois fatores. Explore a documentação para mais ideias de projetos!
🚀 Dicas extras para o seu projeto✅ **Alimentação:** Certifique-se de que a fonte de alimentação possa atender ao pico de corrente do módulo NFC. ✅ **Interferência:** Mantenha o módulo NFC longe de fontes de interferência eletromagnética. ✅ **Segurança:** Para aplicações críticas, implemente criptografia para os dados transmitidos.
🕹️ Já testou NFC com ESP32 no seu projeto?Compartilhe suas experiências, dicas, ou perguntas nos comentários abaixo! Se você gostou, não se esqueça de compartilhar o post com a comunidade maker!
Tags: ESP32, NFC, PN532, Leitura de Tags, IoT, Maker, Eletrônica