Montei um estação meteorológica com sensores BME280, GPS Neo-6M e SD-Card. Escrevi um sketch com vários exemplos que achei na internet e esta funcionando até que razoavelmente bem. Os dados são gravados no cartão, onde o nome dos arquivos vão mudando de acordo com o dia, ou seja, as 00:00 muda o nome do arquivo e então um novo arquivo é criado. Até tudo bem. Agora eu gostaria de que a cada arquivo criado, na primeira linha do arquivo fosse escrito também um cabeçalho. Me parece simples, não?? Mas aí foi que tudo deu errado. Coloquei um "if" para testar se o arquivo existia e caso não existisse então seria criado o arquivo e já inseria a primeira linha como cabeçalho, e no restante do dia seriam gravados os dados dos sensores normalmente. Mas ao aplicar esse "if" o restante dos dados não gravados no cartão. É isso que eu não entendi por que não esta gravando nada. Basta tirar o "if" e tudo volta a gravar normalmente. Segue o código, se alguém puder ajudar somente nesse detalhe da criação do arquivo com o cabeçalho eu já lhe agradeço de antemão.

Exibições: 118

Anexos

Responder esta

Respostas a este tópico

Boa noite  Sr. CCO, (se não gosta que te chame pelas iniciais, avise),

gostaria muito de te ajudar, mas para isto recomendo as seguintes ações:


1. Remova seu sketch da área de texto do seu tópico;

2Clique em : " Arquivos "  e depois anexe o arquivo  com o seu sketch;


3. Leia http://labdegaragem.com/forum/topics/sugest-o-de-como-postar


4. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer

     com cada linha e facilita a ajuda.

RV

Desculpe pelo uso indevido da área de posts. Já removi o sketch e adicionei como arquivo.
Obrigado.

Boa tarde CCO, 

obrigado pela compreensão.

Estava aguardando você corrigir para postar a minha sugestão.

Elá é exatamente da forma que o  Eduardo Henrique Marcondes postou.

RV

Ola.

Seria esse if(): ?
/*
if (!SD.exists(time_buf)){
myFile = SD.open("teste_A.txt", FILE_WRITE);
myFile.println("Est_01");
myFile.close();
} else {
Serial.println("Arquivo já existe");
}
*/

Se for reveja: Vc testa se o arquivo time_buf existe, se não existe cria o "teste_A.txt"). Acho que deveria ser o time_Buf.
De qualquer forma um jeito de rodear a questão seria criar um flag. Digo, uma variável, que indique que o arquivo é novo. Algo assim. 

Ficaria:

int flag=0;
if (!SD.exists(time_buf)) flag=1;
myFile = SD.open(time_buf, FILE_WRITE);
Serial.print("Gravando...");
if (flag==1) myFile.print("Est_01");

Ola Eduardo HM.
Fiz alguns teste e por isso na hora que colei aqui o arquivo me esqueci de tirar o "teste_A.txt". No teste_A.txt minha intenção era criar um arquivo sem vínculo algum com as variáveis que geram o nome do arquivo. O arquivo foi criado e ainda assim ficou sem conteúdo algum. O nome correto é sim o time_buf. como nas linha que vc colocou abaixo. De qualquer forma a ideia com uma flag testando o novo arquivo ainda não fiz, achei legal. Pode dar resultado. Vou testar assim que possível e coloco aqui o resultado. Muito obrigado. Cesar ;-)

RSS

© 2023   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço