Já à muito tempo que não mexia no meu Arduino e restantes sensores, mas agora que a faculdade terminou e que estou práticamente de “férias” voltei a ter algum tempo livre e vontade para fazer mais algumas evoluções e experiências.

O objectivo desta experiência era fazer a leitura das temperaturas do LM335A e guarda-las num ficheiro txt de modo a posteriormente com uma simples aplicação escrita em C (escolhi esta linguagem por ser a linguagem com que tenho mais à vontade neste momento e por ser relativamente fácil de manipular ficheiros txt) que faria a leitura dos dados guardados no ficheiro txt e calcularia algumas das estatísticas sobre esses mesmo dados guardados.

No entanto nem tudo tem sido assim tão fácil, pois guardar os dados num ficheiro txt automaticamente e e fazer com que eles sejam actualizados após determinado tempo não se revelou ser tarefa fácil, pelo que ainda ando à procura de uma solução para isso.

De momento estou a usar a aplicação Termite 2.8, tal como usei aqui: Projecto Robótica – Temperature Sensor LM335A – Leitura e Gravação de Dados   mas esta pequena aplicação não grava os dados automaticamente ao fim de determinado tempo, o que faz com que eu não tenha sempre os dados actualizados disponíveis no ficheiro para que a aplicação possa tratar esses dados.

Apesar destas dificuldades efectuei uma gravação de alguns dados recolhidos manualmente afim de começar a elaborar a aplicação em C, e o resultado que alcancei até agora, ainda que muito rudimentar é o seguinte:

O código fonte da aplicação é o seguinte:

#include
#include 
 
#define N 100
 
FILE *entrada;
float temperatura[N];
int num_linhas = 0, i;
 
lerficheiro()
{
    system("CLS");
 
    entrada=fopen("log.txt","r");
 
    if(entrada==NULL)
    {
        printf("Erro na abertura do ficheiro de entrada\n");
        system("pause");
    }
    else
    {
        while(fscanf(entrada, "Temperatura =    %f\n", & temperatura[i]) != EOF)
        {
            printf("Temperatura =   %f \n", temperatura[i]);
            num_linhas = num_linhas + 1;
 
            i++;
        }
 
        printf("\n\n");
        printf("Numero de Linhas = %d\n", num_linhas);
    }
}
 
int main()
{
    float soma_temp, temp_media;
    int j;
 
    lerficheiro();
 
    for(j = 0; j < num_linhas; j++)
    {
 
        soma_temp = soma_temp + temperatura[j];
        temp_media = soma_temp / num_linhas;
    }
 
    printf("\n\n");
    printf("A Temperatura Media e = %f", temp_media);
}

O código da aplicação ainda está muito pobre e provavelmente muito ineficiente, mas no futuro irei implementar mais funcionalidades assim como um MENU, de modo a tornar a aplicação mais completa e robusta.

Se alguém conhecer uma forma de automatizar a gravação e a leitura dos dados do Arduino + LM335A para o ficheiro txt agradecia que me indicasse essa forma de modo a eu poder evoluir o meu projecto.

Share

2 Responses to “Projecto Robótica – Arduino + Temperature Sensor LM335A – Leitura, Gravação de Dados e Estatísticas”

  1. Olá pq o meu esta dando erro na criação do ficheiro? Terei que fazer algo mais?

  2. Estás a escrever o ficheiro correctamente? Tens o seu caminho escolhido sem erros? Permissão do Windows Para a criação do Ficheiro?

    Cumprimentos

Leave a Reply