Crescer (fundo transparente)_Negativo_pn
  • Cristiano Zanini Nazário

Google Sheets e ESP32 enviando Email e SMS

Atualizado: 20 de abr.

Para quem já desenvolveu algum modelo de negócio, sabe que o ideal seria ter uma boa quantidade de dinheiro e grande tempo de estudo e testes. É uma pena que na grande maioria ou totalidade, esta possibilidade não exista. Daí vem a popularidade de algo com o Arduino, pois mesmo que o microcontrolador usado na placa seja mais caro que outros, a curva de aprendizado é muito menor. A quantidade de exemplos disponíveis é alta e crescente, possibilitando uma grande redução no custo e no tempo de pesquisa.

Nós da Crescer somos entusiastas da criação de Modelos de Negócio e estamos sempre buscando formas de reduzir os custos de implantação, sendo via custos de hardwares, ou sendo por redução da curva de aprendizado tecnológica, daí a criação de blogs e vídeos no YouTube para divulgação do que vamos descobrindo e criando.


Avalie-nos no google para que possamos alcançar e auxiliar cada vez mais pessoas a fazerem seus projetos e produtos! Contamos com você!




Agora vamos lá para mais um excelente aprendizado aqui no blog.


Passo a Passo:

  1. Relembrando o primeiro blog sobre Google Sheets.

  2. Parte do código no Script do Google Sheets.

  3. Parte do código no ESP32.

  4. Enviando por e-mail.

  5. Enviando por SMS.

1 - RELEMBRANDO O PRIMEIRO BLOG SOBRE GOOGLE SHEETS


Tudo começa quando conseguimos enviar dados para o Google Sheets através do ESP32 podendo ser visto no blog do link https://www.crescerengenharia.com/post/aprenda-como-usar-o-esp32-para-publicar-dados-no-google-sheets. Nele mostramos os primeiros passos de criação de uma planilha no Google Sheets que terá uma macro interna, esta macro será chamada pelo ESP32 e tudo o que estiver programado nela, rodará mesmo que a planilha não esteja aberta em nenhum computador. Isto é poderoso!!


Desde que publicamos este blog, muitas pessoas acessaram e criaram modelos de negócios com este conceito, da parte da Crescer, já fizemos algumas POCs (Proof of Concept – prova de conceito) que evidenciaram o funcionamento do hardware e viabilizam sua aplicação. E também temos clientes que estão iniciando seu modelo de negócio no próprio Google Sheets e migrarão somente quando a ferramenta não comportar mais o negócio.


Agora, a partir do momento e que você envia dados para o Google Sheets, a próxima questão será, posso via a planilha, ligar ou desligar algo no meu ESP32 ou no meu Arduino?


A partir daí criamos o vídeo Google Sheets enviando comandos para o Arduino e o ESP32 do link https://youtu.be/AFEt6KSC51g.


Neste vídeo inserimos uma aba no Google Sheets onde parametrizamos limites de controle,


Já deixei os e-mails e o número de celular para serem usados depois, mas o que criei para este vídeo foi um limite superior para a coluna C, um limite superior para a coluna D e outra para a E. Neste contexto posso mudar de “sup” para “inf” e alterar o comportamento para limite inferior, mudando os valores terei o funcionamento desejado.


Neste caso, estou fazendo uma comparação na própria macro entre os últimos valores que vieram e os limites configurados conforme a comparação, eu monto uma String que retornará ao ESP32, e com esta String ele toma as decisões.


Para que estas evoluções comecem a ocorrer, vamos precisar descer o nível nos scripts do Google Sheets e entender um pouco e não mais somente copiar e colar códigos... Lembrando que tudo começa no primeiro blog do Google Sheets...


2 - PARTE DO CÓDIGO NO SCRIPT DO GOOGLE SHEETS


Somente trazendo os dados do ESP32 é o seguinte código,


Agora para fazer a avaliação e montar a String, temos


No vídeo comentado acima, tem um link na descrição para baixar o código completo, sendo que os principais trechos, comentarei aqui. As funções nas linhas com barras duplas serão para enviar e-mail e SMS que explicarei depois.


Na linha abaixo, busca na planilha “Infos” célula B2 e depois a C2


Depois usamos isto nas lógicas de “if” e “else” abaixo para montar a String result:


Então neste primeiro select case, terá no result a letra “C”, sendo o “0” caso não esteja em alarme e “1” caso esteja fora do limite de controle.


Ao final desta rodada de If, teremos uma String com o status de alarme de cada coluna, como o seguinte exemplo “C0 |D1 |E1” que mostra a coluna C sem alarme e as colunas D e E em região de alarme, então essa String que será enviada para o ESP32.


3 - PARTE DO CÓDIGO NO ESP32


No ESP32 ou CPB32, temos o seguinte código,


void enviarMedicao()
{
  HTTPClient http;

  String url = String("https://script.google.com") + "/macros/s/" + GScriptId + "/exec?" + "value1=" + tensaoFinal + "&value2=" + String(correnteFinal, 2) + "&value3=" + tempoEnvio;

  Serial.print("Making a request");
  http.begin(url.c_str()); //Specify the URL and certificate
 http.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);
  int httpCode = http.GET();
  String payload;
  if (httpCode > 0) { //Check for the returning code
    payload = http.getString();

    Serial.println(httpCode);
    Serial.println(payload);
    //    testdrawstyles(payload);
    if (httpCode == 200 or httpCode == 201) tempPing.Saida(0);
  }
  else {
    Serial.println("Error on HTTP request");
  }
  http.end();

  if (payload.indexOf("C1") != -1) digitalWrite(32, 1);
  else digitalWrite(32, 0);
  if (payload.indexOf("D1") != -1) digitalWrite(33, 1);
  else digitalWrite(33, 0);
  if (payload.indexOf("E1") != -1) digitalWrite(4, 1);
  else digitalWrite(4, 0);

  setaEnvio = 0;

}

Sendo que ao chamar a função “enviarMedicao ()” será acionada a URL na linha 62 que aciona o script que publica os dados no Google Sheets e monta a String de retorno. A String de retorno volta na variável “payload” quando o httpCode é maior que zero, então a função “indexOf” procura o “C1”, “D1” e “E1” para bater os relés, neste caso...


Agora vamos falar de e-mail e SMS, é importante entendermos que, mesmo que algo pareça muito simples, alguém ou algum servidor está executando este serviço. O entendimento dessa parte fará mais sentido no SMS, pois se tratando de email, estamos tão automatizados na criação e uso deles, que parece que não tem nada os executando, mas sim, precisa de um servidor de email para executar os serviços ligados a e-mail.


4 - ENVIANDO POR E-MAIL


Provavelmente o mais comum para executar os serviços ligados a e-mail seja o Gmail, e em nosso caso é o que utilizaremos, ou seja, o servidor gratuito de email do Gmail. E o que ocorrerá neste caso é que a própria conta do drive onde está o Google Sheets, será a conta Gmail que será utilizada pelo servidor de email.


Colocando abaixo o código que envia o email, temos:


Na linha 136 fica a busca dos endereços que enviaremos o e-mail, na linha 141 monto a mensagem inclusive adicionando o valor da corrente que ativou o alarme, na linha 142 tem o assunto do email, e por fim a linha 143 envia o email e é só...


5 - ENVIANDO POR SMS


Já o SMS é um pouco mais chato, acredito que por uma questão tecnológica mesmo, venho percebendo que o SMS custa 0,05 dólares mundialmente quando não tem algum tipo de redução de custos, exemplo entre mesma operadora, sendo assim, os modelos de negócios, quando não tiver algum tipo de abatimento, devem considerar este custo de envio. Imagino que os modelos de negócios que não tenham este tipo de custo, mas tenham algum formato de infra que garanta envios entre mesma operadora, mesmo que precisem ter um chip de cada operadora por exemplo, o que não é tão difícil assim.


Mas vamos ao envio de SMS via Google Sheets, para tal encontramos um material usando o Twilio e deixo aqui as principais dicas para configurar sua conta neste servidor de SMS, ele é gratuito para envio de SMS para o número cadastrado na conta, ou seja, poderá enviar quantos SMS quiser para o seu número e validar a POC (Proof of Concept).


O blog usado como referencia foi o https://www.twilio.com/blog/2016/02/send-sms-from-a-google-spreadsheet.html


Um ponto é que a senha do Twilio deve ter mais que 16 dígitos. E outra dica importante no Twilio é que precisa ter um número de fone criado por ele que não é o seu, e isto se faz na tela abaixo, escolha o número que ele sugerir mesmo que não seja no Brasil.


E no próprio Twilio consegue enviar SMS para verificar se está funcionando.



Terá que criar um SID que vinculará o número de telefone criado, mas é mais tranquilo no ambiente e tem muitas dicas. Uma vez que conseguir enviar a mensagem para o seu celular, vamos entender o código do Script abaixo:



Quando ocorre o chamado da função myFunction, chama a função sendSms, enviando para a função o número do telefone, que no caso é o meu, e a mensagem que vai para o texto.


A função que realmente envia é a abaixo:



Nos locais riscados em vermelho, vai o “ACCOUNT SID” no local em azul vai o “AUTH TOKEN” e no local em preto vai o número de telefone dado pelo Twilio. E isso tudo com o script existente no primeiro blog, o Google Sheets enviará e-mails e SMS cada vez que der um alarme na coluna C.


Agora é com vocês, criem modelos de negócio, provas de conceito, mínimo produto viável e vamos automatizar.


LinkedIn do Autor: Cristiano Nazário

688 visualizações

Posts recentes

Ver tudo