Guia Básico da NFC para Arduino

Nesse Guia Básico da NFC para Arduino você verá :

 

O que é NFC ?

NFC é a sigla em inglês de Comunicação por Campo de Proximidade (Near field communication). “É uma tecnologia que permite a troca de informações sem fio e de forma segura entre dispositivos compatíveis que estejam próximos um do outro. Ou seja, logo que os dispositivos estejam suficientemente próximos, a comunicação é estabelecida automaticamente, sem a necessidade de configurações adicionais. Estes dispositivos podem ser telefones celulares, tablets, crachás, cartões de bilhetes eletrônicos, pulseiras e qualquer outro dispositivo que tenha um  chip NFC.”

Fonte Wikipedia : NFC

Essa tecnologia foi iniciada à partir de um acordo de cooperação entre a Philips e a Sony em 2002, para o desenvolvimento da NFC. Em 2004, a Nokia entrou também no grupo de desenvolvimento e criaram o Forum NFC.

NFC Forum ORG

A distância definida para a comunicação NFC é de até 10 cm, visando velocidades rápidas o suficiente para transferir imagens de alta qualidade. Com velocidade de comunicação de até 848 kbit /s, a tecnologia NFC é totalmente compatível com as tecnologias de cartão inteligente sem contato Mifare da Philips e FeliCa da Sony.

Exemplos de transmissão :

Passivo: apenas um dos dispositivos gera o sinal de conexão, o segundo apenas recebe. Assim é possível colocar etiquetas NFC em itens que não recebem alimentação elétrica direta, como cartões, embalagens e cartazes.

Ativo: ambos os dispositivos geram o sinal, por exemplo, na conexão entre  um smartphone e um receptor no caixa de uma loja.

Leitura e gravação: leitura ou alteração de dados em um dispositivo NFC, como um receptor que desconta créditos registrados em um cartão de bilhete de ônibus.

Peer-to-peer: cada dispositivo pode tanto receber quanto enviar dados para o outro, por exemplo, para a troca de arquivos entre dois smartphones.

Como funciona a NFC:

A NFC funciona usando indução magnética, assim como no RFID: um leitor emite uma pequena corrente elétrica que cria um campo magnético. Esse campo é recebido por uma bobina semelhante no dispositivo do cliente, onde é transformada novamente em impulsos elétricos para transmitir e receber dados, como informações de identificação ou qualquer outra informação. As  etiquetas NFC  passivas usam a energia do leitor para codificar sua resposta, enquanto as etiquetas NFC ativas  têm sua própria fonte de energia e respondem ao leitor usando seus próprios campos eletromagnéticos.

Essa apostila da Nokia contém conteúdo bem interessante e detalhado sobre NFC :

Introduction_to_NFC_- Nokia

 

Aplicações para NFC

NFC é uma tecnologia recente e a cada dia tem sido criadas novas aplicações para o seu uso. Aqui no Brasil, vários Bancos já estão usando o NFC para que os usuários possam efetuar transações financeiras. É claro, existe uma limitação de valor  definida pelo usuário, e o uso de senha permite segurança nas transações.

As etiquetas NFC  inseridas em cartões de identificação, cartões de visita, posters, menus, etc, podem iniciar um aplicativo no  smartphone ou conectar o usuário em um site de mídia social, por exemplo. Diferentemente de códigos de barras ou QR codes, as etiquetas NFC podem armazenar uma significante quantidade de dados, são mais seguras e podem ser protegidas por senhas. As etiquetas NFC incorporadas podem fornecer informações detalhadas  sobre produtos, marcas, recomendações de consumidor, usuário,manuais, sustentabilidade, reciclagem e muito mais.

A grande maioria dos  smartphones mais modernos estão vindo com circuitos que permitem a comunicação NFC. Por exemplo, podem ser usados para pagamentos através da NFC de uma caixa registradora, podem transferir arquivos de fotos de uma camera fotográfica para o smartphone, etc.

