Boa tarde pessoal,

Estou querendo pegar dados do sd card , que seria um arquivo txt normal , dois numeros, separados por virgula, e de alguma forma separar esses dois numeros em um array ou duas variaveis para que eu possa enviar para um servidor, tem como fazer essa varredura no txt e separar os dados?

Pessoal, alguem já fez algo do tipo?

obrigado!

Exibições: 2758

Responder esta

Respostas a este tópico

diga exatamente o que vc não está sabendo fazer? sua dificuldade está apenas em pegar o conteúdo do arquivo txt e quebrar esse conteúdo onde ocorrer a vírgula?

ou vc também não sabe enviar pro servidor?

ali no servidor existe o que pra receber a variável? é um script (php, asp, java, etc)?

como vc pretende enviar os dados? é um arduino + ethernet shield ou vc pretende mandar de outra forma?

explique melhor pra podermos te dar idéias

sim minha dificuldade é realmente pegar o conteúdo, por exemplo no arquivo.txt :   valores : 23 , 25

quero pegar identificar esses valores e guardar num vetor ou variavel, o 23 e 25(varrendo linha por linha , identificando , guardando  e enviando outras variaveis possiveis da contagem de um sensor de vazao), o método de postar eu já sei fazer, estou ate usando um script php.

Estou usando arduino mega 2650 e shield wifi cc3000.

obrigado pelo feedback, e pela vontade de me ajudar :)

será o seguinte, vou postar esses valores do sensor no meu servidor, caso perca conexao, o sd ira guardar esses dados, depois de voltar a conexão, como despacho o que tem no sd que estava guardando as informações quando esta sem conexao, para o servidor, entendeu

vai nesse link pra aprender a fazer leitura. Não tem segredo.

Eu não sei mexer com esse wifi shield cc3000,só com o ethernet shield. Mas se fosse fazer pelo ethernet shield vc teria que tratar de usar o exemplo webclient como base, bastando apenas alterar o alvo da sua conexão (no caso o IP do servidor + caminho até o script php). Precisa também fazer enviar linha por linha aquilo que foi lido do cartão SD através de requisição GET ou POST (vc que escolhe)

Outra coisa que seria legal, caso seja pertinente, é acoplar um módulo RTC para ser possível registrar a hora da leitura. Dessa forma, vc teria capacidade de saber as tais vazões nos diferentes horários.

Quanto à quebra dos valores nas posições onde ocorrerem vírgulas: eu faria o envio da linha inteira dos dados pro servidor, e no script php é que eu faria a quebra em variáveis. No php, basta dar um $array = explode ("," , $StringEntrante)

Exemplo: http://IPdoServidor/PathAteOScript/script.php?dado=20150430190400,23,25

Sendo assim, o primeiro parâmetro seria a data/hora no formato YmdHis,  o segundo parâmetro seria o primeiro sensor e o terceiro parâmetro seria o segundo sensor

Após o envio e gravação dos dados com sucesso no servidor, seria conveniente apagar a linha do cartão SD para que não ocorra reenvio

Você deu um esclarecida muito boa da parte do php,

voce souberia me mostrar como faço para acessar linha por linha, e depois deletar as mesma já lidas? pode ser como ethernet sem problemas, depois eu faço conversão para o cc3000.

A parte de postar no server ja esta pronta e funcionando, rtc tambem OK,  o que esta me pegando é essa parte do sd card que te perguntei mesmo, e obrigado pela ajuda está sendo bem esclarecedora!

Sugiro você salvar cada medição em um arquivo cujo nome seja baseado na hora e data fornecida pelo RTC. Eu gosto do formato YYYYMMDD_hhmmss.txt para ser fácil ordenar.

Deste modo, na hora que houver a conexão, basta fazer um loop onde, em cada ciclo aconteça:

 - abrir arquivo

 - ler conteudo

 - enviar informação ao servidor

 - apagar o arquivo que acabou de ser lido

Espero ter ajudado.

Boa sorte!

  'Eiju

Olha aí a bela idéia do Eiju...

é melhor realmente fazer desse jeito que foi sugerido, isto é, de gerar um arquivo a cada leitura.

Dessa forma, economiza-se também em linhas de código do sketch, pois vc não teria o trabalho de ler linha e apagar após o envio.

Certo mas ainda a questão não me foi respondida, como saberia me dizer como consigo enviar essa linha? acessar o sd , o arquivo, e pegar essa linha?

é isso que to querendo saber

Tem diversos tutoriais na net. Ontem mesmo eu sugeri esse:

http://www.seucurso.com.br/index.php?option=com_content&view=ar...

Alguem teria ideia? estou a procura mas sem sucesso.

Você precisa organizar os dados conforme o Celso disse, ou mesmo acumular as informações e registrar data e hora das suas informações.

Bom, eu não consigo testar nem montar isso agora, mas segue alguns links que você pode usar como referencia.

Você armazena as informações em um arquivo de texto da forma como quiser > registra as informações em uma base de dados mysql, não sei qual é o volume de informações que você grava e nem quanto é o tempo que você pode ficar sem conexão, então pensei que você pode fazer o post de um array de dados com todas as informações do arquivo, e ao ter sucesso no envio, esvaziar o arquivo.

1 - gravar informações em arquivo de texto: http://www.arduinoecia.com.br/2014/11/gravando-dados-arduino-cartao...

2 - Gravar as informações em um banco de dados MySQL: http://forum.arduino.cc/index.php?topic=301354.0

3 - Fazer Post de um array em php http://stackoverflow.com/questions/11676011/post-array-from-html-form

Boa sorte.

Parceiro, obrigado pela atenção, como eu disse antes, a parte de gravar arquivo txt esta OK, a parte do banco de dados esta OK, a parte do php está OK, o problema é eu dar um arquivo.open e conseguir diferenciar linha por linha, e pegar os valores de cada, para guarda em algum lugar que posteriormente um determinado tempo vou mandar, entao o problema é identificar as linhas, pega o conteudo de cada,  e guardar em uma variavel.

att.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço