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