Outra forma de automação por NFC muito utilizada nos Estados Unidos é o pagamento de bilhetes de estacionamento via smartphone com NFC. Recentemente a empresa Kameda Corp lançou o sistema no Brasil, com um funcionamento simples: o motorista pode pagar o bilhete na saída do estacionamento com seu próprio smartphone, desde que este tenha o aplicativo integrado ao PayPal.

No NFC Forum existe um concurso anual para divulgação de novas aplicações do NFC. Acho que vale a pena dar uma olhada no vídeo abaixo , nos vencedores e finalistas do concurso de 2017:

 

 

Tipos de etiquetas NFC

Como no caso da RFID, a  etiqueta NFC funciona no espectro de radiofrequência de 13,56MHz usando menos de 15mA de energia para comunicar dados entre distâncias que são geralmente menores que 10 cm. As etiquetas normalmente armazenam entre 48 e 888 bytes de dados e transferem dados usando velocidades de 106Kb / s, 212Kb / s,  424Kb / s ou 848Kb / s – o suficiente para mover os blocos de informação virtualmente instantaneamente. Veja na etiqueta abaixo NFC NTAG213, o chip NTGAG213 onde ficam armazenados os dados (EEPROM) e a antena que é formada pelo circuito circular. A retenção dos dados pode durar até 10 anos. E a memória pode ser regravada até 100.000 vezes !

 

 

Frequência de operação : 13,56 MHz

Diâmetro da antena = 35 mm (para NTag213)

Diâmetro da etiqueta = 38 mm (para NTag213)

Padrão : ISO 14443 A (da etiqueta NFC)

NTAG213 EEPROM:     possui 180 bytes, organizados  em 45 páginas de 4 bytes.

  • 26 bytes reservados para dados de identificação (configuração e fabricante)
  • 34 bits usados para mecanismo de trava de leitura somente
  • 4 bytes disponíveis para capability container
  • 144 bytes para memória do usuário (leitura e gravação)

Tamanho das memórias do usuário nos chips NTAG :

  •  NXP NTAG210  =   48 bytes
  •  NXP NTAG213  =  144 bytes
  •  NXP NTAG216  = 888 bytes
  • Sony FeliCa Lite-S =  224 bytes

Informações detalhadas sobre os chips das etiquetas NTAG 213, 215 e 216 :   NTAG213_215_216 Datasheet

Especificações das Etiquetas BullsEye

Especificações das etiquetas Tipo 2 (NFC Forum) :

NFCForum-TS-Type-2-Tag_1.1

        NTAG213 – mapa de memória EEPROM

  • UID – identificador único / número de série
  • Lock – bytes para seleção de Leitura somente (‘FF’)  ou Leitura e Gravação (’00’) de blocos de dados
  • CC – capability container – definições de tamanho da memória (gravado na fábrica)
  • User memory – para armazenar dados do usuário
  • CFG – páginas de configuração
  • PWD – senha de acesso (somente grava – nunca pode ser lida)
  • PACK – autorização de acesso

 

Protocolos e Interfaces da NFC:

As interfaces NFC são definidas pelos padrões ISO e ECMA.  As normas ISO / IEC 18092 / ECMA-340 determinam modos de comunicação para NFC Interface e Protocol (NFCIP), para comunicação ativa e passiva, esquemas de modulação relevantes e velocidades de transferência.  A ISO / IEC 21481 / ECMA-352 define NFCIP-2, que especifica os modos de comunicação para minimizar a interferência com outros dispositivos de cartão sem contato.

Se você se interessou pela NFC e deseja estudar a fundo o protocolo e interface ECMA, anexei esses dois documentos detalhados sobre a NFC-1 e NFC-2 .

ECMA-340 NFC-1 – Interface and Protocol

ECMA-352 NFC-2 – Interface and Protocol

 

referência : APCMAG – dentro da NFC

 

Usando o módulo RFID RC522 para ler Tags NFC

O módulo RFID-RC522, como o nome diz, foi desenvolvido para leitura de etiquetas RFID. Mas o chip MFRC522 do módulo permite também o uso de etiquetas NFC. Portanto vamos usa-lo para ler essas NTAGs.

