



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.

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.
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).

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:


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.
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.
Materiais necessários para o projeto de IoT com Módulo ESP8266
A montagem de hardware é bem simples. Siga as conexões da imagem abaixo:

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.
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).
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: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:

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:
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é 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:
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:
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:


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.


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

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.
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!
|
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.
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200