Importando os dados do Data logger em uma planilha - Arduino e Cia
O data logger shield Arduino
Vamos apenas fazer um resumo rápido do Data Logger Shield Arduino, que é uma placa com slot para cartão SD, um botão de reset, suporte para bateria, leds indicadores de funcionamento e uma pequena área de prototipagem, caso você queira montar um projeto de forma permanente:
A placa tem um chip RTC (Real Time Clock ou Relógio de Tempo Real) bem conhecido, o DS1307, que fornece as informações de data e hora, básicas em qualquer projeto de data logger.
Usando o data logger com sensor de temperatura DHT11
Nesse teste vamos usar o datalogger com Arduino Uno, lendo e armazenando os dados de um dos sensores mais comuns: o sensor de temperatura DHT11.
Vamos conectar o sensor de temperatura no pino analógico A0 do Arduino, conforme a imagem abaixo:
No slot para cartão SD, coloque um cartão formatado com FAT32.
Programa Arduino Datalogger com DHT11
Vamos utilizar a biblioteca DHT11, que você pode baixar à partir da própria IDE do Arduino, em Sketch -> Incluir Bibliotecas -> Gerenciar bibliotecas. Procure por DHT11 e selecione a biblioteca DHT Sensor by Adafruit, clicando em Instalar:
Faça o mesmo procedimento para a biblioteca RTCLib, também da Adafruit:
No programa, vamos ler a hora do DS1307, depois as informações de temperatura e gravar isso no arquivo dados.csv. Essa leitura será feita a cada 10 segundos nos nossos testes, mas altere a linha 90 do programa para definir o intervalo de medição de sua preferência:
//Programa: Data logger com sensor de temperatura DHT11
//Definicoes do sensor de temperatura DHT11
#define DHTPIN A0 //Pino de conexao
#define DHTTYPE DHT11 //Tipo de sensor
DHT dht(DHTPIN, DHTTYPE); //Cria objeto DHT
Serial.println("Data logger com sensor de temperatura DHT11");
//Le as informacoes da temperatura
//Le as informacoes do RTC
//Serial monitor informacoes de hora
Serial.print(now.hour() < 10 ? "0" : "");
Serial.print(now.minute() < 10 ? "0" : "");
Serial.print(now.second() < 10 ? "0" : "");
Serial.println(t, 0);
//Gravacao do cartao
file = SD.open("dados.csv", FILE_WRITE);
file.print(t, 0);
//Delay ate a proxima leitura
Se você acompanhar o processo no Serial Monitor, verá uma tela como essa:
E abrindo o arquivo dados.csv em um editor de textos comum, verá os dados armazenados no formato abaixo separado por vírgulas, característico de um arquivo CSV:
Para facilitar o processo de importação, coloquei apenas a hora e o valor da temperatura que foi lida naquele momento. Você pode colocar também a data com dia, mês e ano, além da umidade medida pelo DHT11.
Importando os dados para o Google Sheets
O processo de importação do arquivo CSV para o Google Sheets (ou Planilhas Google, em português) é bem simples, e em poucos passos você terá um gráfico com os dados coletados. Antes de mais nada, retire o cartão SD do data logger e coloque no seu computador.
Crie uma nova planilha no Google Drive, dando a ela um nome qualquer. No menu da planilha, clique em Arquivo e em seguida em Importar:
Na janela que abrirá em seguida, selecione Upload e arraste para essa janela o arquivo dados.csv:
Após o upload, será aberta uma tela de opções perguntando se vc deseja criar uma nova planilha ou substituir essa já existente. Selecionamos as opções abaixo:
Clique em Importar Dados e a sua tela ficará mais ou menos assim:
Para gerar o gráfico, selecione todos os dados das duas colunas....
E em seguida clique em Inserir -> Gráfico:
Pronto. Seu gráfico foi gerado!
Como comentei acima, este é um gráfico bem simplificado que usa apenas os dados de hora e temperatura, mas você pode inserir outros dados no arquivo CSV, separando o gráfico por dia, mês, ano, etc, de acordo com as necessidades do seu projeto.
Carlos Bruni 30 de novembro de 2018 15:31
Parabéns pelo post está bem explicado.
Percebi que utilizou um delay de 10 s e pergunto: como salvar no sdcard apenas de 10 em 10 min, estou trabalhando em uma estação meteorológica e os dados são visualizados pelo público de de 10 em 10s ? Grato
Arduino e Cia 3 de dezembro de 2018 22:15
Obrigado! Para salvar de 10 em 10 minutos, substitua o comando delay(10000) na linha 90 por delay(600000).
Guilherme Ribeiro 1 de dezembro de 2018 00:11
Utilizei isso para salvar muitas horas dos 16 dados captados para meu TCC. Boa dica para quem precisar salvar dados experimentais.
Arduino e Cia 3 de dezembro de 2018 22:12
Alvaro Cardoso 5 de dezembro de 2018 04:37
Olá, Estou terminando um trabalho de TCC na área de arduino e preciso do nome de quem publica as postagens, se possível mandar um e-mail para contato para que possa obter dados e colocar como referências, Obrigado
Arduino e Cia 5 de dezembro de 2018 07:56
Obrigado. Por favor entre em contato utilizando o formulário de contato no lado direito da página ("Fale com o administrador"). Conversamos por email.
Unknown 11 de abril de 2019 15:03
Oi, por favor.Como eu faço para setar a data e hora pelo monitor serial??
Augusto 13 de abril de 2019 15:37
Adilson, posso colocar dois sensores de umidade e temperatura? Como ficaria na programação?
Pode sim, e é bem tranquilo. Faça o mesmo esquema mas ligue o pino de sinal na porta A1, por exemplo.