Esse é o Datasheet do chip MFRC522, que contém todas as informações sobre como usá-lo.

Datasheet do chip MFRC522

Esse diagrama abaixo foi feito por mim. É o diagrama eletrônico do módulo RFID-RC522. Veja que a alimentação do módulo deve ser de 3,3V. As portas de controle e de comunicação SPI  do Chip podem ser conectadas diretamente nas portas do Arduino (5V). A tensão das portas fica no limite, mas funcionam normalmente. Por isso não usei conversores de níveis de tensão.


Diagrama eletrônico do módulo RFID-RC522

O dois diagramas abaixo, mostram como devem ser feitas as conexões entre o Módulo RFID-RC522 e o Arduino UNO. Não se esqueça de conectar o GND do módulo ao GND do Arduino !

 

Diagrama FRITZING – Arduino UNO com Módulo Leitor RC522

 

 

Arduino UNO com Módulo leitor RC522

A Biblioteca MFRC522 será usada nos exemplos desse tutorial. Para instalar a nova Biblioteca, clique em

Sketch > Incluir Biblioteca > Gerenciar Bibliotecas 

Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando MFRC522. Na biblioteca  MFRC522, clique em More Info e depois em Instalar. Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa  Arduino IDE.

Biblioteca MFRC522

Como não encontrei nenhum exemplo de Sketch para a leitura de todos os dados das Etiquetas NFC NTAG213, criei esse programa baseado  na Biblioteca MFRC522.

Programa para mostrar todos os dados das Etiquetas NFC NTAG213:   DumpNTAG213.INO

 

Monitor Serial com as informações da NTAG 213 :

Todas as 45 páginas de dados da etiqueta podem ser visualizadas. Nessa tela somente aparecem as 19 primeiras páginas. Cada  página tem 4 bytes.

 

Controle de Acesso com Etiquetas NFC

Baseando-me no tutorial RFID do Blog da Eletrogate, fiz algumas adaptações para o uso de Etiquetas NFC :

 Kit RFID com Arduino: Sistema de controle de acesso

Para simplificar a montagem, usei um Display LDC 16×2 com interface I2C. A campainha (Buzzer) foi conectada no pino D7 do Arduino.  Não se esqueça de interligar todos os terras (GND).

Esses são os diagramas da montagem do Circuito de Controle de Acesso com NFC.

 

Diagrama FRITZING – Arduino UNO com RC522, Display LCD I2C e Buzzer

 

 

As Bibliotecas MFRC522 e LiquidCrystal_I2C serão usadas no Skecth dessa montagem. Para instalar uma nova Biblioteca, use o mesmo procedimento citado anteriormente.

Esse é o Sketch da montagem Controle de Acesso com NFC :  NFCAcesso.INO

Para inserir a Identificação da Etiqueta NFC a ser liberada, rode o programa e abra o monitor serial da Arduino IDE. Ao aproximar a etiqueta NFC , a identificação UID será mostrada. Copie essa identificação no Sketch, na linha abaixo (exemplo – insira um espaço antes da UID):

#define TAGLiberada ” 04 58 F1 72 20 4E 80″          // UID da etiqueta NFC liberada

Faça o upload do Sketch no Arduino e a etiqueta será liberada pelo Controle de acesso ! As outras etiquetas terão acesso negado. Com essa montagem, você poderá fazer um controle de fechadura elétrica de porta, por exemplo.

 

Se tiver alguma dúvida,  deixe um comentário!

 

Faça sua avaliação.
Por favor, aguarde...
Gustavo Murta
Gustavo Murta
Técnico em eletrônica, formado em Curso superior de TPD, pós-graduado em Marketing. Trabalhou por muitos anos na IBM na área de manutenção de computadores de grande porte. Aposentou-se, podendo curtir o que mais gosta : estudar e ensinar Tecnologia. Hobista em eletrônica desde 1976. Gosta muito de Fotografia e Observação de aves.