quinta-feira, 2 de maio de 2019

Banco de Dados com ESP32

Fala aí pessoal!

Tudo beleza?

Nesse post vou mostrar como podemos montar um banco de dados usando o ESP32 e coletando os dados do DHT11

Para começar é necessário que você crie um formulário do Google e uma planilha do Google.

Primeiro passo crie uma planilha e coloque o nome como coleta de dados ou algo do tipo.

Após isso crie um formulário, coloque um título e crie duas perguntas, uma pra temperatura e uma para umidade. Coloque as duas como respostas curtas.
Ainda no formulário, vá na aba respostas e vincule sua planilha com o formulário.

Perfeito! A conexão entre planilha e formulário está feita. Se quiser preencha os resultados e envie uma resposta como teste.

Esse é o código que usaremos no ESP32:

**AVISO: NÃO COPIE E COLE ESSE CÓDIGO DIRETO, POIS, É NECESSÁRIO QUE ALTEREM ALGO**

#include <WiFi.h>
#include <DHT.h>
#include <WiFiClientSecure.h>

#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;


WiFiClientSecure client;//Cria um cliente seguro (para ter acesso ao HTTPS)
String textFix = "GET /forms/d/e/1FAIpQLSct2cvJhOekJ_IjGsDujEln1H6EYdm0qbkU_3p9Kfrv4-ZGQ/formResponse?ifq";
//Essa String sera uma auxiliar contendo o link utilizado pelo GET, para nao precisar ficar re-escrevendo toda hora


void setup()
{
    Serial.begin(115200);//Inicia a comunicacao serial
    dht.begin();
    WiFi.mode(WIFI_STA);//Habilita o modo estaçao
    WiFi.begin("SUA REDE", "SENHA DA SUA REDE");//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("Failed ao ler DHT");
  }
  else
  {
    if (client.connect("docs.google.com", 443) == 1)//Tenta se conectar ao servidor do Google docs na porta 443 (HTTPS)
    {
        String toSend = textFix+"&entry.250814549="+umidade+"&entry.179559370="+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);
}


As partes que estão Vermelhas é necessário adaptar.

Para conseguir essas informações faça o seguinte:

Abra seu formulário e pegue o endereço dele todo entre “docs.google.com” e “/viewform” e substitua onde está a função GET.

Para pegar o campo de referencia das respostas é necessário pegar o nome do campo na programação fonte do formulário.

Clique com o botão direito e de um inspecionar elemento, abrirá uma janela com o código HTML do form. Procure o campo das respostas e cole na programação do ESP.

Pronto! Está feito nosso Banco de Dados para coletas.

Se deixar o código rodando com a planilha aberta você verá que as linhas serão inseridas manualmente.

Faça um teste, coloque um isqueiro próximo do DHT11 (Cuidado para não se queimar ou queimar o sensor).

E é isso! Caso tenha alguma dúvida dê uma olhada nas postagens anteriores, caso não encontre a resposta, deixe um comentário.

Divirtam-se!

Nenhum comentário:

Postar um comentário