blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução ao Módulo WiFi Esp8266
  • Aspectos de Hardware
  • Aspectos de Software
  • Considerações Finais
  • Referências
  • Sobre o Autor
Componentes Eletronicos

IoT com Módulo WiFi Esp8266 – Básico

Eletrogate 24 de novembro de 2017Atualizado em: 09 set 202211 min

Introdução ao Módulo WiFi Esp8266

Neste artigo vamos falar sobre o módulo WiFi ESP8266 ESP-01. Trata-se de um componente que se popularizou rapidamente nos últimos anos por tornar fácil e prático a integração de redes WiFi e conecções TCP/IP em projetos eletrônicos. Neste post cobrimos aspectos básicos do funcionamento e programaçção. Em um post de continuação, uma aplicação avançada é desenvolvida para controlar cargas residenciais pela internet.

O ESP8266 é um módulo WiFi de baixo custo compatível com Arduino e com stack TCP/IP integrado. Um dos pontos mais interessantes do módulo é que a placa vem integrada com um MCU, o que dá a possibilidade de embarcar códigos na placa para controlar seus pinos e funcionamento sem a necessidade de um MCU externo.

Assim, em geral a interface Arduino é usada apenas na etapa de programação. Mas em funcionamento real o ESP não precisa estar conectado ao Arduino ou a qualquer outra placa de controle. Você pode usar o arduino também para expandir as capacidades do seu projeto e ter mais flexibilidade.

Módulo ESP2866

FIgura 1: Módulo ESP2866

O ESP8266 é projetado pela Espressif Systems, uma empresa fabless(sem fábrica própria) de produtos wireless de Shangai. A fabricação em si é feita pela AI-Thinker. O tamanho pequeno e o preço reduzido fizeram com que o módulo atraísse a atenção de projetistas rapidamente. Com ele é possível se conectar a uma rede WiFi e criar conexões TCP/IP de forma simples e prática.

Várias versões do módulo são produzidas, cada qual com especificações técnicas diferentes. Projetos utilizando o ESP8266 é o que não falta. A internet possui um acervo já bastante respeitável, e ao final do artigo, na seção de referências, estão alguns exemplos bem interessantes para se aprofundar um pouco mais.

Pinagem do módulo ESP8266

A versão da figura 1(introdução) é uma das mais simples, com 8 pinos disponibilizados no módulo. Uma versão mais robusta é o ESP8266 NodeMcu ESP-12, que tema 30 pinos na placa e alcance um pouco mais que os modelos mais simples(veja na figura abaixo).

ESP8266 NodeMcu ESP-12

ESP8266 NodeMcu ESP-12

Para esse artigo introdutório vamos usar o ESP-01.  Esse módulo conversa com o microcontrolador pela interface serial.  Possui ainda 2 pinos GPIO que permitem que o módulo seja programado diretamente. A figura abaixo mostra o módulo e sua pinagem:

ESP01

ESP01

Os pinos são os seguintes:

Pinout ESP-01

Pinout ESP-01. Créditos: thegaragelab

Programação e especificações

O módulo é pre-programado com o famoso set de comandos AT, o que significa que você pode usar o Arduino ou outro controlador qualquer(incluindo o do próprio módulo) para controlar as capacidades WiFi de forma fácil e prática.

As capacidades de processamento da placa também são boas, considerando o seu tamanho reduzido, o que permite integrar sensores e outros equipamentos diretamente com o módulo(com as devidas interfaces e condicionamento sempre que necessário).

Antes de falarmos dos aspectos de hardware já alertamos que, tal como vários outros componentes, o ESP8266 opera com 3.3V. Se você tem um circuito de 5V, é necessário usar um conversor lógico e disponibilizar uma alimentação de 3.3V.

Outro ponto importante é que a placa é independente de componentes RF externos. O módulo vem com uma antenna integrada na própria placa(trata-se da trilha em formato de onda quadrado em uma das extremidades da placa). Algumas versões possuem antena de cerâmica on-board e outras vem com um conector para conectar com antenas externas e expandir o alcance da rede.

Descrição do projeto

Nesse exemplo vamos ligar o ESP-01 ao Arduino e usá-lo para enviar comandos AT. Vamos apresentar os principais comandos, como para colocar o módulo com AP(Acess Point) e STA(Station) e enviar e receber dados pela internet.


Aspectos de Hardware

Materiais necessários para o projeto de IoT com Módulo ESP8266

  • 1x Módulo WiFi Serial ESP8266 ESP-01s – S Series
  • 1x Uno R3 + Cabo Usb para Arduino
  • 1x Resistor 2K2 1/4W (10 Unidades)
  • 1x Resistor 3K3 1/4W (10 Unidades)
  • 1x Protoboard 400 Pontos
  • 1x Jumpers – Macho/Macho – 20 Unidades de 20cm
  • 1x Adaptador DIP para ESP8266 ESP-01

cta_cart

A montagem de hardware é bem simples. Siga as conexões da imagem abaixo:

Montagem ESP01 e arduino

Montagem ESP01 e arduino

Por praticidade, usamos divisores de tensão para adequar os níveis lógicos, mas você também pode usar um conversor específico. Repare que os pinos de GPIO e RST estão desconectados.

Outra coisa é que nessa montagem o Arduino é usado apenas como interface serial com o computador. Veja que conectamos o ESP à porta serial do Arduino. Você também pode usar um módulo conversor USB para RS232 próprio, como FTDI FT232RL. Nesse caso, sua montagem ficará como a mostrada neste artigo.

Para comandar o módulo via comandos AT, como vamos fazer, basicamente o que precisamos é conectar a interface serial do módulo com a do Arduino, de forma que possamos enviar strings com os comandos AT pelo terminal serial da IDE Arduino.


Aspectos de Software

Como o objetivo é apenas enviar comandos AT manualmente, de forma que possamos entender como o ESP-01 conversa com o microcontrolador, não é necessário escrever um código específico. Com as conexões que usamos, vamos apenas energizar o arduino e usar o terminal serial da IDE.

Como os pinos TX e RX que estamos usando são os que o Arduino usa para comunicar com seu próprio microcontrolador, conseguimos enviar os comandos diretamente.

Caso você utilize outros pinos para fazer a conexão serial, aí sim é necessário escrever um pequeno programa para receber os caracteres e enviá-los para o módulo, e também exibir as strings de resposta no terminal serial.

Então, se você fez a montagem certa, basta abrir a IDE, abrir o terminal serial e proceder conforme os próximos passos. Para ter certeza que os pinos da porta serial não estão sendo usados por nenhuma aplicação previamente gravada, sugerimos que você carregueo exemplo “BareMinimum”, que pode ser acessado na IDE na aba File -> Examples -> Basics -> BareMinimum.

Um ponto de atenção é que o ESP-01 talvez não esteja com o firmware correto para usar com os comandos AT. Caso você tenha qualquer problema com os passos da próxima seção, depois de conferir as ligações, o próximo passo é gravar a SDK mais atual para utilização dos comandos AT.

O processo para gravar um novo firmware no ESP é explicado neste outro post. Vale a pena conferir pois o processo de atualizar o firmware AT não é tão bem explicado na internet(muitas referências usam ferramentas diferentes das recomendadas pelo fabricante e não explicam como identificar os arquivos binários e os respectivos endereços de memórias para serem usados).

Conversando com o módulo ESP-01 por meio de Comandos AT

Vamos começar pelo teste básico. Com o terminal serial aberto, digite:

  • AT

Como resposta você deve receber um “Ok”. Isso significa que o ESP-01 entendeu o comando e que está tudo certo para continuar a comandá-lo. O módulo possui três modos de operação básicos:

  • Access Point (AP);
  • Station (STA);
  • Ambos STA e AP;

No modo AP, o ESP atua como um access point, permitindo que outros dispositivos se conectem a ele. Mas isso não significa que você pode, por exemplo, acessar o seu site pessoal pelo ESP-01 em AP mode. Nesse modo de operação ele simplesmente estabelece um canal de comunicação com outro dispositivo por meio do protocolo WiFi.

No modo STA, o ESP pode se conectar a um AP, como o modem de internet da sua casa. Isso permite que o seu dispositivo possa se comunicar com qualquer outro equipamento que também faça parte da rede local.

No terceiro modo de operação o módulo funciona tanto como AP como STA.

Para setar o módulo para operar em um desses três modos, usa-se o comando:

  • AT+CWMODE=X

Em que X corresponde ao modo de operação: STA = 1, AP = 2, Ambos = 3. Por exemplo, vamos setar o módulo para operar como STA, então, devemos enviar o comando:

  • AT+CWMODE=1

Para checar em qual modo de operação o módulo está configurado, o comando é:

  • AT+CWMODE?

Veja na imagem abaixo como o seu terminal serial deve ficar:

Comandos AT 1

Comandos AT – Primeiro passo

Como se conectar a uma rede com o ESP-01

Para se conectar a uma rede, são dois passos. Primeiro checar se já alguma conexão ativa com o comando:

  • AT+CIFSR

Se um endereço IP foi exibido é porque o módulo está conectado àquela estação. De fato, esse é o endereço IP do módulo. Se não houver nenhum IP(tudo zerado), você pode se conectar a uma rede com o comando:

  • AT+CWJAP= “NomeDaRede”,“Senha”

Basta inserir o nome da rede e a senha nos campos indicados do comando. As aspas duplas fazem parte do comando. Se tudo correr bem você receberá um ok como resposta.

