ESP8266 Automação com Interface Web e DDNS




No artigo de hoje vamos mostrar uma automação, que pode ser residencial, utilizando o recurso DDNS (Dynamic Domain Name System). Você vai entender como configurar o aplicativo que você vai colocar no ESP8266, no NodeMCU. Também vamos ver como configurar o DDNS para controlar, do seu smartphone, os aparelhos de sua casa.
Basicamente, o esquema funciona da seguinte forma: seu smartphone vai enviar dados para a nuvem, com o serviço DDNS, o qual vai acessar o seu ESP8266 que vai estar na sua residência.





Neste caso, o código fonte (faça o download)  é grande e utiliza o recurso do ESP funcionar como um próprio webserver. Por que é vantajoso? Pois, assim, você não precisa, no smartphone, instalar nenhum aplicativo. Funciona perfeitamente no IOS, computador, android, ou outro que contenha um browser.

WiFi ESP8266 NodeMcu ESP-12E



DDNS
Primeiramente, é necessária a criação de uma conta no site do NO-IP, que é o serviço que iremos utilizar

Após a definição de login e senha, entre em sua conta. 

Defina o “hostname” e o “Domain”. O “Record Type” deixe como está (A). Depois de preencher, clique em “Add hostname”. Na sequência, vá para a configuração da conta, clicando em “Account”. Nesse caso usamos o “automacaoesp.ddns.net”.

Defina, então, o “USERNAME” e salve as configurações.

Agora acesse o roteador e clique em “Dynamic DNS”. 
Preencha os campos com o nome de usuário que você havia definido na configuração da conta, a senha e o Domain Name, que nesse caso foi “automacaoesp.ddns.net”. Ative a opção “Enable DDNS” e clique em salvar. Agora, ele irá dar a mensagem “Succeeded!” caso tenha dado certo.

Voltando para a página do NO-IP, clique no menu lateral “Hostnames”,  verifique se apareceu o registro do seu roteador, como mostra acima. Deverá aparecer o IP externo do seu roteador.

O último passo é redirecionar a porta do roteador para o aparelho da rede interna. Definimos o IP do ESP (192.168.1.111), logo, vamos entrar na tela “Forwarding” -> “Virtual Servers” do roteador e clicar em “Add new”. Irá exibir a tela acima.

Preencha a porta que irá redirecionar, o IP do aparelho da rede interna e oprotocolo pode deixar como “ALL”, a não ser que você trabalhe com apenas um específico, e deixe o Status como “Enabled” para ficar ativo. Salve.

  

Diagrama


Feito isso, já estará funcionando. Independente do endereço de IP Externo, ao você acessar o “automacaoesp.ddns.net” na porta padrão 80, você cairá na porta 80 do aparelho da rede interna cujo IP é 192.168.1.111.
Lembre-se de deixar esse endereço fixo.



Modificações no arquivo automacao.ino

Faça a alteração das configurações abaixo para as configurações da sua rede e coloque o número do GPIO máximo disponível na sua placa + 1 em MAX_PIN_COUNT.
//Mude para os dados da sua rede
#define SSID "TesteESP"
#define SENHA "87654321"
#define IP "192.168.1.111"
#define GATEWAY "192.168.1.1"
#define SUBNET "255.255.255.0"

//Quantidade máxima de pinos, lembrando que os gpios
//geralmente começam em 0.
//Se o gpio máximo for 16, por exemplo, coloque 17
#define MAX_PIN_COUNT 17

No arquivo automacao.html altere na linha 117 a URL para a que você cadastrou  no site de ddns no-ip



Plugin para gravar arquivos

Você deve incluir o plugin na IDE Arduino para gravar arquivos na flash do esp8266. Faça o download do plugin aqui. Descompacte o arquivo e se estiver no Windows coloque o arquivo .jar em:
C:\Users\<seu_usuario>\Documents\Arduino\tools\ESP8266FS\tool\esp8266fs.jar

Se usar Mac coloque o arquivo .jar em:
~/Documents/Arduino/tools/ESP8266FS/tool/esp8266fs.jar

Reinicie a IDE do Arduino. Agora uma nova opção aparecerá em Ferramentas. Esta opção, chamada de “ESP8266 Sketch Data Upload” vai gravar o conteúdo da pasta “data” na flash do ESP8266.
A pasta “data” deve estar dentro da pasta do arquivo .ino atual.
Se quiser gravar um arquivo html, por exemplo:
~/Automacao/automacao.ino
~/Automacao/data/automacao.html



Gravar arquivo html

Clique nesta opção para enviar o arquivo automacao.html que está na pasta “data” para o sistema de arquivos do ESP.




Testando

1. Ainda na IDE do arduino, clique na seta para compilar e enviar o código para o ESP. Agora vá até o navegador e digite na barra de endereços a url que você cadastrou no site no-ip. O resultado deve ser o da imagem. 
2. Clique “Pin Number” e escolha o número de um pino da lista que aparecer.
3. Digite o nome do botão que vai comandar o pino selecionado e clique em “+“.
4. Um botão com o nome escolhido aparecerá na lista.
5. Quando clicar no botão ele ficará azul e o pino com o número que você escolheu ficará em HIGH.
Caso queira que o pino volte para LOW apenas clique no botão novamente. Para remover o botão clique em “-”.
1


2


3

4

5



Faça download dos arquivos:

5 comentários:

  1. Estou gostando muito das suas aulas!
    Estou com uma duvida.
    Fiz todos os passos conforme você explicou. Porem depois de alguns segundos parece que o meu ESP8266 NODEMCU trava e para de funcionar. Tenho que dar upload do sketch toda vez que trava.
    Você poderia me esclarecer onde estou errando?

    ResponderExcluir
  2. ola , gostaria da sua ajuda
    aqui para mim não aparece os números para escolher a porta na pin mumber
    poderiam me ajudar por favor

    ResponderExcluir
  3. O arquivo de automação.ino só está aparecendo 11 linhas na foto, está completo ? Se não estiver, mande para mim fazendo favor. Obrigado! mauro.neves.gonzaga@gmail.com

    ResponderExcluir
    Respostas
    1. Olá, o arquivo tem 271 linhas. Faça o download dele ao final do texto, onde está escrito: Faça download dos arquivos:
      PDF
      INO
      Abraço!

      Excluir
  4. bom dia, quando vou verificar o codigo na ide, ele dá um erro dizendo que o loadConfig não esta declarado no escopo, inclusive ele diz que todas as funçoes nao estao declaradas no escopo

    ResponderExcluir

Tecnologia do Blogger.