Tutorial - Programando o módulo ESP8266 pela IDE do Arduino

Olá garagistas,

Neste tutorial vamos introduzir o módulo ESP8266 e também ensinar a usá-lo no ambiente Arduino. Assim pode-se usar as funções e bibliotecas já familiares do Arduino e rodar diretamente no ESP8266. 

O módulo ESP8266 é uma solução de baixo custo criada para conexões Wi-Fi permitindo que se hospede a aplicação no próprio módulo ou se opere como um gateway Wi-Fi comunicando-se com um outro dispositivo ou microcontrolador via comunicação serial.

Ele também possui internamente uma capacidade de processamento e armazenamento grande o suficiente para que seja integrado com sensores e outros dispositivos específicos. Estes módulos vêm pré-programados com um firmware de comandos AT. Assim, pode-se conectar o módulo com um Arduino, possibilitando que se tenha tantas funções Wi-Fi quanto um shield pode oferecer.

Neste primeiro tutorial vamos conectar o módulo ESP8266 em um módulo conversor USB/Serial do Garagino para fazer o upload do programa que irá piscar um LED, um programa simples mas que permite configurar sua IDE e começar a desenvolver.

Materiais Utilizados:

1x Módulo GarageLab ESP8266 Breakout

1x Conversor USB/Serial do Garagino

1x Suporte para 4 pilhas AA

1x LED

2x Chaves Tácteis

2x Resistor de 10K

1x Resistor de 330R

1x Resistor de 180R

1x Resistor de 270R

2x Capacitores de 10µF

1x Regulador de tensão LM1117

Alguns jumpers

Um ponto importante a ser destacado é que a compatibilidade do ambiente Arduino com os módulos ESP8266 existe graças ao excelente projeto Arduino/ESP8266 que tem recebido contribuições de vários desenvolvedores. Mais detalhes sobre o projeto podem ser obtidas no endereço: https://github.com/esp8266/Arduino

Pode-se utilizar a maioria das funções que se usaria para programar uma placa Arduino, com algumas funções extras que o ESP8266 oferece e algumas ressalvas. Entre elas, os pinos disponíveis. Em linhas gerais, a numeração do pino, corresponde ao mesmo número no ambiente de programação. Exemplo: D2 equivale a GPIO2. No entanto, os pinos por terem a função de GPIO, pode receber outras funções, conforme a tabela abaixo.

Para ter mais detalhes sobre como utilizar a IDE do Arduino com o ESP8266 acesse: https://github.com/esp8266/Arduino/blob/master/doc/reference.md

Agora, vamos colocar a mão na massa!

Primeiramente deve-se instalar o software Arduino IDE versão 1.6.4 ou superior, o download pode ser feito no site abaixo:

https://www.arduino.cc/en/Main/Software   

Agora devemos instalar os pacotes do módulo ESP8266 na IDE do Arduino, para isso vá em File > Preferences, conforme figura abaixo:

Uma nova janela deverá abrir. Copie a URL a seguir e cole no campo “Additional Boards Manager URLs:" conforme a figura abaixo.

 http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

Agora entre em Tools > Board > Board Manager...

Na janela “Boards Manager” procure pelo módulo ESP8266 e clique em instalar situado no canto inferior direito.

Agora vá em Tools > Board > Generic ESP8266 Module

 

Vá novamente em "Tools" e use as configurações conforme a imagem abaixo.

Flash Mode: “QIO”

Flash Frequency: “40MHz”

Upload Using: “Serial”

CPU Frequency: "80MHz"

Flash Size: “4M (3M SPIFFS)

Upload Speed: “115200”

Para a Port use a porta usb na qual o seu módulo está conectado no computador.

A Porta COM poderá ser diferente do exemplo acima conforme o seu PC.

Agora que sua IDE já está configurada, vamos fazer as conexões do circuito na protoboard.

Os módulos ESP8266 não vêm com a pinagem padrão para montar na protoboard, portanto deve-se utilizar um breakout para poder fazer as conexões. Abaixo uma imagem com a pinagem do módulo já com o breakout do Lab de Garagem.

O esquema de montagem do circuito é mostrado na figura abaixo:

Os pinos VCC, CH_PD e GPIO2 devem sempre estar em nível lógico alto, os pinos GND e GPIO15 devem sempre estar em nível baixo. Os pinos REST e GPIO0 devem estar em pull up, estes pinos vão ser usados para colocar o módulo em modo de programação. O módulo conversor USB/Serial e sua pinagem são mostrados na figura abaixo:

 

Os pinos TXD e RXD do conversor serão ligados nos pinos RX e TX do módulo ESP8266 respectivamente. É importante lembrar que a maioria dos módulos USB/SeriaL trabalham com 5V, como é o caso do conversor USB/Serial do Garagino, então a saída TX do conversor deve passar por um divisor de tensão, rebaixando o seu nível para 3.3V, tensão de operação do módulo ESP8266. Nós utilizamos um divisor de tensão com resistores de 330 ohms e 180 ohms. Esse divisor de tensão é utilizado apenas na linha TXD do módulo conversor já que na "volta" receberá 3.3V do módulo ESP8266 e será "entendido" como nível HIGH.

Para a alimentação do circuito vamos usar 4 pilhas AA em série. Como estas pilhas fornecem uma tensão de aproximadamente 6 volts, vamos usar um regulador de tensão LM1117 e dois capacitores de 10 µF para alimentar o ESP8216 com apenas 3.3V. Não alimente o módulo com 5V ou ele poderá queimar, alimente sempre com 3.3V!

O primeiro projeto que faremos será apenas fazer um LED piscar, portanto vamos ligar um resistor de 270R em série com um LED ligados na saída GPIO14 do módulo, conforme mostrado na figura.

Depois de tudo conectado deve-se abrir a IDE do Arduino e entrar com o código abaixo. Este código utiliza as mesma sintaxe e instruções de programas usados com placas Arduino, o que demonstra a facilidade de programação quando utilizado o módulo ESP8266.

 

void setup() {

  pinMode(14, OUTPUT);

}

 

void loop() {

  digitalWrite(14,HIGH);

  delay(1000);

  digitalWrite(14,LOW);

  delay(1000);

}

Agora, antes de carregar o código no módulo, devemos colocá-lo em modo de programação. Para isso, deve-se "resetar" o módulo, mas com o pino GPIO0 em nível lógico baixo. Assim, segure o botão da esquerda (GPIO0) pressionado, e pressione o botão da direita (Reset) momentaneamente. 

Agora, com seu módulo em modo de programação, é só carregar o código pressionando o botão "Upload" na IDE do Arduino, normalmente. O tempo de carregamento do programa é sensivelmente maior do que nas placas Arduino, mas ao final do carregamento, o LED colocado na saída GPIO14 deverá piscar.

Esperamos que esse tutorial lhe ajude a começar seus projetos com ESP8266 na plataforma Arduino. Boa sorte!

Referências:

https://github.com/esp8266/Arduino/blob/master/doc/reference.md

Exibições: 44950

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Vanildo Braga em 18 fevereiro 2016 às 12:25

Obrigado, Flávio, mas esta não consigo instalar com a IDE 1.6.7. nem com a 1.6.6.  Somente com a 1.6.5.

Comentário de Flavio Hernan em 18 fevereiro 2016 às 12:09

Vanildo caso tenha dúvidas consulte o manual de instalação em:

https://github.com/esp8266/Arduino/

Seria essa? 

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Comentário de Vanildo Braga em 18 fevereiro 2016 às 6:47

Bom dia José Gustavo!

Vc poderia enviar as URLs que estão em "Preferências" na sua IDE?

Grato!

Comentário de Flavio Hernan em 17 fevereiro 2016 às 22:35

 Jauberth Weyll,

você consegue colocar no modo de programação?

Qual o é seu conversor usb-serial?

Comentário de José Gustavo Abreu Murta em 17 fevereiro 2016 às 21:59

Você já consegui acesso via porta serial ? 

Qual placa é a sua ? Qual firmware ?

Comentário de Jauberth Weyll abijaude em 17 fevereiro 2016 às 20:53

Caros, 

Estou tentando implementar esse tutorial mas não obtive êxito ainda. Minha IDE é a 1.6.6. Consigo complilar o código, mas ao enviar aparece o seguinte:

Warning: espcomm_sync failed

error: espcomm_open failed

Comentário de Vanildo Braga em 16 fevereiro 2016 às 15:56

O erro acontece mesmo antes de fazer o uploader. Já executando o "verificar", A IDE desconhece as placas ESP8266! Aminha placa está com o firmware "v0.9.2.2 AT Firmware.bin"

Comentário de Vanildo Braga em 16 fevereiro 2016 às 15:47

Ok, Flávio, instalei o Python, mas não tinha ideia do seu funcionamento! Instalei a versão 1.6.6 da IDE do Arduino e tentei novamente instalar as placas ESP8266. Aconteceu o mesmo erro da versão 1.6.7. 

Então voltei à velhinha 1.6.5.   Nesta tudo funciona beleza!   

Obrigado a vc e José Gustavo!

Comentário de José Gustavo Abreu Murta em 16 fevereiro 2016 às 15:27

O sua placa esta com firmware NODEMCU ??

A minha estava com o firmaware original da ESPRESSIF. 

Comentário de José Gustavo Abreu Murta em 16 fevereiro 2016 às 15:24

Veja a minha IDE :

Essas bibliotecas estão instaladas. A maioria foi instalada automaticamente:

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço