Go Down

Topic: Duvidas com Array de tags RFID (Read 116 times) previous topic - next topic

ft7

Amigos, sou iniciante, podem me tirar uma dúvida?

Andei vendo alguns exemplos como esse:

Code: [Select]
char* myStrings[]={"This is string 1", "This is string 2", "This is string 3","This is string 4", "This is string 5","This is string 6"};

Gostaria de saber qual seria a maneira mais fácil de armazenar tags RFID em um Array como esse para posteriormente usá-las.

Minha ideia é guardar várias tags de cartões RFID, cada uma em uma posição do array, como se fosse um processo de gravação de novas tags.

Após feito isso, eu precisaria extrair cada tag para utilizá-las em um IF, pois a cada tag nova adicionada, deve ser adicionado uma espécie de lógica OR com as antigas, para todas serem válidas.

Esclarecendo ainda mais:

Tenho esse trecho do código
Code: [Select]
for (int i = 0; i < length; i++) {
    mensagem += (char)payload[i];
  }
  cadastro = mensagem;


onde "cadastro" corresponde a uma string formada por uma tag RFID.

preciso colocar cada novo "cadastro" em uma posição de um array, para depois fazer isso:
Code: [Select]
if ((conteudo.substring(1) == "0A 02 0C 1E")||(conteudo.substring(1) == (posições do array)))

Porém não consigo imaginar em como:

1 - Armazenar uma tag em uma posição de um array
2 - Como retirar o conteúdo desta posição
3 - Fazer que esse processo de gravação seja automático
4 - Se existir uma lógica melhor pra fazer isso, estou aberto à sugestões
5 - 0A 02 0C 1E representa as tags fixas que já foram inseridas via programação
6 - posições do array refere-se às novas tags que foram cadastradas e estão teoricamente em posições de um array

yago4xd

Qual placa está usando como arduino?
Quantas TAGs pretende cadastrar ao longo do uso da utilização da placa?

Não sei se entendi direito, mas vc pretende cadastrar novos cartões conforme lê-las, certo?
Imaginou o que a aconteceria se caísse a alimentação da placa? Ocorreria uma perda de todos os cards.

Tenho um sistema parecido na empresa, onde utilizo a memória EEPROM para armazenar os dados dos novos cartões. Pode ser uma opção, mas depende da quantidade de cards que será utilizado (devido a capacidade de memória EEPROM da placa)

ft7

Qual placa está usando como arduino?
Quantas TAGs pretende cadastrar ao longo do uso da utilização da placa?

Não sei se entendi direito, mas vc pretende cadastrar novos cartões conforme lê-las, certo?
Imaginou o que a aconteceria se caísse a alimentação da placa? Ocorreria uma perda de todos os cards.

Tenho um sistema parecido na empresa, onde utilizo a memória EEPROM para armazenar os dados dos novos cartões. Pode ser uma opção, mas depende da quantidade de cards que será utilizado (devido a capacidade de memória EEPROM da placa)

Obrigado por responder amigo. Verdade, realmente existe esse detalhe. Estou usando a placa NodeMCU 1.0.

A ideia seria armazenar um número intermediário de cards, por exemplo 100. Acho que seria muito para a EEPROM não é?

bubulindo

Não me parece que o NodeMCU tenha EEPROM...

Acho que estás a usar strings (a tua matriz myStrings) e Strings (a variável conteudo)... Se pesquisares nos metodos da classe String, creio que existe uma maneira de transformar uma string em String. Para isso usas o index que pretendes transformar.





This... is a hobby.

hugo007

Se estiveres a usar um ESP8266 procura por SPIFFS . O ESP não tem EEPROM, mas sim uma emulação na memoria flash
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

ft7

Não me parece que o NodeMCU tenha EEPROM...
Acho que estás a usar strings (a tua matriz myStrings) e Strings (a variável conteudo)... Se pesquisares nos metodos da classe String, creio que existe uma maneira de transformar uma string em String. Para isso usas o index que pretendes transformar.
Realmente é verdade, ele não possui. De fato a variável conteudo é uma String, mas sou muito ruim em programação, ainda mais orientada à objetos e não sei muito bem como manipulá-la. Por isso eu gostaria se possível de uma maneira mais simples, por exemplo, guardar as tags em um SD, sendo cada tag uma linha e depois pudesse lê-las, ou algo assim.

Se estiveres a usar um ESP8266 procura por SPIFFS . O ESP não tem EEPROM, mas sim uma emulação na memoria flash
Realmente muito interessante esse SPIFFS! Parece ser bem útil para fazer um datalogger. Por eu não ser muito bom em programação estou tendo um pouco de dificildades de fazer a escrita e depois a leitura por este método, mas msm assim obrigado.

Go Up