ESP32-C6 na Prática: Log de dados no Google Sheets

Este post faz parte da série ESP32-C6 na Prática

Introdução

Neste artigo, mostraremos como registrar dados para o Google Sheets com a placa de desenvolvimento ESP32-C6 DevKitC-1 e a Arduino IDE.

Nosso projeto terá como objetivo enviar dados do sensor de temperatura e umidade DHT11 e registrar cada leitura com data e hora obtidas via servidor NTP. As medições serão realizadas a cada 10 segundos. Com os dados coletados, será possível gerar gráficos em tempo real para acompanhar a variação da temperatura e umidade ao longo do tempo.

Para conhecer mais a placa de desenvolvimento consulte nosso artigo Introdução à Placa ESP32-C6-DevKitC-1: Ideal para IoT

Crie uma conta de serviço

  1. Vá para Google Cloud Console. Você pode usar a conta principal do Google ou uma conta secundária somente para os projetos de IoT
  2. Crie um novo projeto ou escolha um projeto existente.
  1. Dê um nome ao projeto e clique em Criar.
  1. Na barra lateral esquerda, clique em Contas de serviço e Criar conta de serviço
  1. Insira um nome para sua conta de serviço e clique Criar e continuar .
  1. Em Permissões, selecione Proprietário e clique em Continuar
  1. Por fim, clique em Concluir

Crie uma chave

  1. Selecione o projeto, clique no ícone de três pontos e clique em Gerenciar chaves.
  1. Crie uma nova chave.
  1. Em seguida, selecione JSON e clique Criar para baixar um arquivo JSON no seu computador com a chave.
  1. Copie o Project_id , client_email e private_key do JSON porque você precisará deles mais tarde.

Ativar API do Google Sheet

Para ativar a API. Clique no link a seguir Google Cloud console e ativar API do Google Sheets, precisa estar na mesma conta que criou o projeto.

Ativar API do Google Drive

Você também precisa ativar a API do Google Drive para o seu projeto. Abra o seguinte link Google Cloud console e ativar a API do Google Drive.

Criar uma planilha do Google

Vá para a planilha do Google e Crie uma nova planilha. Dê um título à sua planilha. Por exemplo, ESP32C6. Em seguida, salve o ID da planilha que está na url para substituir no código.

Compartilhe a planilha com a conta de serviço

Para registrar dados nesta planilha, você precisa compartilhá-la com o email da conta de serviço. Você deve receber o email da conta de serviço no Arquivo JSON que você baixou anteriormente salvo no client_email.

No canto superior direito, clique em Compartilhar. Cole o email da conta de serviço e clique Enviar.

Instalação de Bibliotecas

Abra a Arduino IDE e siga os passos abaixo:

  1. Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas.
  2. Busque por ESP-Google-Sheet-Client by Mobizt
  3. Busque por DHT sensor library by Adafruit
  4. Busque por Adafruit Unified Sensor by Adafruit
  5. Instale a biblioteca mais recente

Você pode encontrar para informações sobre a biblioteca em https://github.com/mobizt/ESP-Google-Sheet-Client/tree/master

Materiais Necessários

Para desenvolver nossa aplicação os materiais utilizados foram:

  • Placa ESP23-C6 DevKitC-1
  • Cabo USB-C
  • Resistor 10k ohms
  • Sensor DHT11
  • Jumpers
  • Arduino IDE

Para configurar o ambiente e instalar o suporte a ESP32-C6 veja o artigo ESP32-C6 na Prática: Seu Primeiro “Hello World”

Circuito

Figura 1: Circuito desenvolvido

Código

No nosso bloco de setup fazemos a configuração da biblioteca para comunicar-se com o Google Planilha

  // Configura o callback para o status de geração do token de acesso da API do Google (apenas para depuração)
  GSheet.setTokenCallback(tokenStatusCallback);


  // Define os segundos para atualizar o token de autenticação antes de expirar (60 a 3540, o padrão é 300 segundos)
  GSheet.setPrerefreshSeconds(10 * 60);


  // Inicia a geração do token de acesso para autenticação da API do Google
  GSheet.begin(CLIENT_EMAIL, PROJECT_ID, PRIVATE_KEY);

Agora no nosso bloco de loop para envio dos dados a cada 10 segundos temos o seguinte trecho de configuração da biblioteca:

bool ready = GSheet.ready(); // Verifica se a planilha está pronta
// Os dados serão publicados na planilha em linhas
valueRange.add("majorDimension", "ROWS");
valueRange.set("values/[1]/[0]", time.date);
valueRange.set("values/[1]/[1]", time.hour);
valueRange.set("values/[1]/[2]", String(temp, 2));
valueRange.set("values/[1]/[3]", String(hum, 2));


// For Google Sheet API ref doc, go to https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append
// Adiciona os valores à planilha
bool success = GSheet.values.append(&response, SPREADSHEET_ID, String(sheetName) + "!A2", &valueRange);
    if (success) {
      response.toString(Serial, true);
      valueRange.clear();
    } else {
      Serial.println(GSheet.errorReason());
    }
    Serial.println();
    Serial.println(ESP.getFreeHeap());

Assim, caso deseje adicionar mais dados, basta adicionar valueRange.set(“values/[1]/[4]”, String(DadoAdicional));

O código completo pode ser acessado em: https://github.com/guilhermefernandesk/ESP32-C6/blob/main/espDataLogging/espDataLogging.ino

Resultados

Abra a planilha onde você está publicando os valores. Você deve ver novos valores sendo publicados em tempo real. A primeira coluna contém a Data, depois a Hora, Temperatura em graus Celsius, e, finalmente, a Umidade em porcentagem.

Conclusão

Neste artigo, mostramos como registrar dados na placa ESP32-C6 DevKitC-1 por meio da biblioteca ESP-Google-Sheet-Client. Essa abordagem permite gerar dados dinâmicos e entender como o hardware está se comportando. 

Convidamos você a explorar outras aplicações integrando o Google Sheet, como: Automação de relatórios, Monitoramento de indicadores de desempenho, entre outros.

Sinta-se à vontade para compartilhar seus resultados com a comunidade, seja por artigos, vídeos ou repositórios abertos. Sua experiência pode inspirar e auxiliar muitos outros desenvolvedores.

Referências

Introdução à Placa ESP32-C6-DevKitC-1: Ideal para IoT

ESP32-C6 na Prática: Seu Primeiro “Hello World”

https://github.com/mobizt/ESP-Google-Sheet-Client/tree/master

https://github.com/guilhermefernandesk/ESP32-C6/blob/main/espDataLogging/espDataLogging.ino

ESP32-C6 na Prática

ESP32-C6 na Prática: Provisionamento de Wi-Fi via Bluetooth Low Energy ESP32-C6 na Prática: Log de dados com Banco de Dados
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Internet Das Coisas » ESP32-C6 na Prática: Log de dados no Google Sheets

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: