Objetivo

     Acessar o modo de programação do ESP-01 utilizando um módulo conversor USB/Serial, nesse tutorial será ensinado:

     Além de ser apresentado o exemplo blink de LED piscante para todos os casos, incluindo esquema de ligação.


Introdução

     O ESP-01 funciona através do chip microcontrolador conectado a sua placa, esse chip é o ESP8266, o mesmo torna possível a comunicação com a internet através de sinais de rádio Wi-fi. O componente em questão possui memória e processamento que possibilitam a integração por meio dos seus GIOs (GPIO0 e GPIO2). Além dessas características, os chips ESP8266 consomem pouca energia 3,3 Volts e cerca de 80-170 mA, funcionando em três modos de baixa corrente: sono leve (0,5 mA), sono moderno (15 mA) e sono profundo (10mA), sua corrente de pico é de 300mA.

     O ESP-01 apresenta dois modos de inicialização distintos, sendo eles: Modo Normal e Modo de Programação. Para carregar um programa devemos iniciá-lo no Modo de Programação, substituindo o firmware anterior por um novo, para isso é necessário o uso de um Conversor USB/Serial, podendo ser utilizado qualquer um dos modelos presentes em nossa loja.

Figura 1- ESP-01

Figura 1-ESP-01


Lista de Materiais

     Para concluir as atividades presentes nesse post, tenha em mãos os seguintes componentes:

Modos de Inicialização

     Como mencionado em Introdução, o  ESP-01  pode ser iniciado no Modo Programação ou no Modo Normal, durante a inicialização os pinos GPIO0 e GPIO2 são vistos como entrada (input) e seus níveis de tensão servem como indicativo para qual modo o ESP-01 deve inicializar, sendo que são naturalmente alto (H) por estarem internamente conectados com um resistor pull-up.




Conexão

     O chip ESP8266 possui uma UART que é utilizada para comunicação serial TTL, por essa razão é necessário que seja utilizado um Conversor USB/Serial (TTL) de 3,3V, sendo que conversor deve fornecer no mínimo 300mA, devendo ser mencionado que qualquer um dos conversores citados no post e presentes no site se adequam aos parâmetros exigidos.

 

Pinos do ESP-01

     Para atividade é necessário consultar a indicação de pinos do ESP01, já que as informações não vêm demarcadas no componente.

Figura 2- Pinagem do ESP-01

Figura 2- Pinagem do ESP-01


Modo Programação do ESP-01 utilizando o Conversor USB/Serial FT232RI-FTDI

     A placa FTDI é baseada no chip FT232RL que funciona como um conversor USB para serial TTL, permitindo a interface de dispositivos TTL para USB. o FTDI pode operar com tensão de 3,3 e 5V, sendo que para o nosso caso iremos trabalhar com 3,3V, então precisaremos colocar o jumper da própria placa nos 3,3V, dessa forma:

Figura 3- Jumper FTDIFigura 3- Jumper FTDI


Baixando o Driver da FTDI para Conversor USB/Serial FT232RI-FTDI

     Ao conectar o cabo USB na FTDI e em seguida conectar a mesma no computador pela primeira vez, o port não é identificado na IDE do Arduino, ficando da seguinte forma:

Figura 4- Conectando a FTDI pela primeira vez

Figura 4- Conectando a FTDI pela primeira vez


     Para que haja a comunicação com o PC, é necessário que seja instalado o Driver da FTDI no computador, esse Driver pode ser encontrado no site do fabricante através do link:

https://www.ftdichip.com/Drivers/VCP.htm

     Ao entrar no site devemos clicar em setup executable para baixar em zip a versão executável do driver em questão.

Figura 5- Passo 1 para baixar o driver da FTDI

Figura 5- Passo 1 para baixar o driver da FTDI

     Quando o arquivo já estiver baixado, é necessário abrir a pasta do zip e fazer a instalação clicando duas vezes no arquivo presente na pasta:


Figura 6- Passo 2 para baixar o driver da FTDI

Figura 6- Passo 2 para baixar o driver da FTDI

     Em seguida o computador irá abrir uma janela perguntando se o driver do FTDI pode fazer as modificações no dispositivo, ao permitir uma nova janela será aberta, clique em Extract como mostra a seguir:


Figura 7-  Passo 3 para baixar o driver da FTDI Figura 7-  Passo 3 para baixar o driver da FTDI


     Seguidamente clique em Avançar:

Figura 8-  Passo 4 para baixar o driver da FTDI

Figura 8-  Passo 4 para baixar o driver da FTDI

     Selecione a opção Eu aceito este contrato e clique novamente em Avançar:


Figura 9-  Passo 5 para baixar o driver da FTDIFigura 9-  Passo 5 para baixar o driver da FTDI

     Por fim, clique em Concluir:
Figura 10 -Passo 6 para baixar o driver da FTDI

Figura 10 -Passo 6 para baixar o driver da FTDI


     Feito esse processo o driver do FTDI já estará instalando e o Port disponível na IDE do Arduino, lembrando que a numeração do port pode variar de componente para componente.

Figura 11- Port identificada no Arduino

Figura 11- Port identificada no Arduino



Baixando a placa ESP8266

     Depois de instalarmos o driver, ainda teremos que baixar a placa que usaremos para desenvolvimento do nosso projeto.

     
     Vá na IDE do Arduino e clique em Arquivo>> Preferências


Figura 12- Passo 1: Baixando a placa

Figura 12- Passo 1: Baixando a placa

     
     Feito isso, uma janela semelhante a que se segue será aberta.

     Em URLS Adicionais para Gerenciadores de Placas devemos dar dois cliques no ícone de janela indicado pela seta na demonstração.


Figura 13- Passo 2: Baixando a placa

Figura 13- Passo 2: Baixando a placa


     Em seguida, devemos copiar e colar essa URL referente ao pacote de placas necessário:

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



      Atentando-se ao fato de que se você já tiver outra URL adicionada, como o caso do exemplo, pressione ENTER e adicione na linha seguinte, sem apagar as anteriores.


Figura 14-Passo 3: Baixando a placa

Figura 14-Passo 3: Baixando a placa


   
Adicionada a URL, clique em OK em ambas as janelas abertas.


Figura 15-Passo 4: Baixando a placaFigura 15-Passo 4: Baixando a placa

     Depois abra Ferramentas>>Placa: Nome do modelo de placa utilizado pela última vez>> Gerenciador de placas...


Figura 16-Passo 5: Baixando a placa

Figura 16-Passo 5: Baixando a placa


     Ao abrir a janela, pesquise por “esp8266” e clique em Instalar para baixar a última versão do pacote de placas.



Figura 17-Passo 6: Baixando a placaFigura 17-Passo 6: Baixando a placa


     Ao término do download, a placa já estará disponível para ser utilizada, para o caso iremos utilizar a Generic ESP8266 Module.



Figura 18-Passo 7: Baixando a placa

Figura 18-Passo 7: Baixando a placa


     Ao selecionar a placa e o port/porta disponível (lembrando que a FTDI precisa estar conectada com o PC para aparecer o port), as nossas configurações iniciais já estarão feitas, com isso, você já pode programar sua FTDI da sua forma, a seguir eu ensinarei como criar um modelo básico de blink (LED piscante) para o ESP-01 em conjunto com o FTDI.

 

Protótipo para Conversor UBS/Serial FT232RI-FTDI e ESP-01

     Primeiramente realizamos as ligações como mostrado na tabela e no protótipo a seguir, lembrando que pode ser necessário que você consulte a Figura 2- Pinagem do ESP-01 novamente.






Figura 19- Conexão do FTDI com o ESP-01 no Modo Programação

Figura 19- Conexão do FTDI com o ESP-01 no Modo Programação



Programação do ESP-01

     
     Realizadas as configurações iniciais e ligações dos componentes, abriremos o exemplo Blink da nossa IDE do Arduino em Arquivos>>Exemplos>>01. Basics>>Blink


Figura 20- Blink

Figura 20- Blink

     Ao abrir o Blink, mude todos os LED_BUILTIN para 2, como demonstrado a seguir.


Figura 21- Programação 1Figura 21- Programação 1

 

Figura 22- Programação 2

Figura 22- Programação 2


     Caso prefira copiar o código, selecione o texto abaixo e cole na sua IDE:

 

/* Blink com FTDI e ESP-01 Tutorial da Curto Circuito Site: https://www.curtocircuito.com.br/ */
void setup()
{
 pinMode(2, OUTPUT);
}

void loop()
{
  digitalWrite(2, HIGH); // LED Liga
  delay(1000); // Espera 1 segundo
  digitalWrite(2, LOW); // LED Desliga
  delay(1000); // Espera 1 segundo
}

     Realizado o código, clicamos na seta de carregar o programa para compilar o nosso sketch.


Figura 23- Carregando o programa

Figura 23- Carregando o programa


     Aguarde até aparecer a seguinte mensagem:


Figura 24- Carregado

Figura 24- Carregado


     Isso significa que o seu programa já está salvo no chip do microcontrolador.


Modo Normal do ESP-01 com o Conversor USB/Serial FT232RI-FTDI

     Agora vamos trabalhar com o ESP-01 no Modo Normal, para isso, desconecte o FTDI do seu computador e realize as seguintes alterações:

  • Desconecte GPIO0 do GND
  • Conecte o GPIO2 em série com o resistor para acionamento do LED
  • Conecte novamente a USB

 


Figura 25- Conexão do FTDI com o ESP-01 no Modo Normal

Figura 25- Conexão do FTDI com o ESP-01 no Modo Normal

     O circuito deve funcionar da seguinte forma:





Modo Programação do ESP-01 utilizando o Conversor USB/Serial- UART-CP2102

     
     O Conversor em questão é um componente composto por um chip CP2102, possuí saída de 3,3V ou 5V, no nosso caso iremos utilizar 3,3V para conexão com ESP-01, além disso, o componente conta com porta USB para conexão direta com o computador.  Sua função é converter USB para Serial TTL.

Figura 26- Conversor USB/Serial-UART-CP2102

Figura 26- Conversor USB/Serial-UART-CP2102



     Para início da nossa programação iremos baixar o pacote de placas ESP8266 na IDE do Arduino, siga tutorial acima Baixando a placa ESP8266 se necessário.

     Instalado o pacote de placas ESP8266, selecione Placa:”Generic ESP8266 Module” entrando em Ferramentas>>Placa: Nome da última placa utilizada>> Generic ESP8266 Module, em seguida conecte o seu módulo ao USB do PC e selecione a Porta em Ferramentas>> Porta>>COM Nº , a COM só ficará disponível no momento da conexão do módulo, vale relembrar que o número da COM pode variar de modelo para modelo.

Figura 27-Pré-configurações do Conversor UART-CP2102

Figura 27-Pré-configurações do Conversor UART-CP2102


      Terminando isso, podemos partir para as ligações do circuito, lembrando que talvez seja necessário conferir as pinagens do ESP-01 em Figura 2- Pinagem do ESP-01, pois o componente não apresenta inscrições em seu corpo.

 

Protótipo para Conversor UBS/Serial-UART-CP2102 e ESP-01

            Para realizar a comunicação entre o Conversor e o ESP-01 devemos fazer a seguinte ligação presente na tabela e no protótipo, lembrando que essa ligação está configurada para ativar o Modo Programação do ESP-01, em seguida iremos alterá-la.




Figura 28- Conexão do CP2102 com o ESP-01 no Modo Programação

Figura 28- Conexão do CP2102 com o ESP-01 no Modo Programação


     Realizadas as pré-configurações e conexões do ESP-01 com o CP2102, siga o ensinado em Programação do ESP-01 para conferir o código e todo o processo para carregar o programa, o processo e o programa serão exatamente iguais.

             

Modo Normal do ESP-01 com o Conversor USB/Serial-UART-CP2102

            Finalizado o carregamento, vamos trabalhar com o ESP-01 no Modo Normal, para isso, desconecte o CP2102 do seu computador e realize as seguintes alterações:

  • Desconecte GPIO0 do GND
  • Conecte o GPIO2 em série com o resistor para acionamento do LED
  • Conecte novamente a USB




Figura 29- Conexão do CP2102 com o ESP-01 no Modo Normal

Figura 29- Conexão do CP2102 com o ESP-01 no Modo Normal


     Com a realização desse exemplo obtemos o seguinte resultado:



Modo Programação do ESP-01 utilizando o Conversor USB/Serial- UART-CP2102- Micro USB

 
     O Conversor USB/Serial-UART-CP2102-Micro USB funciona de forma similar ao Conversor USB/Serial-UART-CP2102, a diferença se encontra no tamanho entre ambos, o conversor desse tópico é bem mais reduzido, além de possuir um pino a mais em comparação ao outro modelo.



Figura 30- Conversor USB/Serial-UART-CP2102-Micro USB

Figura 30- Conversor USB/Serial-UART-CP2102-Micro USB



     Para início da programação é necessário baixar o pacote de placas ESP8266 na IDE do Arduino, siga tópico acima Baixando a placa ESP8266 para tutorial desse processo.
 

     Depois de instalar o pacote de placas ESP8266, configure a Porta e a Placa de acordo com o modelo utilizado, nesse caso a placa será a Generic ESP 8266 Module, caso você não saiba fazer essa pré-configuração, leia o tópico Modo Programação do ESP-01 utilizando o Conversor USB/Serial- UART-CP2102 que está disponível logo acima, as configurações de ambos os módulos são exatamente iguais.

     Feita as pré-configurações, podemos partir para as ligações do circuito, consulte as pinagens do ESP-01 em Figura 2- Pinagem do ESP-01, pois o componente não apresenta inscrições.

Protótipo para Conversor UBS/Serial-UART-CP2102- Micro USB e ESP-01

     Para fazer o modelo proposto é necessário realizar a ligação presente na tabela e no protótipo a seguir, ressaltando que posteriormente essa ligação será alterada, pois o aterramento do GPIO0 funciona apenas para ativar o Modo de Programação.





Figura 31- Conexão do CP2102 Micro USB com o ESP-01 no Modo Programação

Figura 31- Conexão do CP2102 Micro USB com o ESP-01 no Modo Programação


     
     Feitas as pré-configurações e conexões do ESP-01 com o CP2102 Micro USB, siga o ensinado em Programação do ESP-01 para conferir o código e todo o processo para carregar o programa que serão exatamente iguais.

             

Modo Normal do ESP-01 com o Conversor USB/Serial-UART-CP2102-Micro USB

     
     Ao finalizar o carregamento, vamos trabalhar com o ESP-01 no Modo Normal, para isso, desconecte o CP2102 do seu computador e realize as seguintes alterações:

  • Desconecte GPIO0 do GND
  • Conecte o GPIO2 em série com o resistor para acionamento do LED
  • Conecte novamente a USB







Figura 32-Conexão do CP2102 Micro USB com o ESP-01 no Modo Normal

Figura 32-Conexão do CP2102 Micro USB com o ESP-01 no Modo Normal


     O funcionamento deve ser semelhante a esse:






Modo Programação do ESP-01 utilizando o Conversor USB/Serial para ESP-01

 

     O Conversor USB/Serial para ESP-01 é um adaptador para o ESP-01, sua função é converter a comunicação USB para Serial TTL, de forma a possibilitar a conexão da placa ESP-01 com o computador, assim como os outros mencionados anteriormente. A vantagem do Conversor em questão é a sua conexão direta com o ESP-01, possibilitando que o projeto fique com poucos cabos e mais sucinto.


Figura 33- Conversor USB/Serial para ESP-01Figura 33- Conversor USB/Serial para ESP-01


Figura 34- Conversor USB/Serial conectado ao ESP-01
Figura 34- Conversor USB/Serial conectado ao ESP-01

     No entanto, para ativar o Modo de Programação é necessário que sejam realizadas alterações na placa, já que ao conectar diretamente com o ESP-01, O GPIO0 e o GPIO2 do ESP-01 ficam em nível lógico alto, acionando automaticamente o Modo Normal de inicialização, como relembrado na tabela abaixo:





     Para trabalhar com conexão direta entre as placas, é necessário que seja soldada uma chave seletora entre o GPIO0 e o GND da ESP-01, da seguinte forma:

Figura 35- Modificações no ESP-01

Figura 35- Modificações no ESP-01


     Dessa forma, ao fechar contato o GPIO0 ficará em nível lógico baixo, conectado ao GND e inicializando no Modo Programação. Ao abrir a chave o GPIO0 ficará em nível lógico alto, devido ao resistor pull-up presente, dessa forma, inicializando o Modo Normal.

     Para nosso exemplo não conectamos o ESP-01 diretamente ao Conversor, pois utilizamos o GPIO2 para acionar o LED, de forma análoga aos exemplos anteriores.

 

Driver CH340G para Conversor USB/Serial

     Ao conectar o Conversor USB/Serial conectado ao ESP-01 no computador pela primeira vez, pode ser que a placa não seja reconhecida, pois para isso é necessário ter o Driver CH340G instalado no computador, caso o USB não seja reconhecido, ao acessar o seu Painel de Controle >> Gerenciador de Dispositivos, ele não estará disponível, ficando da seguinte forma:


Figura 36- Sem o Driver CH340G

Figura 36- Sem o Driver CH340G


     Entre “Mouse e outros dispositivos apontadores” e “processadores” deve aparecer “Portas COM e LPT”, caso não apareça, é necessário que você baixe o Driver mencionado, que se encontra no seguinte link:


https://www.arduined.eu/ch340g-converter-windows-7-driver-download/

 

     Finalizado o Download, abra o arquivo .zip:

     Clique em CH341SER

Figura 37- Passo 1:Instalando Driver CH341SER

Figura 37- Passo 1:Instalando Driver CH341SER


     Em seguida clique em SETUP.EXE


Figura 38- Passo 2:Instalando Driver CH341SER

Figura 38- Passo 2:Instalando Driver CH341SER


     Então será perguntado se o aplicativo pode fazer alterações em seu computador, aceitando isso, o Driver será instalado e aberto:

   
     Clique em INSTALL para instalar o Driver, em caso de erro, clique primeiro em UNINSTALL e em seguida em INSTALL novamente.

 

Figura 39- Passo 3:Instalando Driver CH341SER

Figura 39- Passo 3:Instalando Driver CH341SER


     Ao finalizar a instalação, desconecte sua placa e conecte novamente, seguidamente acesse o Gerenciador de Dispositivos e confira se a porta da sua placa foi detectada, deve estar assim:

Figura 40- Passo 3:Instalando Driver CH341SER

Figura 40- Passo 3:Instalando Driver CH341SER


     Lembrando que a COM pode mudar de modelo para modelo, no meu caso é COM4.

     
     Para dar início a programação é necessário ter o pacote de placas ESP8266 na IDE do Arduino, caso você não tenha esse pacote, siga o tópico acima Baixando a placa ESP8266 para tutorial desse processo.

     De posse do pacote de placas ESP8266, configure a Porta e a Placa de acordo com o modelo utilizado, nesse caso a placa será a Generic ESP 8266 Module, caso você não saiba fazer essa pré-configuração, leia o tópico acima Modo Programação do ESP-01 utilizando o Conversor USB/Serial- UART-CP2102, as configurações de ambos os módulos são exatamente iguais.

      Feita as pré-configurações, podemos partir para as ligações do circuito, consulte as pinagens do ESP-01 em Figura 2- Pinagem do ESP-01, pois o componente não apresenta inscrições em seu corpo.

 

Protótipo do Conversor UBS/Serial para ESP-01

           
     Para fazer o exemplo proposto é necessário realizar a ligação de forma indicada na tabela e no protótipo a seguir, ressaltando que posteriormente essa ligação será alterada, pois o aterramento do GPIO0 funciona apenas para ativar o Modo de Programação.

Obs: Paralelo indica que serão ligados como se ambos estivessem conectados de forma sobreposta, com o ESP-01 acima do Conversor.




Figura 41- Conexão do Conversor com o ESP-01 no Modo Programação

Figura 41- Conexão do Conversor com o ESP-01 no Modo Programação


     Feitas as pré-configurações e conexões do ESP-01 com o Conversor, siga o ensinado em Programação do ESP-01 para conferir o código e todo o processo para carregar o programa. O programa utilizado não sofrerá nenhuma alteração.

             

Modo Normal do ESP-01 com o Conversor USB/Serial

            Ao finalizar o carregamento, vamos trabalhar com o ESP-01 no Modo Normal, para isso, desconecte o Conversor do seu computador e realize as seguintes alterações:

  • Desconecte GPIO0 do ESP-01 do GND
  • Conecte o GPIO2 do ESP-01 em série com o resistor para acionamento do LED
  • Conecte novamente a USB





    Figura 42- Conexão do Conversor com o ESP-01 no Modo Normal

                                                                                                    Figura 42- Conexão do Conversor com o ESP-01 no Modo Normal

         
         O funcionamento deve ser semelhante a esse:




    Considerações finais

         Mediante análise dos principais Conversores USB/Serial disponíveis no mercado, pode-se inferir que todos cumprem bem suas funções, ficando a critério do projetista definir qual é o melhor para o seu projeto e para a sua forma de trabalho, apesar de alguns exigirem a instalação de um Driver para reconhecimento da USB, isso não se torna um empecilho no que se refere a facilidade de trabalho e a qualidade dos mesmos.

          Conheça o nosso site http://curtocircuito.com.br/ e confira todos os componentes utilizados nos exemplos, não esqueça de deixar seu feedback aqui nos comentários.


    Abraços, Equipe Curto Circuito :)