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.
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?
ResponderExcluirSerá que não foi para outro lugar, acesse o form do google pelo navegador e veja nas configurações para onde está indo
ExcluirBoa noite, ótimo post, mas não consigo encontrar o name quando procuro em inspecionar pode me ajudar?
ResponderExcluirClica pra inspecionar e depois pressiona ctrl+f, vai aparecer uma barra de pesquisa vc digita "entry." vai te levar direto pro nome dos itens.
ExcluirO que foi incluiu nos includes? Um é a bb do DHT e a outra?
ResponderExcluir