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 Flavio Hernan em 16 fevereiro 2016 às 12:29

Vanildo Braga, tente instalar pelo modo manual, mas precisa ter instalado o python no computador.

Comentário de Vanildo Braga em 16 fevereiro 2016 às 11:35

José Gustavo, vi seu comentário e por isso mesmo solicitei a ajuda, pois estou também IDE 1.6.7 e o Sistema Operacional é também o Windows 10. Tudo igual ao seu, mas ao mandar verificar o sketch, pela IDE, dá essa mensagem de erro: 

Placa nodemcuv2 (plataforma esp8266, pacote esp8266) é desconhecida

Erro compilando.

Testei outras placas 8266 e o erro continua!  Qual a URL que vc colocou em Preferências?

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

Vanildo, veja o meu comentário anterior :

Usei a IDE Arduino versão 1.6.7. O Sistema Operacional do meu PC é Windows 10. 

Funcionou perfeitamente !

Qual o erro que esta tendo ?

Comentário de Vanildo Braga em 16 fevereiro 2016 às 10:29

Bom dia! Instalei a IDE 1.6.7, mas ao carregar o sketch na placa ESP8266 12E, dava erro!  A URL:  http://arduino.esp8266.com/stable/package_esp8266com_index.json não é aceita nesta versão da IDE. 

Comentário de José Gustavo Abreu Murta em 13 janeiro 2016 às 19:24

Galera fiz o teste hoje do exemplo Blink com o meu ESP8266-12E .

Usei a IDE Arduino versão 1.6.7. O Sistema Operacional do meu PC é Windows 10. 

Funcionou perfeitamente !

Montei esse desenho do ESP8266-12E com a pinagem. 

Comentário de José Gustavo Abreu Murta em 13 dezembro 2015 às 12:06

Qual interface USB Serial esta usando ? Ela usa níveis de tensão de 3,3V?

Não esta havendo comunicação.

Comentário de José Gustavo Abreu Murta em 13 novembro 2015 às 14:45

De nada ! 

Abraços.

Comentário de Marcelo Rodrigues em 13 novembro 2015 às 6:53

José Gustavo,

Muito obrigado pelos links e valiosa contribuição!

Abraços!!

Comentário de José Gustavo Abreu Murta em 12 novembro 2015 às 19:25

Minhas dicas que estão no tópico "Conhecendo o ESP8266"

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

Dicas de alimentação 3,3V do ESP8266 ( Leia os posts seguintes) 

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Conexão USB Serial 

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 12E - Conexão USB Serial

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

E muito mais !

Comentário de Marcelo Rodrigues em 6 novembro 2015 às 7:14

Nenhuma. Você pode usar o mesmo raciocínio com todos os módulos, só tenha atenção que alguns módulos, como o ES8266-01 não possuem todos os pinos disponíveis como esse que usamos.

O módulo usado nesse tutorial é o ESP8266-12 em um breakout feito pelo Lab de Garagem.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço