Ola pessoal,

Estou desenvolvendo um controle de acesso com RFID com arduíno, e para habilitar o acesso não queria deixar fixo os códigos dos cartões na codificação do arduíno.

A idéia é criar uma configuração para cadastrar os códigos dos cartões, até aí tudo bem.

O problema é fazer o arduíno ler esta informação.

A maneira mais fácil que eu vi é criar um arquivo txt para que o arduíno possa ler.

Alguém tem idéia de como fazer isso?

Exibições: 12157

Responder esta

Respostas a este tópico

Você teria que receber o arquivo TXT pela serial do Arduino, usando serial.read() para ler caracter a caracter. Isto pressupõe ter um programa no PC para enviar o arquivo (poderia até ser o copy do Windows ou cp do Linux). Para maior segurança, o ideal seria implementar um protocolo simples, como o Xmodem.

A opção mais comum é ter teclas para cadastrar um código e limpar a lista. Desta forma independe de conectar um PC.

Em qualquer opção, você deve guardar a lista de códigos na eeprom para os dados serem mantidos em caso de reset.

Edson. Estou com o mesmo problema. Vi vários tutoriais  de como salvar texto no SD usando o arduino, mas ainda não encontrei um tutorial (e que seja fácil para mim ) para ler textos de um arquivo salvo no SD utilizando comandos do arduino.

Tomara que alguém ajude a gente.... Valeu!

quais os leitores que vcs usam?

 

Eu utilizo o leitor de RFID ID - 12

Segue abaixo um fragmento para leitura de um arquivo texto à partir de um cartão SD utilizando a biblioteca sdfat que pode ser obtida no link:

http://code.google.com/p/beta-lib/downloads/detail?name=SdFatBeta20...=

 

  //***** Leitura do texto da posição 1 até wendpoint
  file.open(&root, "meu_arq.txt", O_READ);
  //***** Calcula o número de bytes do arquivo
  wendpoint = file.fileSize();
  file.seekSet(0);  // seekSet: em relação ao início do arquivo
  Serial.println();
  Serial.println("conteúdo de meu_arq.txt");
  for (i=1;i<=wendpoint;i++) { // lê caracter por caracter de meu_arq.txt
       bb = file.read();
       Serial.print(bb, DEC); 
       Serial.print("    ");
      }
      Serial.println();
  file.close(); // fecha arquivo

Este código funciona se eu ler o arquivo txt no PC a partir da porta serial ?

Este código é para ler o arquivo txt diretamente do cartão SD.

Alo Milton,

Este sketch, com as devidas modificações, poderia ler bytes em qualquer lugar do arquivo, como por exemplo, ler 30 bytes a partir do byte 500 do arquivo ?

Obrigado pela atenção

Acredito que se vc. modificar:

  file.seekSet(0);  // seekSet: em relação ao início do arquivo

Para:

  file.seekSet(500);  // seekSet: em relação ao início do arquivo

Vc. posicionaria no início de onde quer fazer a leitura.

E com um comando "For" que faça 30 incrementos, Vc. poderia transmitir somente os 30 que interessam. Se antes deste laço vc. enviar sequências de caracteres é possível que o PC consiga receber comando ou indicações do que está sendo processado no Arduino, acompanhado do código de quem entrou/saiu, etc...

Boa sorte.

 

 

Ok. Mais simples do que eu esperava. Vou testar oportunamente. Obrigado pela atenção. Um abraço.

Obrigado, Milton. Meu problema está resolvido. Isso aplica-se a solicitação do Edson. 

Edson, ficará legal, gravar os códigos do cadastro num TXT no Microsd no computador e atualizar sem alterar o código do arduíno.

Bacana isso hein???!!!!
Vc. coloca o cartão SD no gravador/leitor, "atualiza" (copia o arquivo para ele) e recoloca no shield do Arduino e pronto!!! Pode ser usado para muitas coisas interessantes.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço