Hoje vamos mostrar como usar o leitor RFID com ESP8266, mais especificamente o Leitor RFID RDM6300 125KHz, que já mostramos anteriormente no post Módulo RFID RDM6300 com Arduino.
O RDM6300 é um leitor RFID que opera na frequência de 125 KHz, muito comum em tags e chaveiros RFID usados em controles de acesso como portões, catracas, alarmes, etc.
No post sobre o uso do RDM6300 com Arduino algumas pessoas me escreveram recentemente com dúvidas sobre o uso deste leitor com o ESP8266, e creio que o problema seja mais de nomenclatura dos pinos dentro do programa (relação dos pinos na IDE com a GPIO do NodeMCU) do que exatamente com a biblioteca ou o programa em si.
O leitor RFID RDM6300
Apenas recapitulando sobre o RDM6300, ele é um leitor RFID que se comunica com o microcontrolador usando interface serial, o que facilita a conexão do mesmo em placas como Arduino, ESP8266, ESP32 e Raspberry Pi. Abaixo temos a pinagem do módulo:
A alimentação pode ser feita usando-se qualquer um dos pinos Vcc e GND, ok?
Configuração da IDE Arduino para o NodeMCU
Para incluir a placa ESP8266 NodeMCU na IDE Arduino, acesse o menu Arquivo e em seguida Preferências. No campo URLs Adicionais para Gerenciadores de Placas preencha com o seguinte endereço:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Clique em OK para continuar. No menu Ferramentas -> Placa -> Gerenciador de Placas procure por esp8266 by ESP8266 Community e clique em Instalar:
Com isso o NodeMCU irá aparecer na sua lista de placas disponíveis. Para utilizar o NodeMCU com a IDE Arduino, selecione NodeMCU 1.0 na lista:
Vamos agora montar o circuito para os testes.
Circuito RD6300 e módulo ESP8266 NodeMCU
Para montar o circuito, vamos usar os pinos marcados no ESP8266 NodeMCU como D6 e D7, que no programa são identificados como pinos 12 e 13.
Um led está conectado na porta D2, e servirá para sinalizar que a leitura da tag RFID foi feita corretamente. O “retângulo” laranja na parte inferior da imagem é a antena do leitor, que nesse módulo é externa.
Programa leitor RFID com ESP8266
Infelizmente ainda não é possível instalar a biblioteca a partir da IDE do Arduino, então o processo deve ser feito manualmente. Baixe a biblioteca RDM6300, descompacte e coloque na pasta Libraries da IDE.
Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.
O programa usa a biblioteca SoftwareSerial pra emular uma serial nos pinos digitais D6 e D7 (GPIO 12 e 13), de forma semelhante ao que fizemos nos testes do RDM6300 com Arduino.
//Programa: Leitor RFID RDM6300 com ESP8266 NodeMCU //Autor: Arduino e Cia #include <SoftwareSerial.h> #include <RDM6300.h> //Inicializa a serial nos pinos 12 (RX) e 13 (TX) SoftwareSerial RFID(12, 13); //Configura o led na porta digital D2 int Led = 4; uint8_t Payload[6]; // used for read comparisons RDM6300 RDM6300(Payload); void setup() { //Define o pino do led como saida pinMode(Led, OUTPUT); //Inicializa a serial para o leitor RDM6300 RFID.begin(9600); //Inicializa a serial para comunicacao com o PC Serial.begin(9600); //Informacoes iniciais Serial.println("Leitor RFID RDM6300"); } void loop() { //Apaga o led digitalWrite(Led, HIGH); //Aguarda a aproximacao da tag RFID while (RFID.available() > 0) { uint8_t c = RFID.read(); if (RDM6300.decode(c)) { Serial.print("ID TAG: "); //Mostra os dados no serial monitor for (int i = 0; i < 5; i++) { Serial.print(Payload[i], HEX); Serial.print(" "); } Serial.println(); //Aciona o led digitalWrite(Led, LOW); } } //Aguarda 2 segundos e reinicia o processo delay(2000); }
Após carregar o programa, talvez seja necessário pressionar o botão RST (RESET) do ESP8266 NodeMCU para que o programa seja corretamente executado.
Com o programa carregado, basta aproximar a tag da antena e o led irá acender durante 2 segundos. Se você não tem um led ou deseja apenas testar o módulo, pode acompanhar o resultado também pelo Serial Monitor, onde a ID da tag é mostrada:
Gostou? Confira outros posts usando módulo RFID aqui mesmo no Arduino e Cia!