São tantos módulos ESP8266 e adaptadores que muitas vezes geram uma grande confusão e dúvidas sobre a utilização deles. Neste tutorial Guia do Usuário do ESP8266 iremos sanar as dúvidas mais frequentes que recebemos, mostrando as formas de programação com ESP8266, tipos de adaptadores e suas funções, circuitos de exemplo, modos de utilização e etc.
Estudando este Guia do Usuário do ESP8266 você estará apto a começar a desenvolver com ESP8266 sem complicações e posteriormente avançar nos estudos criando novos projetos.
O que é o ESP8266
O ESP8266 é um chip. Um chip que revolucionou o movimento maker por seu baixo custo e rápida disseminação. O que mais chama atenção é que ele possui WiFi possibilitando a conexão de diversos dispositivos a internet (ou rede local) como sensores, atuadores e etc.
Para facilitar o uso desse chip, vários fabricantes criaram módulos e placas de desenvolvimento. Essas placas variam em tamanho, número de pinos ou tipo de conexão com computador. Para saber mais sobre as diversas variações de módulos do ESP8266 certifique-se de abstrair o máximo de informações do artigo Qual módulo ESP8266 comprar?
Veja no diagrama a seguir como é a composição de alguns módulos e placas mais comuns baseadas no ESP8266. Note que existem placas que utilizam o chip diretamente e não utilizam módulos, como é o caso do Wemos D1 Mini Pro.
No decorrer deste guia do usuário do ESP8266 iremos focar na variação ESP-01 do ESP8266, pois é a versão que gera mais dúvidas. As dúvidas mais frequentes sobre esse módulo são qual modo de operação utilizar, como programar, e como montar um circuito para utilização.
ESP8266 versão ESP-01
A versão ESP-01 é a versão mais comum do ESP8266. Foi o primeiro módulo a ser disseminado e usado pelos makers. É a versão mais básica, contendo o mínimo de pinos. Isso significa que para utilizar esse módulo faz-se necessário o uso de mais componentes externos.
Veja abaixo o formato e pinagem desse módulo.
Modos de Operação ESP-01
Existem dois principais modos de operação do ESP-01. Vai depender do seu gosto, facilidade ou finalidade, qual modo de operação escolher.
Modo 1 – Comandos AT
No modo Comandos AT, o módulo possui instalado um programa chamado “Firmware Comandos AT”. Esse programa tem uma função pré-determinada que é receber comandos de operação via UART(pinos TX e RX). Nesse modo, o ESP-01 deverá trabalhar em conjunto com um microcontrolador. O microcontrolador será o responsável por enviar os comandos AT para o ESP-01. A placa Arduino possui um microcontrolador capaz de realizar esses comandos. O Firmware Comandos AT já vem instalado de fábrica podendo estar em diferentes versões, mas pode ser atualizado caso venha com uma versão antiga. Veremos sobre gravação e atualização do firmware mais a frente.
Existem comandos específicos para cada tarefa do ESP-01. Por exemplo o comando AT+CWJAP_CUR é utilizado para conectar o módulo a uma rede WiFi. Veja mais alguns comandos comuns na tabela abaixo:
Se você for utilizar este modo, é muito importante verificar o manual oficial de comandos AT. No manual você encontra todos os comandos possíveis, descrição de cada comando e outras informações úteis. Sempre verifique a versão do manual para não pegar um manual antigo e ocorrer de um comando não funcionar.
Na data de escrita deste tutorial o manual está na versão V2.2 datado em fevereiro de 2018 (2018.02).
Comandos que não são mais usados e não funcionam estão indicados como deprecated informando qual o comando atual.
Quando utilizar o modo Comandos AT?
Esse modo pode ser utilizado quando você tem em mãos o módulo ESP-01 mas quer usar mais pinos em seu projeto, utilizando então o ESP-01 em conjunto com um Arduino. Assim você desenvolve seu projeto usando mais portas digitais, analógicas, expandindo a possibilidade de desenvolvimento.
Modo 2 – Standalone
No modo Standalone, o ESP-01 trabalha como um microcontrolador por si só, sem a necessidade de um microcontrolador externo. O software pode ser totalmente customizado de acordo com as necessidades de uso. É possível utilizar a IDE Arduino, criar um programa básico pisca LED e gravar no módulo. É possível também utilizar as bibliotecas de WiFi para ESP8266 e desenvolver o software em cima delas, criar web servers e muito mais.
Esse modo é muito utilizado com as placas de desenvolvimento como NodeMCU, pois possuem mais pinos tornando os projetos mais interessantes e livres para customizações. Mas nada impede de também utilizar com ESP-01.
Quando utilizar o modo Standalone?
Quando não faz-se necessário o uso de um microcontrolador externo e quando é interessante customizar o software programado no ESP-01 para que realize diversas funções diferentes.
Particularmente eu comecei com ESP8266 utilizando comandos AT. Mas assim que descobri que poderia utilizá-lo em modo standalone, programa-lo via IDE Arduino, customizando o código da forma que queria, não utilizei mais comandos AT em projetos. Atualmente só utilizo o modo comando AT para teste de funcionamento dos módulos.
Tipos de Adaptadores para ESP-01
Existem diversos tipos de adaptadores para ESP-01. O uso de adaptadores não é obrigatório mas podem facilitar o desenvolvimento. Adaptadores têm funções diversas como facilitar o uso, converter níveis de sinal, facilitar programação, adicionar interface USB-serial e etc.
Na loja MakerHero temos dois tipos de adaptadores. Veja a seguir:
Adaptador UART para Módulo WiFi ESP-01
Esse adaptador expõe os pinos VCC, GND, TX e RX do módulo ESP-01. Também faz a conversão de nível lógico entre 5V e 3,3V que é a tensão de trabalho do ESP-01. Sendo assim, é totalmente seguro conectar esse adaptador diretamente ao Arduino que trabalha em 5V por exemplo.
É um adaptador ideal se você deseja usar o ESP-01 em modo Comandos AT juntamente com o Arduino, pois para este modo necessitamos apenas dos pinos TX e RX.
Adaptador USB para Módulo WiFi ESP-01
Esse adaptador fornece uma interface USB-serial ao ESP-01. Com ele é possível utilizar o ESP-01 conectado ao USB do computador ou até mesmo a uma Raspberry Pi. Da mesma forma como o adaptador anterior, ele é utilizado com firmware de comandos AT.
De fábrica, não é possível gravar firmware AT ou qualquer outro programa com estes adaptadores. É necessário fazer uma pequena modificação colocando uma chave on/off entre o pino GPIO0 e GND.
Mais informações sobre este adaptador e modificação você encontra neste post.
Guia do usuário do ESP8266: Como utilizar ESP-01 em modo Comandos AT
Para este exemplo utilizaremos o adaptador UART para ESP-01 juntamente com o Arduino como microcontrolador auxiliar que irá enviar os comandos AT para o ESP-01. Veja a seguir a pinagem e o esquema de ligação:
Então carregue o seguinte programa no Arduino:
//Programa: Comandos AT com ESP8266 //Guia do Usuario do ESP8266 #include <SoftwareSerial.h> //RX pino 2, TX pino 3 /* * Adaptador Arduino * RX -> 3(TX) * TX -> 2(RX) */ SoftwareSerial esp8266(2, 3); #define DEBUG true void setup() { Serial.begin(9600); esp8266.begin(115200); // baud rate padrão do ESP8266 Serial.println("** Verificando conexão **"); Serial.println(); delay(1000); sendData("AT\r\n", 2000, DEBUG); delay(1000); Serial.println("** Versão de firmware **"); Serial.println(); delay(1000); sendData("AT+GMR\r\n", 2000, DEBUG); // rst Serial.println(); Serial.println("** Final **"); } void loop() {} String sendData(String command, const int timeout, boolean debug) { // Envio dos comandos AT para o modulo String response = ""; esp8266.print(command); long int time = millis(); while ( (time + timeout) > millis()) { while (esp8266.available()) { // The esp has data so display its output to the serial window char c = esp8266.read(); // read the next character. response += c; } } if (debug) { Serial.println(response); } return response; }
ATENÇÃO! Note que todo comando AT é seguido dos caracteres ‘\r’ e ‘\n’. Isso está expressamente indicado no manual de comandos AT na página 6, juntamente com a informação sobre o baud rate default 115200 e outras instruções sobre comandos AT.
O resultado poderá ser visto pelo serial monitor:
Além das informações neste guia do usuário do ESP8266, veja outros dos nossos tutoriais sobre comandos AT com ESP8266:
Upgrade de Firmware do ESP8266
E veja também o post sobre como programar o ESP8266 em modo standalone pela IDE Arduino com o adaptador USB.
Gostou do Guia do Usuário do ESP8266? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial.
Boa tarde. Teria alguma forma de eu programar o ESP-01 pela IDE arduino sem a utilização de algum adaptador?
Álefe,
Você pode usar com Arduino: https://www.makerhero.com/blog/esp8266-arduino-tutorial/
Abraços!
Diogo – Equipe MakerHero
Olá, abaixo separei dois trechos que não entendi do programa, sou iniciante e estou aprendendo.
sendData(“AT\r\n”, 2000, DEBUG); // Não entendi o formato dessa mensagem, porque o número 2000?
// também não consegui compreender bem o que o trecho abaixo faz. Poderia explicar linha por linha?
String sendData(String command, const int timeout, boolean debug)
{
// Envio dos comandos AT para o modulo
String response = “”;
esp8266.print(command);
long int time = millis();
while ( (time + timeout) > millis())
{
while (esp8266.available())
{
// The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response += c;
}
}
if (debug)
{
Serial.println(response);
}
return response;
Olá Pessoal,
comprei hoje mesmo com vocês o kit ESP8266 + o adaptador, porém, usando o código de voces, o ESP nao responde nada..
já tentei várias portas e vários baud rates, mas nada do ESP responder. Agluma sugestao?
abs
os prints na serial do arduino ficam assim:
20:16:02.094 -> ** Verificando conexão **
20:16:02.144 ->
20:16:05.123 ->
20:16:06.075 -> ** Versão de firmware **
20:16:06.123 ->
20:16:09.103 ->
20:16:09.103 ->
20:16:09.103 -> ** Final **
Jefferson,
Qual erro vem apresentando?
Abraços!
Diogo – Equipe MakerHero
Entao Diogo.
Não apresenta erro algum.
O sketch compila certinho.. faz o upload.. mas nao recebe nada na serial configurada.
Os pinos estao corretos, o ESP está alimentado.. tudo correto.. conferi várias vezes pra ter certeza… mas nao há nenhum retorno do ESP.
Testei em outras portas tb, pra ver se mudava algo e nada tb..
A porta que estou usando funciona, pois testei num outro sketch que tenho aqui com um display LCD nela..
Parece que o ESP veio sem firmware.. existe essa possibilidade?
Jefferson,
Talvez seu ESP não esteja sendo reconhecido. Se possível, testar seguindo esse link: https://www.makerhero.com/blog/esp8266-arduino-tutorial/
Abraços!
Diogo – Equipe MakerHero
Boa noite querido. Eu consigo enviar comandos AT por um NoDe MCU? Grande abraço.
Marcelo,
É possível sim 🙂
Abraços!
Diogo – Equipe MakerHero
Olá, teria como utilizar um Esp8266 como access point, mandar as informações de um sensor para a página Web Esp e ler essas informações em outra rede. Tendo em vista que o local onde o sensor e o Esp irão ficar não tem internet e não é viável o deslocamento até lá sempre que se precisa dos dados.
Desde já agradeço.
Olá!
Teoricamente você poderia enviar seus dados para a nuvem e recuperá-los no seu receptor (como PC por exemplo)
Abraços!
Diogo – Equipe MakerHero
Obrigado pelo tutorial bem completo.
Olá,
É muito bom saber que gostou do nosso trabalho!
Abraço!
Rosana – Equipe MakerHero
Olá, eu estou aprendendo a mexer nessa área ainda, mas não consigo de nenhuma forma compilar o código, está exatamente igual a esse, mas toda vez aparece o seguinte erro: ‘SoftwareSerial esp8266’ redeclared as different kind of symbol.
Oque eu devo fazer?
Gustavo,
Esse erro acontece porque a variável “esp8266” está em conflito em alguns pontos do código. Em softwareSerial troque esp8266 por outro nome para testar. E então em esp8266.begin, troque o esp8266 pelo nome que você alterou antes.
Abraços!
Diogo – Equipe MakerHero
olá!
o meu fica assim:
** Verificando conexão **
ÿ¡µÔ2U&
** Versão de firmware **
¡µÕî Q
^ª¡ø
** Final **
já tentei de N maneiras arrumar e n vai, poderia me dar uma luz?
Olá Francis,
Dê uma olhada nesses tutoriais, acredito que vão te ajudar:
https://www.makerhero.com/blog/esp8266-arduino-tutorial/
https://www.makerhero.com/blog/upgrade-de-firmware-do-modulo-esp8266/
https://www.arduinoecia.com.br/2017/07/adaptador-usb-para-esp8266-esp-01.html
Abraço!
Rosana – Equipe MakerHero
Como faço para o ESP01 aparecer na biblioteca do Fritzing?
Olá Willian!
Nós adicionamos a imagem depois.
Abraços!
André Rocha – Equipe MakerHero
Olá comprei uma placa com 4 relés e tem esse módulo esp-01 wi-fi não consigo acessar pelo wifi tem como acessar pelo celular ela tipo um roteador.
Olá João!
Você pode dar uma olhada neste tutorial, que explica como o EPS-01 funciona:
https://www.makerhero.com/blog/esp8266-arduino-tutorial/
Abraços!
André Rocha – Equipe MakerHero
Essa placa esp bom 4 relés. Possui um MCU associado que junto com o Esp01 comanda os relés. Parece que esse Esp01 tem um firmware ESPEasy. Tb não consigo fazê-la funcionar. Tenho uma documentação enviada pelo fabricante se quiserem posso disponibilizar. Meu e-mail: [email protected]. Estou a didposição.
Para a criação de um wearable utiliza-se uma placa de desenvolvimento ou um módulo?
Olá Eduardo!
Geralmente wearables são dispositivos pequenos como smartwatches, smart glasses, etc.
Então eu diria que o ideal seria utilizar o chip diretamente em uma placa customizada. Mas para protótipo também poderia ser usado o módulo.
Veja este projeto, por exemplo, usando o chip em uma PCB customizada: https://www.youtube.com/watch?v=ve8lzYSVnGo
Veja também o hardware wearable da MiBand:
https://image.slidesharecdn.com/bleandroid-160508083106/95/wearable-device-bluetooth-low-energy-ble-connect-with-android-20-638.jpg?cb=1462696657
gostaria de saber como eu envio dados para rede através da esp. estou usando o arduino mega, junto com a esp. mas não estou conseguindo enviar dados.
Veja alguns outros exemplos que temos sobre enviar dados pela rede:
https://www.makerhero.com/blog/alarme-de-incendio-com-esp8266-esp-12e/
https://www.makerhero.com/blog/acelerometro-com-esp8266-nodemcu/
Faça um estudo de cada tutorial e entenda como enviar dados pela rede.
Parabéns a equipe de vocês!! Evoluindo a cada dia.
Valeu Marco!
Abraços!
André – Equipe MakerHero
Olá, estou usando um esp 01 com adaptador uart, mas nem ferrando eu consigo usar. Faço o acesso como na sugestão ai, e aparece que está ok, e a versão, mas quando tento conectar a minha rede ele diz: esp is not responding ..
grato
espero conseguir entender
não sou dá área..
Olá Sandro!
Por gentileza, poderia me dizer a versão do firmware que seu ESP-01 tem e também quais os comandos AT que está utilizando?
ESP-01 em modo de operação standalone: um dispositivo com WiFi, com MCU programável contendo GPIO a um baixo preço.
Gostaria de saber: é possível utilizar diversos ESP-01 em uma única rede WiFi, não necessariamente tendo acesso a internet, apenas sinal de um roteador? Utiliza-los como sensores remotos por WiFi sendo controlados por uma central mestre (arduino, raspberry ou CLP, a escolha) com acesso ao mesmo WiFi? Onde nessa central iria um servidor, por exemplo.
Olá Italo!
É totalmente possível! Existem diversas formas de chegar a esse objetivo. O ESP8266 pode atuar como cliente ou servidor, criar hotspot ou se conectar a um.
Poderia existir uma Raspberry Pi como servidor/roteador/hostpost e vários ESPs poderiam conectar-se a ela obtendo um endereço de IP. Poderia ser usado MQTT, HTTP, etc, etc…
Abraço e bons projetos!
Como adquirir este exemplar
Olá José!
A foto de capa do post(artigo/guia) foi só uma ilustração, mas o guia é o próprio post.
Esse guia(post/artigo), é para os usuários que desejam iniciar projetos com ESP8266. Explica conceitos básicos para formar uma base de conhecimento necessária para avançar nos estudos.
Qualquer dúvida conte conosco!