ESP32 - Banco de Dados com Google Planilhas

Fala galera!

Vamos aqui com mais uma postagem! Dessa vez vamos mostrar como usar guardar dados gerados do ESP32 em banco de dados. 👌 

Para teste inicial de envio de dados com nosso componente, iremos integrá-lo com o Google Planilhas e, para isso, precisaremos de uma conta na Google. Nela iremos precisar criar dois arquivos: Planilhas Google e Formulários Google.

Para isso, vá no Google Drive, clique em 'Novo' e em Planilhas Google:


Altere o nome de sua planilha:


Agora é preciso criar o Formulário Google:


Altere o nome do seu formulário criado:



Em nosso formulário existe a parte das 'Perguntas' e das 'Respostas'. Sendo as 'Perguntas' nossas colunas e as 'Respostas' nossas linhas. 

Agora iremos criar nossa primeira pergunta. Clique para alterar o titulo e coloque Temperatura, clique em 'Multipla Escolha' e selecione 'Resposta Curta'. Altere a validação da resposta e deixe como: 'Número' e 'É um número'. No fim sua primeira pergunta deve ficar assim:


Criaremos a segunda pergunta para a 'Umidade' agora. O resultado deve ficar igual a imagem a seguir:


Já estamos com nossas perguntas prontas!!! 😄
Agora iremos criar nossas respostas. Clique na guia 'Respostas', no botão 'três pontos' e clique em 'Selecionar destino da Resposta'.



Clique em 'Selecionar planilha existente' e selecione a planilha que criamos anteriormente:




Agora podemos clicar no botão 'Olho' para enviar dados e verificar na planilha:



Com nossos testes finalizados, vamos agora fazer com que nosso componente envie os dados para a planilha. Para isso teremos que utilizar o seguinte código:

#include 
#include 

WiFiClientSecure client;//Cria um cliente seguro (para ter acesso ao HTTPS)
String textFix = "GET /forms/d/e/1FAIpQLSdfY2VjWF_7wBupYlUC61Yju5Dpr1WF5jcUP4XTMojEDd6FTA/formResponse?ifq";

//Essa String sera uma auxiliar contendo o link utilizado pelo GET, para nao precisar ficar re-escrevendo toda hora

#define DHTPIN 23 // pino de dados do DHT11
#define DHTTYPE DHT11 // define o tipo de sensor, no caso DHT11

DHT dht(DHTPIN, DHTTYPE);

float umidade;
float temperatura;

void setup()
{
  Serial.begin(115200);//Inicia a comunicacao serial

  dht.begin();


  WiFi.mode(WIFI_STA);//Habilita o modo estaçao
  WiFi.begin("REDE_WIFI", "SENHA");//Conecta na rede

  delay(2000);//Espera um tempo para se conectar no WiFi

}


void loop()
{
  umidade = dht.readHumidity();
  temperatura = dht.readTemperature();

  if (isnan(temperatura) || isnan(umidade))
  {
    Serial.println("Falha ao ler DHT");
  }
  else
  {
    Serial.print("Umidade: ");
    Serial.print(umidade);
    Serial.print(" %\t");
    Serial.print("Temperatura: ");
    Serial.print(temperatura);
    Serial.println(" *C");
    if (client.connect("docs.google.com", 443) == 1)//Tenta se conectar ao servidor do Google docs na porta 443 (HTTPS)
    {



      String toSend = textFix + "&entry.1157174852=" + umidade + "&entry.622603246=" + temperatura; //Atribuimos a String auxiliar na nova String que sera enviada
      toSend += "&submit=Submit HTTP/1.1";//Completamos o metodo GET para nosso formulario.

      client.println(toSend);//Enviamos o GET ao servidor-
      client.println("Host: docs.google.com");//-
      client.println();//-
      client.stop();//Encerramos a conexao com o servidor
      Serial.println("Dados enviados.");//Mostra no monitor que foi enviado
    }
    else
    {
      Serial.println("Erro ao se conectar");//Se nao for possivel conectar no servidor, ira avisar no monitor.
    }

  }
  delay(5000);
}

Sendo a linha 

String textFix = "GET /forms/d/e/1FAIpQLSdfY2VjWF_7wBupYlUC61Yju5Dpr1WF5jcUP4XTMojEDd6FTA/formResponse?ifq";

Pega ela url do nosso form
e preencher com o texto de "/form" até antes de "/viewform" e completar com "formResponse?ifq"

e as linhas

String toSend = textFix + "&entry.1157174852=" + umidade + "&entry.622603246=" + temperatura; //Atribuimos a String auxiliar na nova String que sera enviada

Pegar dos names dos campos dos formulários
ao apertar "inspecionar" nos campos e colocar relacionando as correspondentes.


Com isso, o projeto está pronto para que os dados sejam inseridos na sua planilha.
Nisto trabalhamos tanto a função APP+Nuvem quanto um banco de dados básico.

Comentários

  1. Funcionou perfeitamente no meu esp32 mas devido alguns problemas recentes tive que trocar para uma ethernet shield 5100, fiz alguns ajustes mas não funcionou. ele manda a mensagem que os dados foram enviados mas não aparece na planilha. sabe como fazer funcionar com o shield?

    ResponderExcluir
    Respostas
    1. Será que não foi para outro lugar, acesse o form do google pelo navegador e veja nas configurações para onde está indo

      Excluir
  2. Boa noite, ótimo post, mas não consigo encontrar o name quando procuro em inspecionar pode me ajudar?

    ResponderExcluir
    Respostas
    1. Clica pra inspecionar e depois pressiona ctrl+f, vai aparecer uma barra de pesquisa vc digita "entry." vai te levar direto pro nome dos itens.

      Excluir
  3. O que foi incluiu nos includes? Um é a bb do DHT e a outra?

    ResponderExcluir

Postar um comentário