Controle de Fechadura Eletrônica Utilizando RFID

Hoje vamos explorar uma tecnologia fascinante: o RFID. Vamos entender como podemos aplicá-la para controlar uma fechadura eletrônica, e com isso você terá a base para controlar qualquer coisa com RFID.

Neste post vamos mergulhar na programação e implementação prática do controle de fechadura eletrônica utilizando Arduino e RFID.

O que é RFID?

RFID, ou Identificação por Radiofrequência, é uma tecnologia que permite a identificação de objetos através de sinais de rádio. Essa tecnologia é bastante versátil e pode ser encontrada em diversos contextos, desde o varejo até o controle de acesso e rastreamento de animais de estimação.

Como Funciona?

As tags RFID são dispositivos pequenos que podem ser acoplados a objetos ou até mesmo a animais de estimação. Elas emitem sinais de rádio em resposta aos leitores de tags que são e estes sinais de retorno são lidos por leitores RFID. Cada tag possui uma identificação única, que pode conter informações específicas sobre o objeto ou o animal ao qual está associada.

A Figura 1 apresenta diversos tipos de tags e destaca a frequência de cada uma.

Figura 1 – Diferentes tipos de tags com frequências específicas para diversas aplicações.

Aplicações Práticas

As aplicações do RFID são diversas. No varejo, por exemplo, as tags são utilizadas para controlar o estoque de produtos. Já no controle de acesso, como o caso de fechaduras eletrônicas, as tags são utilizadas para autorizar ou negar o acesso a determinados ambientes.

Como exemplo de um produto podemos citar o SureFeed, Figura 2, um alimentador para gatos e cahorros de pequeno porte que controla a liberação do alimento para o animal que tem a tag RFID específica.

Figura 2 – Alimentador de pets SureFeed.

Projeto do Controle de Fechadura Eletrônica

O funcionamento do nosso projeto é relativamente simples: quando uma tag RFID autorizada se aproxima do leitor, o Arduino envia um sinal para o módulo relé, que por sua vez aciona a fechadura, permitindo o acesso.

A Figura 3 apresenta as ligações e todos os componentes do projeto.

Figura 3 – Montagem do projeto com Arduino Nano, RDM6300 e módulo relé.

O módulo RDM6300 envia os dados lidos da tag por meior de uma única via de comunicação serial. Observe a pinagem do módulo na Figura 4.. No nosso caso usamos o pino 6 do Arduino Nano. O módulo relé utilizado deve ter seu pino D1 conectado ao pino 2 do Arduino Nano. Usamos um diodo em paralelo com a alimentação da fechadura para evitar picos na descarga da solenoide.

Figura 4 – Pinagem do RDM6300.

Para implementar o controle de uma fechadura eletrônica utilizando RFID, precisamos de alguns componentes básicos:

Apesar de não ser necessário o uso de uma biblioteca externa para o RDM6300, vamos optar por usar uma, pois vai simplificar muito nosso código. Então antes de partir para a programação é preciso instalar a biblioteca para o RDM6300.

Acesse o link da biblioteca no githut https://github.com/arduino12/rdm6300 e faça o download do código, como apontado na Figura 5.

Figura 5 – Download da biblioteca RDM6300.

Em seguida adicione a biblioteca à IDE do Arduino, como mostra a Figura 6.

Figura 6 – Adição da biblioteca à IDE do Arduino.

Programação do Projeto

Com o projeto montado na protoboard e a biblioteca instalada, podemos subir o código para o Arduino.

O código abaixo faz o controle do nosso projeto.

#include <rdm6300.h>
#define RX_RFID 6
#define FECHADURA 2
Rdm6300 rdm;
long tagId = 3672144;
void setup() {
  Serial.begin(9600);
  rdm.begin(RX_RFID);
  pinMode(FECHADURA, OUTPUT);
}
void loop() {
  
  if (rdm.get_new_tag_id()) {
    long tag = rdm.get_tag_id();
    if (tag == tagId) {
      Serial.println(tag);
      digitalWrite(FECHADURA, HIGH);
      delay(2000);      
      digitalWrite(FECHADURA, LOW);
    } else {
      Serial.print("Tag inválida: ");
      Serial.println(tag);
    }    
  }
}

Observe que com o uso da biblioteca o código ficou muito enxuto. Algumas considerações:

  • Inicialização: a variável Rdm6300 rdm; instancia o módulo e a linha rdm.begin(RX_RFID); inicializa o módulo no pino RX_RFID, que é o 6 do Arudino. O pino da FECHADURA está definido para o 2 e inicializado como OUTPUT.
  • Na função loop, temos dois if encadeados. O primeiro usa a função rdm.get_new_tag_id() para verificar se alguma tag se aproximou do leitor. Caso isso seja verdade a linha long tag = rdm.get_tag_id(); lê a tag para a variável tag e se o segundo if verifica se é uma tag conhecida, if (tag == tagId), e assim ativa a fechadura. Caso contrário nós imprimimos na serial o valor da tag inválida.
  • Neste exemplo a fechadura é ativada por apenas 2 segundos. Você deve ajustar de acordo com sua necessidade.
  • Para encontrar o valor da tag apenas faça o teste com a sua tag e o valor dela aparecerá no monitor serial. Então você poderá copiar o valor e definir na variável long tag lá no início do código.

Considerações Finais

O RFID é uma tecnologia poderosa que pode trazer muitos benefícios em diversas áreas. No entanto, é importante entender suas limitações e considerar aspectos como compatibilidade de frequências e interferências eletromagnéticas.

Você pode encontrar este experimento no meu canal do Youtube.

Gostou do conteúdo? Deixe seu like, compartilhe com seus amigos e não se esqueça de se inscrever para acompanhar todas as novidades. Até a próxima!

Se você tiver alguma dúvida ou quiser compartilhar sua própria experiência, não hesite em deixar um comentário abaixo. E não se esqueça de se inscrever no canal youtube.com/@ricardoteix para mais conteúdos como este. Até a próxima!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.