Há ainda o comando:

  • AT+CIPSTATUS

Ele mostra qual o status da conexão. Na imagem abaixo, a resposta para esse comando foi 5, o que significa que ele não está conectado, como já esperávamos.

Comandos AT - Passo 2

Comandos AT – Passo 2

Na imagem abaixo, nos conectamos à rede “Eletrogate”, que no caso não tem senha(rede aberta, sem seguranã WPS)

Conectando a uma rede com ESP01

Configurar o ESP-01 como servidor

Até aqui, nos deixamos o módulo no modo STA e nos conectamos a uma rede local. Agora, para configurá-lo como servidor, primeiro termos que habilitá-lo para permitir múltiplas conexões. Isso é feito pelo comando:

  • AT+CIPMUX=X

Em que X é 0 para apenas uma conexão, e 1 para múltiplas conexões. Em seguida, configuramos a porta com o seguinte comando:

  • AT+CIPSERVER=1,80

O número 1 significa que queremos o módulo como Open Server Mode. Se fosse 0, estaríamos configurando para Close Server Mode. O número 80 é o número defaut da porta do protocolo HTTP. Se você abrir um browser e digitar o endereço IP do seu módulo ESP, uma tela semelhante à mostrada abaixo irá aparecer no terminal serial:

Comandos AT com o ESP-01

Enviando dados para o browser

Com as configurações feitas, podemos enviar comandos e exibir dados no browser. Para isso utiliza-se o comando:

  • AT+CIPSEND=0,9

O 0 indica o canal que será usado para enviar os dados. 5 é o número de caracteres que será enviado. No nosso caso, vamos enviar a mensagem “Olá Mundo”. Após enviar o comando, um símbolo de  “>” irá aparecer. Isso quer dizer que você pode digitar os caracteres que deseja enviar.

Se você receber a mensagem “SEND OK”, a transmissão foi feita com sucesso. Para que a mensagem seja exibida, é preciso antes fechar o canal de comunicação. Use o comando:

  • AT+CIPCLOSE=0

Ao enviar esse comando a mensagem “Olá mundo” será exibida no browser como mostrado abaixo:

Mensagem "Ola Mundo" no ESP-01

Mensagem “Ola Mundo” no ESP-01

Recebendo dados enviados pelo celular

Para enviar dados para o ESP vamos usar o aplicativo Mobile Telnet para Android.

Faça o dowload e instale o aplicativo. Na tela inicial, vá em “Telnet Settings” e entre com o IP do seu ESP01 e a porta que você usou para configurá-lo como servidor.

Abrindo a tela de configurações no Telnet

Para se conectar ao ESP-01, insira os dados como na imagem abaixo.

Conectando ao ESP-01 pelo Mobile Telnet

Clique em Ok após preencher os dados e depois abra nova a aba de menus(três pontinhos no canto superior direito) e selecione “Connect”. A tela abaixo será mostrada, agora você pode enviar informações que elas apareceram no monitor Serial no qual o ESP está conectado.

Na tela serial, você receberá todas as mensagens enviadas.

Dados recebidos pelo ESP-01

Bacana, né! Por fim, para conhecer o set de comandos completo, acesse este link. É bastante recomendado que você dê uma boa lida nesse documento e também no AT Examples, ambos da Espressif Systems.


Considerações Finais

Na segunda parte desse post vamos fazer uma aplicação em automação residencial. Vamos usar o ESP-01 para controlar cargas pela internet. Agora que você já conhece o módulo e sabe como funciona os principais comandos AT, tudo ficará mais fácil. Para algumas aplicações avançadas já existem algumas bibliotecas desenvolvidas, também vamos usá-las para incrementar os projetos.

Se tiver alguma dúvida, sugestão ou correção, deixe nos comentários. Até lá!

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Referências

  • ESP8266 com Arduino;
  • Conecte o Arduino na rede wireless 802.11 com o módulo ESP8266;
  • ESP8266 – Wifi Module Complete Review;
  • ESP8266 Tutorial: How to Control Anything From the Internet!
  • ESP8266 Wi Fi Module Explain and Connection;
  • Instalando o ESP8266 na IDE arduino;
  • br-arduino.org;

Sobre o Autor


Vitor Vidal

Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.


Eletrogate

24 de novembro de 2017 Atualizado em: 09 set 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Projetos

Utilizando Sensores I₂C com o Mesmo Endereço

Eletrogate26 de setembro de 2023

No post de hoje, nós aprenderemos a usar dois sensores I₂C com o mesmo endereço, utilizando o CI Demultiplexador CD4051.

Projetos

Utilizando Sensores I₂C com o Mesmo Endereço

Eletrogate26 de setembro de 2023

No post de hoje, nós aprenderemos a usar dois sensores I₂C com o mesmo endereço, utilizando o CI Demultiplexador CD4051.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.