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
- Vá para Google Cloud Console. Você pode usar a conta principal do Google ou uma conta secundária somente para os projetos de IoT
- Crie um novo projeto ou escolha um projeto existente.
- Dê um nome ao projeto e clique em Criar.
- Na barra lateral esquerda, clique em Contas de serviço e Criar conta de serviço
- Insira um nome para sua conta de serviço e clique Criar e continuar .
- Em Permissões, selecione Proprietário e clique em Continuar
- Por fim, clique em Concluir
Crie uma chave
- Selecione o projeto, clique no ícone de três pontos e clique em Gerenciar chaves.
- Crie uma nova chave.
- Em seguida, selecione JSON e clique Criar para baixar um arquivo JSON no seu computador com a chave.
- 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:
- Vá em Sketch > Incluir Biblioteca > Gerenciar Bibliotecas.
- Busque por ESP-Google-Sheet-Client by Mobizt
- Busque por DHT sensor library by Adafruit
- Busque por Adafruit Unified Sensor by Adafruit
- 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
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






