sexta-feira, 11 de maio de 2018

Software Datalogger Arduino A0.2 - Construindo um Datalogger com Arduino - Parte 7



Bom, como prometido eu fiz diversas mudanças que otimização o nosso datalogger, de forma que o código faça mais sentido, abra menos o nosso arquivo e que seja bem mais flexível. Importante salientar que não houve nenhuma mudança física, e apenas de já evoluído, eu gostaria de fazer mais ajustes antes de dizer que o código está realmente polido, apesar de viável.

No post anterior da série, eu pontuei algumas mudanças que gostaria, vou comentar o que já foi feito como mudança.

Verificações iniciais: A apresentação na serial foi polida, de forma que não gere diversas linhas com afirmativas ou negativas. Sendo assim para indicar que tudo foi iniciado é gerado apenas uma linha: SD OK - INICIANDO. Outra mudança era nessa apresentação de setup referente a OLED, em que eu citei uma apresentação melhor e que talvez tenha uma imagem, já que um melhor visual era desejado. Isso também foi feito, ao ligar um simples texto aparece na tela, na parte superior em amarelo, SD OK ou SD ERRO. Na parte azul abaixo fiz de qualquer forma um logo, essa apresentação de fácil leitura e com uma imagem visual ficou bem agradável. O tempo também para a visualização está adequado e pode ser modificado, atualmente está em no mínimo cinco segundos.

Cabeçalho: Antes ocorria uma abertura desnecessária para gravação de cabeçalho, além de uma verificação não necessária. Essa verificação foi deletada, atualmente nosso arquivo gerado não possui cabeçalho.

Millis(): Esse era nosso maior problema, pois os intervalos dentro do loop estavam sendo controlados por meio de delay, o que não deixava o código flexível. Atualmente o código é gerado apenas por um Millis, então até gerenciar o intervalo entre as gravações está mais simples, e adicionar um botão também.
if(tempoAtual - tempoAntigo > 10000)

Formatação de gravação: Essa parte de melhorar a forma de gravação no SD, por meio de matriz ou concatenação fica ainda para a próxima versão.

Segunda verificação: Essa verificação também não fazia sentido e era redundante, o nosso arquivo era aberto para gravação, ocorria e gravação e logo em seguida ele era fechado. Então logo depois era aberto de novo e fechado, para gravar uma informação se ele abre ou não, ora, porque eu não gravei a variável na abertura para a gravação né. De qualquer forma o nosso programa verificava um vez se o SD estava conectado, e depois verificava a cada loop se o arquivo abria, duas vezes. E se o SD funcionava, o arquivo abria e não gravasse nada?
Agora o sistema é muito mais esperto, ele verifica se a quantidade de bytes do arquivo após a gravação é superior a antes da gravação, ou seja, se alguma coisa foi gravada. Se for ele grava true na variável que pode ser usada para diversos controles. Acredito que houve uma melhora nessa verificação, mesmo que depois ele possa verificar se a parte escrita realmente foi a parte correta, e não simplesmente algo.

Apresentação OLED: Nessa parte eu queria todos os dados em uma tela, sem que tivesse mais de um lcd.clear(), com uma apresentação gráfica mais legal. Essa parte foi feita entre partes. Atualmente existe um cabeçalho, com duas informações, se o arquivo está abrindo e se houve gravação, apresentados por meio de imagem.
O problema é que atualmente as duas imagens se referem apenas a se o tamanho do arquivo aumentou, para mostrar as duas informações é simples, basta mais uma variável e um if. Mas por experiência ambos apresentam erro juntos. E se a gravação do arquivo não está ocorrendo nada mais importa, então acredito que vou deixar apenas a informação do tamanho do arquivo. Os demais dados se apresentação na parte azul, que com fonte pequena conseguem ser mostrados ao mesmo tempo.
Essa parte da OLED ainda será muito trabalhada.

Repetição do arquivo: Será trabalhado apenas no futuro.

Novos atuadores: LEDs, Buzzer, e demais atuadores serão implantados no futuro. O LDR também será inserido em breve.

Acredito que é isso, quando ocorrer mais mudanças eu comento o código por inteiro.

Link para download: CLIQUE AQUI

Nenhum comentário:

Postar um comentário