Como conectar o ESP8266 à internet

Como conectar o ESP8266 à internet? 17

Neste artigo você aprenderá a conectar o ESP8266 à Internet. Utilizaremos a placa de desenvolvimento WiFi ESP8266 NodeMCU ESP-12. Mas também será possível replicar o conceito de aprendizado em outras placas de desenvolvimento e módulos do ESP8266. Como ambiente de programação utilizaremos a IDE do Arduino.

Como configurar o ESP8266?

A placa NodeMCU ESP8266 deve ser adicionada no gerenciador de placas da IDE do Arduino. Caso ainda não tenha feito isso, sugiro que acompanhe os passos do post Como programar o NodeMCU com IDE Arduino

Alguns usuários relatam instabilidade na conexão, por isso recomendo que utilize a versão da placa 2.3.0. Depois que der certo, teste versões mais atualizadas.

Na IDE do Arduino vá em “Ferramentas”. Escolha a placa que você está em mãos. No meu caso é a “NodeMCU 1.0 (ESP-12E Module)”

Importante ressaltar que existem diversas possibilidades de configurações. Para reproduzir esse teste de conexão proposto eu utilizei (e recomendo que vocês também o façam) as configurações conforme imagem acima.

O código fonte para testes de conexão possui poucas linhas e está comentado.
Inserir o nome da sua rede e a senha, respectivamente em, WLAN SSID e WLAN PASS.

/* Programa para Artigo MakerHero
 * Como Conectar o ESP8266 à Internet
 * Autor: Eduardo Castro
 * Gerenciador de placas: "ESP8266 Community versão 2.3.0"
 * Placa: "NodeMCU 1.0 (ESP-12E Module)"
*/
// ======================================================================
// --- Inclusão da biblioteca ---
#include <ESP8266WiFi.h> 
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WLAN SSID   "XXXXXXXX"   // nome da sua rede
#define WLAN PASS  "XXXXXXXX"   // senha de acesso do seu roteador
WebClient Secure cliente; //Cria um cliente seguro (para ter acesso ao HTTPS)
// ======================================================================
void setup()
{
  Serial.begin(115200); // Inicia Serial com Baud Rate de 115200
  Serial.println();      
  WiFi.mode(WIFI STA); //Habilita o modo estação
  WiFi.begin(WLAN SSID, VLAN PASS); //Inicia WiFi com os dados preenchidos 
  delay(1000); // aguarda 1 segundo
  Serial.print("Conectando"); 
  while (WiFi.status() != WL_CONNECTED) // Tentando conectar na Rede WiFi
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
 
  Serial.print("Conectado | Endereço IP: "); // Imprime na Serial
  Serial.println(WiFi.localIP()); //Imprime o Endereço IP Local do ESP8266
  delay(1000); // aguarda 1 segundo
}
 
// ======================================================================
void loop() {
  if (cliente.connect("sheets.googleapis.com", 443) == true) {    
  //Tenta se conectar ao servidor do Google APIs na porta 443 (HTTPS)
     Serial.println("Conseguiu conexão com Servidor Google APIs");
  }
  else {
      Serial.println("Falha na conexão com Servidor Google APIs");
  }
  
  delay(3000); // aguarda 3 segundos
}
// --- FIM ---

Ao término, abra o monitor serial da IDE e verifique o status. Sendo bem-sucedido você terá um resultado conforme o meu:

Vamos conceituar alguns pontos.:

  • Para verificar se a conexão foi ou não bem sucedida é necessário que o monitor serial funcione. Para isso, verificar se a velocidade está 115200.
  • Na programação existe a ação de conectar com o roteador. Essa é a primeira etapa para podermos conectar o ESP8266 à Internet. O endereço IP que você visualizará no monitor serial é local, ou seja, atribuído pelo seu roteador.
  • Durante a função void loop(), o ESP8266 fica tentando conectar com o servidor do Google para API. Essa parte da programação é para verificar se está conectado à Internet e não somente em uma rede local.  

Solucionando ESP8266 não conectando ao WiFi 

