Utilizar ESP8266 para envio de email
- Edemar - Orlando
- 26 de ago. de 2018
- 3 min de leitura
O ESP8266 é um microcontrolador do fabricante chinês Espressif que inclui capacidade de comunicação por Wi-Fi. O chip chegou a cultura maker em agosto de 2014, com a ESP-01. Esta pequena placa permite que microcontroladores se conectem a uma rede sem fio fazendo conexões TCP/IP usando um conjunto de comandos Hayes. O produto foi lançado inicialmente com quase nenhuma documentação no idioma Inglês [1]. Seu sucesso se atribui ao seu preço que foi lançado inicialmente a um valor inferior a 10 dólares, valor semelhante a um microcontrolador sem interface de internet.
No final de outubro de 2014, Espressif lançou um kit de desenvolvimento de software (SDK) que permitiu que o chip fosse programado diretamente, eliminando a necessidade de um microcontrolador[2] Desde então, foram lançados diversos SDK no site do Espressif. O fabricante mantém duas versões do SDK, uma baseado em RTOS e outro em callback. Foi criado uma iniciativa em código aberto de SDK, armazenado no github, a partir de um conjunto de ferramentas GCC mantidas por Max Filippov. O ESP8266 usa o microcontrolador Cadence Tensilica LX106.
Diante das facilidades deste microcontrolador, foi utilizado para monitorar a intensidade de luz de um ambiente e ao chegar em um determinado nível de claridade, é enviado um e-mail. Abaixo podemos ver fotos do microcontrolador.

Para dar início a programação do desafio, o primeiro passo era definir a linguagem a ser utilizada, então conforme o conhecimento que temos a linguagem 'Pyton', definimos esta a linguagem. Para implementar e colocar o programa no ESP8266, utilizamos o software ESplorer.exe, e iremos seguir a apresentação do código conforme o fluxograma que será apresentado em seguida. Abaixo temos imagem mostrando o programa e um pouco do código fonte e o fluxograma.


Para dar inicio a implementação, precisamos baixar os pacotes de conexão a internet utilizando o Wi-Fi, estes pacotes podem ser adquiridos através deste link: https://github.com/micropython/micropython.
Com o pacote adquirido, iniciamos implementando o método que faz a conexão com o Wi-Fi conforme a imagem abaixo.

Conforme a imagem acima, utilizamos a classe network para realizar a conexão, utilizando o método WLAN() e connect(), passando os parâmetros de usuário e senha. Em seguida, para saber qual email deve ser enviado, e qual o valor limite que o sensor pode chegar, criamos um socket, ou seja, um servidor que possui uma página html para passar estas informações. Estes valores são salvos em um txt salvo na memória do ESP8266, para que sempre ao ligar, verifique o valor que possui no arquivo. Conforme as imagens a seguir, podemos ver como é criado o html, como são adquiridos os valores do txt e como é criado o socket.

Criando o 'socket', que é uma 'thread', ao acessar a página, o 'socket' chama o método getHtml(), este método cria o html que é exibido na página. Ao acessar a página para configurar os parâmetros, o que é apresentado é conforme a seguinte imagem.

Ao enviar os valores é salvo no 'txt' e estes valores são atribuídos a variáveis para determinar para qual e-mail deve ser enviado e qual valor máximo. Para que o ESP8266 verifique a cada 5 segundos, é criado uma 'thread' que a cada 5 segundos chama o método 'readData()' que verifica o valor do sensor que está na porta 0, se é maior que a configuração realizada, caso for, é chamado o método 'sendEmail' para enviar o e-mail de alerta. Verificamos o código fonte nas imagens a seguir.



Nesta etapa, já esta implementado corretamente e deve ser enviado o e-mail caso ultrapassado o valor do sensor.
As dificuldades encontradas durante este projeto foi quando enviado os parâmetros ao acessar a pagina html, estes parâmetros estava sendo enviado com codificação diferente e assim dificultando a programação. Outra dificuldade encontrada foi ficar verificando os valores do retorno do e-mail e validar se foi enviado ou não com sucesso o e-mail.
Referências:
[wikipedia. ESP32. 2018. Disponível em: <https://pt.wikipedia.org/wiki/ESP32>. Acesso em: 20 ago. 2018]
[espressif. Documentação. 2018. Disponível em: <https://www.espressif.com/en/products/hardware/esp32/overview>. Acessado em: 03 ago. 2018]
[micropython. downloads. 2018. Disponível em: <https://micropython.org/download#esp8266>. Acesso em: 03 ago. 2018]
Comments