NodeMCU – Definindo um IP fixo para sua placa

NodeMCU – Definindo um IP fixo para sua placa

Está com dificuldades em definir um IP estático para o seu NodeMCU? Então confira os passos abaixo e aprenda definir um IP fixo na placa para que não tenha mais problema de receber um novo IP toda vez que conectar o NodeMCU a rede sem fio.

Conforme já mencionado em outras postagens aqui do blog, uma das características que torna o NodeMCU uma plataforma bem interessante para o desenvolvimento de projetos ioT é o WiFi nativo da placa. Porém, hobbistas e makers que estão no “modo iniciante” com esta plataforma, acabam se deparando com uma coisa que pode ser um grande obstáculo na hora de criar seus primeiros protótipos: IP dinâmico no NodeMCU.

A maioria dos códigos disponíveis para que o NodeMCU se conecte a rede WiFi, deixam definido por padrão a obtenção de um IP dinâmico, ou seja, toda vez que  o NodeMCU se conecta ao roteador da sua rede, será atribuído automaticamente um IP aleatório, recebendo, portanto, um endereço de IP diferente a cada conexão. Isso acaba se tornando um problema quando se desenvolve um projeto para controle de algo através de uma página web, pois para que haja troca de informação entre os dispositivos, eles “precisam saber para qual endereço mandar os dados”, e usando o IP dinâmico você terá de consultar o novo IP fornecido pelo roteador e atualizar esta informação no código fonte antes de acessar ou enviar informações para o NodeMCU.

Vamos então definir um IP fixo para o NodeMCU, pois assim, toda vez que ele for conectado à rede, o endereço de IP da placa permanecerá o mesmo.

Para isso, além do nome da sua rede e senha, você precisa de um endereço de IP livre (dentro da faixa de IP da sua rede), a máscara de sub-rede e o gateway da rede.  

Se você não sabe como ter acesso a essas informações, sugiro que leia nosso post Descobrindo a faixa de IP do seu roteador, e em seguida retorne para continuar.

Para esta postagem, utilizei apenas o NodeMCU com cabo micro USB.

Para prosseguir, é necessário que você já esteja com o NodeMCU instalado no computador e que ele seja reconhecido pela IDE do Arduino. Se ainda não tem a IDE do Arduino instalada e configurada para o NodeMCU, acesse os links abaixo e em seguida retorne para continuar:

Arduino – Instalação e Configuração da IDE no Windows
NodeMCU – Instalação no Windows
NodeMCU – Configurando a IDE do Arduino

É necessário configurar o código fonte de acordo com a sua rede WiFi. Veja na imagem abaixo as informações destacadas:

img01_nodemcu_criando_web_server_e_conectando_rede_wifi_sem_fio_wireless_ide_arduino_esp8266

  • No “const char* ssid”, você deve colocar o nome da sua rede WiFi (dentro das aspas duplas);
  • No “const char* password”, coloque a senha da sua rede WiFi (também dentro das aspas duplas);
  • No “IPAdress ip”, coloque um endereço de IP livre da sua rede;
  • No “IPAdress gateway”, coloque o endereço de gateway da sua rede;
  • No “IPAdress subnet”, coloque as informações de máscara de sub-rede da sua rede.

O código para testes está abaixo, basta copiá-lo, colar na IDE, editar com as informações da sua rede sem fio, salvar e carregar:

Após o arquivo ser carregado no NodeMCU, abra o navegador e digite o endereço de IP (IPAdress ip) que você inseriu no código para que você possa se conectar ao NodeMCU.

Uma página similar à imagem abaixo será aberta:

img02_nodemcu_criando_web_server_e_conectando_rede_wifi_sem_fio_wireless_ide_arduino_esp8266

Utilizando estas configurações, seu NodeMCU sempre vai ter o mesmo endereço IP. Lembre-se de utilizar um endereço de IP com o final de numeração mais “alto”, por exemplo, 192.168.0.150, 192.168.0.200 ou 192.168.0.245, desta forma, não corre risco do IP definido para o NodeMCU, conflitar com o IP atribuído a outro dispositivo. Lembrando que o a numeração máxima para definição de IP é com o final 254 (por exemplo, 192.168.0.254).

Gostou deste tutorial? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigada e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Diretora de Marketing, Designer e Criadora de Conteúdo da MasterWalker Shop. Bacharel em Engenharia da Computação. Apaixonada por tecnologia, fã de super-heróis e bandas de rock.

Existem 19 comentários para esta postagem
  1. Luís às 10:19

    Olá. Primeiramente, obrigado por postar o código. Implementei apenas a parte de IP fixo no meu ESP32 e verifiquei que ele funcionou e consigo fazer um ping para o endereço IP fixo definido, no entanto, a minha aplicação que envia dados MQTT para um servidor da Adafruit não consegue mais publicar os tópicos no servidor quando defino o IP fixo. Tudo volta a funcionar assim que retiro essa parte do IP fixo e deixo o DHCP do meu roteador definir o IP. Deixei o IP fixo com um valor bem alto para não dar conflito com outros dispositivos conectados à rede. No caso, defini o IP 192.168.0.200. Vocês sabem o que pode ser?
    muito obrigado.
    Luís!

  2. Gustavo Rabaiolli às 15:03

    Ainda sigo com um problema , ele gera o IP mas não consigo abrir ele no navegador, pode haver algum problema no roteador?, pois tentei utilizar o celular como roteador e obtive sucesso, mas não to conseguindo utilizar no roteador daqui de casa

  3. Hugo leonardo barbosa às 12:57

    Boa tarde não sei se entendi direito o seu artigo, mas gostaria de saber com oque vc escreveu eu consigo acessar de qualquer parte o meu esp8622?
    como por exemplo eu estou no transito e gostaria de ligar o meu liquidificador para bater uma vitamina eu conseguiria ligar ele enquanto estou indo para casa< se eu estiver logado em outra rede wifi ?
    sou iniciante nesse wifi e gostaria de aprender mais se vc tiver videos que ensine a fazer isso me marque e irie assitir muito obrigado fico no aguardo da sua resposta desde de ja agradeço pelo seu artigo

  4. Joao Ricardo Araujo Cardoso às 17:15

    Outra coisa, tem como eu alterar o endereço do web server para o que eu quiser? Por exemplo, nesse caso descrito acima, para acessar a página, é preciso saber o IP do NodeMCU. Mas se eu quiser colocar o nome do projeto na barra de endereços para acessar essa página? É possível?

  5. Joao Ricardo Araujo Cardoso às 16:40

    Estou fazendo uma aplicação com Wemos D1 que usa exatamente esse código. Minha duvida é: Se eu tenho que conectar em redes diferentes, como descubro o gateway delas?
    Já consegui fazer com que ele se conecte a redes predefinidas, buscando pelo nome e senha delas no código, mas com IP dinâmico

  6. Clairton da Silveira às 12:37

    Estou aprendendo muito com tuas postagens. Muito obrigado

    • Euler Oliveira às 14:39

      Olá Calirton.

      Agradeço pelo comentário!

      Fico satisfeito em saber que o Blog está contribuindo para o seu aprendizado.

      Vlw!!!

    • Euler Oliveira às 08:27

      Olá Fernando.

      Agradeço pelo comentário!

      Fico satisfeito em saber que este tutorial te ajudou.

      Vlw!!!

  7. Daniel Fernandes às 13:56

    Oi Greici! Deu pra entender mas, me restou uma dúvida.
    Todo sketch que use IPAddress, tenho que colocar o IP que atribuí a esse código? Pois, sendo assim, sempre tenho que me lembrar do mesmo para inserir nos outros sketches, não é? Obrigado

    • Euler Oliveira às 14:18

      Olá Daniel.

      Se pretende usar IP fixo na mesma placa, pode manter o IP que definiu, mas se pretende usar outras placas com IP fixo, você deverá definir um endereço de IP pra cada uma delas. Um endereço de IP não pode ser utilizado por mais de um dispositivo na rede.

      • Daniel Fernandes às 16:00

        Olá Euler! Primeiramente, obrigado pela resposta.
        Em todas as placas que eu usar, devo fazer esse procedimento (gravar esse sketch) e definir em IPAddress ip(192,168,0,200); no final com 3 números, um diferente para cada placa?
        Por ex.: IPAddress ip(192,168,0,200); IPAddress ip(192,168,0,201); para 2 placas; é isso? Obg+

  8. Everson às 00:05

    Ótimo artigo parabéns!
    Fiquei com uma dúvida, caso ele não se conecte ao wifi, ele fica buscando a rede até se conectar?

  9. Rodrigo Cirilo às 10:51

    Muito bom o artigo.
    Mas uma duvida, no caso do ESP trabalhando como Client, qual a vantagem de deixa-lo com IP fixo e nao dhcp?

  10. luiz carlos às 17:47

    Boa tarde, parabens pelos videos estou assistindo todos e aprendendo muito, um problema que esta acontecendo, adquiri 02 NodeMCU baixei o codigo como descrito, mas apos alguns testes ele trava, tendo que desconectar a alimentacao cabo usb, para que volte a se comunicar, como posso resolver esse problema, testei na outra placa e acontece o mesmo, fico no aguardo, obrigado