A falha de conexão com a rede WiFi pode ser causada por alguns fatores. Dentre eles destaco:

1 – O ESP8266 tem uma particularidade do estado inicial dos seus GPIOs durante a inicialização. Como nosso intuito é realizar a conexão com a Internet, sugiro que deixe o ESP8266 somente com as ligações de alimentação e comunicação. Se estiver com um NodeMCU pode utilizar somente o cabo USB.

2 – Preenchimento errado dos dados de acesso do seu roteador irá te causar erro na conexão. Observe que no código de programação deixei em aberto para que você preencha as informações WLAN SSID e WLAN PASS, que são respectivamente, o nome e a senha da sua rede. Vale lembrar que a captação desses caracteres é case sensitive, ou seja, diferencia maiúsculos e minúsculos.

3 – Se o seu roteador estiver sem conexão com a Internet, então você terá o feedback pelo monitor serial do seu IP local mas não terá a confirmação de acesso com o servidor Google. Faça um teste com o seu smartphone ou computador verificando se está tudo bem com sua conexão com a Internet.

4 – É difícil, mas já vi incompatibilidade com o provedor de internet. Para solucionar, teste em redes diferentes. Sugiro que realize testes com o seu smartphone funcionando como roteador WiFi. Você inclusive poderá verificar os dispositivos conectados de maneira fácil e rápida.

Ideias de projetos de automação residencial com ESP8266

Com a demanda crescente por temas como Indústria 4.0 e IoT (Internet das Coisas), as tecnologias eletroeletrônicas que se conectam à internet tornaram-se mais acessíveis, tanto no ponto de vista do acesso à informação quanto ao preço para aquisição.

O blog MakerHero está repleto de sugestões e insights. Destaquei aqui algumas possibilidades de como automatizar uma residência utilizando o  ESP8266.

Monitoramento do volume da sua caixa d’água
Utilizando o protocolo MQTT, um ESP8266 e um sensor ultrassônico, você consegue monitorar a quantidade de água da sua residência, seja casa ou apartamento. Com ele será possível o morador saber o quanto de água possui em seu reservatório naquele momento e o histórico, conhecer a curva de consumo e abastecimento ao longo do dia, semana e ou mês.

Controlando a iluminação do ambiente ESP8266
Utilizando fitas de LED endereçáveis e nosso controlador ESP8266, é possível fazer a harmonização de um ambiente, a sala de estar, por exemplo. Imagine que espetáculo seria embutir essas fitas na sanca e poder controlar pelo smartphone a coloração e intensidade de brilho. Gostou da ideia? Então saiba mais em Como controlar fita de leds por wifi usando ESP8266.

– Acionamento de circuitos através de Relé WiFi ESP8266
Utilizando como base o artigo Como usar o Módulo Relé Wifi ESP8266 IoT com Blink, você pode dar seu pontapé inicial na domótica. O projeto modelo aciona uma lâmpada como carga do relé, o que é muito interessante e serve como substituto funcional do nosso exemplo anterior. Neste caso, você teria somente dois estados, ligado e desligado, mais simples e interessante de aplicar onde não há interesse em harmonização e sim acionamento. A ideia não limita-se a iluminação, serve de maneira geral para cargas que estejam dentro dos limites estabelecidos pelo relé (250V/10A).

São apenas ideias e sugestões. Uma das inúmeras possibilidades de maneiras diferentes de se fazer, o importante é começar. 

Finalizo com uma frase que gosto muito e é atribuída a Albert Einstein: “O impossível existe até quando alguém duvide dele e prove ao contrário”.

Gostou de aprender a como conectar o ESP8266 à internet? Deixe seu comentário. Compartilhe a experiência. Sua participação é muito importante para o Universo Maker.

Faça seu comentário

Acesse sua conta e participe

17 Comentários

  1. Olá Eduardo! Tudo bem? Estou fazendo meu tcc da faculdade com esse modulo, porém estou sofrendo algumas dificuldades com ele, será se você conseguiria tirar algumas duvidas? Se possível conseguiria tirar alguma mensagem diretamente a você? Estou com um problema de conexão onde testei tudo que indicou, pesquisei outros blogs inclusive seu, e não deu certo. Se puder ajudar ficarei muito agradecido!

    1. Olá Eder.

      Ficamos a disposição no WhatsApp (48) 3307-3495 para tirar suas dúvidas.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  2. Parabéns pelo artigo!
    O meu ESP8266 está funcionando bem em um ambiente rural, usando uma rede WiFi gerada por um roteador 4G. Às vezes, a operadora desliga o sinal e, quando retorna, o roteador gera uma nova rede com o mesmo nome. No entanto, o ESP considera como se fosse uma nova rede, o que é ruim porque muitas vezes o sistema opera sem a presença de um usuário por perto, ficando parado por muito tempo. Parece que a operadora está enviando alguma nova configuração para o meu chip SIM. Como posso contornar esse problema

    1. Bom dia Macedo.

      Mas é o mesmo nome e senha? Pois caso seja, ele deve conectar da mesma forma.

      Qual código você está usando? Exatamente esse usado nesse post? Talvez você possa criar um void que é chamado em determinado horário (de madrugada por exemplo), para todo dia ele reconectar com a rede.

      Outra solução é adaptar seu sistema para uma rede cabeada (caso seja possível), com modulo ethernet.

      No mais, fico a disposição no WhatsApp para conversarmos a respeito disso. (48) 3307-3495.

      Att.

      Vitor Mattos.
      Suporte Técnico MakerHero.

  3. Olá, você respondeu a estas perguntas sobre este erro? ‘WebClient’ does not name a type

  4. Olá quais mudanças tenho que fazer para que rode na placa generica de ESP8266, tentei rodar e apareceu o seguinte erro:
    exit status 1
    ‘WebClient’ does not name a type

    1. Olá Bruno,

      Quando falas placa genérica de ESP8266, a qual placa te referes?

      É provável que você precise selecionar uma placa diferente da selecionada no tutorial para servir na placa que tens.

      Abraços!
      Vinícius – Equipe MakerHero

      1. Ola Vinicius!

        Estou com o mesmo problema do Bruno (WebClient’ does not name a type) estou usando uma placa ESP8266-01, selecionando Generic ESP Module.

    2. Ola Bruno!
      Conseguiu solucionar o problema, estou com o mesmo problema estou usando um ESP8266-01.

  5. O meu aparece um erro ao compilar o codigo ‘WebClient’ does not name a type, que eu acredito que é causado porque as bibliotecas não foram instaladas corretamente. Eu já instalei a placa e está normal.

    Todos os includes do código:

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    E ainda não sei como resolver

    1. Olá Giuseppe,

      O #include tem que ser seguido da biblioteca a ser incluída.

      Como no código acima: #include

      Abraços!
      Vinícius – Equipe MakerHero

  6. queria acender o led do 8266 para saber q ele esta conectado ao wifi, consigo fazer isso apenas usando a biblioteca do blynk, mas neste caso estou usando o sistema via telegran. poderia dar alguma diretriz de como fazer este codigo ?

  7. Boa tarde, sou novo nesta área. Quando preciso desligar e religar o meu roteador wifi, o esp não reconecta automaticamente. Tem alguma linha de comando que poderei acrescentar para faze-lo reconectar automaticamente. Desde já te gradeço se puder me ajudar.

    1. Olá, boa tarde.

      Note que a rotina principal do código não possui uma tentativa de reconexão caso caia ou seja inexistente.

      Dê uma olhada em outro artigo, é exatamente a sua dúvida:
      https://www.makerhero.com/blog/reconexao-automatica-esp8266/

      Eduardo de Castro Quintino
  8. Tenho dificuldade em acessar minha node mcu. Comprei a placa e módulo relé.mas não consigo carregar nenhum steck

    1. Olá,
      Tente segurar um dos push button da NodeMCU enquanto a IDE tenta transmitir o programa.

    2. Olá,

      Poderia dar mais detalhes sobre o problema? Qual é o erro apresentado?

      Abraço!
      Rosana – Equipe MakerHero