Projecto Robótica – Arduino + Temperature Sensor LM335A – Leitura, Gravação de Dados e Estatísticas
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
Março 17th, 2013 at 3:29 pm
Olá pq o meu esta dando erro na criação do ficheiro? Terei que fazer algo mais?
Março 17th, 2013 at 6:33 pm
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