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.
Tags:
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;
2. Clique 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 ;-)
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por