Programando o ESP8266 em C no Eclipse

ESP8266 em C no Eclipse

Quem conhece o Arduino já deve ter ouvido falar do módulo ESP8266, que pode ser usado para integrar ao Arduino uma comunicação WiFi. Mas o ESP é mais poderoso que isso, ele pode ser programado diretamente na IDE do Arduino, onde você pode usar sua interface WiFi e controlar seus periféricos internos, assim como seus pinos de IO.

 

Mas ainda é possível avançar um pouco mais no desenvolvimento de firmware para o ESP8266. No artigo de hoje irei demonstrar o passo a passo de como integrar o ESP ao Eclipse utilizando um SDK (Software Development Kit) otimizado e o toolchain para o Xtensa (Chip no módulo ESP8266).

 

 

Requisitos

 

Para criação do ambiente, estou utilizando o Windows 7, mas o processo é muito parecido para as versões superiores. É necessário ter também:

  • O JDK java;
  • A IDE Eclipse para C/C++;
  • O GNU toolchain para Windows MinGW;
  • O toolchain para o Xtensa;
  • O SDK para o ESP8266.

 

Demonstraremos a seguir o processo e sequência de instalação de cada uma das ferramentas que irão compor nosso ambiente.

 

Existe um SDK oficial da Espressif (criadora do ESP), porém iremos utilizar um SDK criado por um Russo chamado Mikhail Grigorev. Ele criou um SDK otimizado para o ESP8266 que facilita bastante a utilização com o Eclipse.

 

Precisaremos de uma interface serial para comunicação do nosso sistema com o módulo, por esse motivo irei utilizar a placa NodeMcu. Essa placa é fácil de ser encontrada no Brasil, possui um ESP8266-12E, disponibiliza os pinos do módulo de forma fácil e conta com um chip conversor USB-UART integrado já no nível de tensão necessário para o ESP (funciona com 3,3V).

 

 

Instalação

 

Primeiro passo será instalar o JDK java. Acesse o site da Oracle, marque o aceite da licença e escolha a opção compatível com seu sistema operacional. Execute o arquivo baixado e siga o passo a passo de instalação (execute todas as instalações como administrador).

 

Tela do site da oracle onde pode-se baixar o Java JDK
Figura 1 - Download do Java JDK

 

Próximo passo é fazer o download da IDE Eclipse, a versão atual é a oxygen. Acesse a página de download do Eclipse para C/C++ e ao lado direito escolha a opção do seu sistema operacional. Na próxima página clique em Download para baixar o arquivo compactado (.zip). Após finalizar o download extraia o arquivo na raiz do computador para facilitar a busca (no meu caso ficou no C:).

 

Agora é hora do compilador, faça o download do instalador MinGw através do link, este é um instalador online, portanto você precisará de internet para instala-lo. Após conclusão do download, execute o arquivo e prossiga com a instalação. Não é necessário instalar o suporte gráfico, você pode desmarcar esta opção durante a instalação.

 

Usaremos a versão 2.0.9 do SDK para o ESP8266 que citamos acima. Existe uma versão mais atual, porém ela apresentou problemas com alguns exemplos, por isso optei por esta versão. Vamos fazer o download no repositório oficial do desenvolvedor neste link ao final da página.

 

Pagina de download do SDK do ESP8266 no repositório oficial do desenvolvedor.
Figura 2 - Download do SDK do ESP8266

 

Execute para fazer a instalação do SDK, ao final da instalação você terá uma pasta chamada Espressif na raiz do seu computador. Essa pasta contém uma série de arquivos que iremos utilizar em qualquer projeto.

 

Você irá precisar também de alguns pacotes adicionais do MinGw para compilar o firmware. O mesmo desenvolvedor do SDK que utilizamos disponibilizou um script para automatizar a instalação desses pacotes. Baixe o arquivo neste link, descompacte a pasta no seu computador e execute como administrador o arquivo install-mingw-package.bat (pode abrir o script no bloco de notas e ver o conteúdo). Uma tela do DOS irá se abrir e, após apertar a tecla enter, o sistema ira baixar e instalar alguns pacotes do MinGw.

 

 

Iniciando o Eclipse

 

Após instalarmos todos os softwares e pacotes necessários, é hora de iniciar o Eclipse. Vá até a pasta onde você descompactou a IDE, abra-a e inicie o arquivo eclipse.exe (pode adicionar um atalho na sua área de trabalho se preferir).

 

Ao iniciar, o eclipse ira perguntar onde será seu workspace, no meu caso eu criei uma pasta na raiz com o nome eclipse-workspace e a marquei como default para meus projetos. Escolha sua pasta e clique em Launch.

 

Após o eclipse carregar ele irá iniciar na tela de boas-vindas. Vá em File > Import, na janela que abrir selecione General > Existing Projects into Workspace e clique em Next. Na janela seguinte, marque Select root directory e busque a pasta examples que está dentro da pasta do SDK que instalamos anteriormente. Após isso, verifique se todos os exemplos estão selecionados e clique em Finish.

 

Janela onde os exemplos do ESP8266 são carregados para o Eclipse.
Figura 3 - Carregando os exemplos para o Eclipse

 

O eclipse irá abrir em sua tela principal com todos os exemplos do SDK que instalamos no lado esquerdo. Ao lado direito da tela, selecione a barra Build Targets, nela temos todas as ferramentas de gravação para cada exemplo. Na parte de baixo da tela, selecione a barra Console, nesta aba teremos todas nossas informações de compilação e gravação.

 

Ambiente do Eclipse com todos os exemplos para o ESP8266
Figura 4 - Tela do Eclipse com os exemplos do ESP

 

 

Gravação – Blink

 

Chegou a hora de fazer nosso famoso Blink, neste momento conecte sua placa com ESP8266 no computador (NodeMCU no meu caso) e descubra qual a porta COM foi disponibilizada para seu módulo no gerenciador de dispositivos do Windows. Caso não tenha, irá precisar buscar o driver no conversor USB-SERIAL usado na sua placa. No meu caso o chip utilizado é o CH340, o driver pode ser encontrado no site do fabricante.

 

Tela do gerenciador de dispositivos indicando a porta COM que devemos usar.
Figura 5 - Verificando a porta COM.

 

Ao lado esquerdo, em Project Explorer, selecione o projeto blinky. Nele existe a pasta user, nela temos o arquivo user_main.c, abra este arquivo. Nesse arquivo está o código do nosso blink.

 

Ainda em Project Explorer, dentro do nosso blinky temos o arquivo Makefile. Abra esse arquivo. Nele temos um parâmetro chamado ESPPORT, coloque o número da porta COM que seu módulo recebeu do computador e salve.

 

Ao lado esquerdo em Build Targets, selecione nosso mesmo projeto blinky. Nessa pasta temos todas as ferramentas para nossa placa.

 

Ponto do Makefile onde deve-se configurar a porta COM.
Figura 6 - Alteração da porta COM no Makefile

 

Um duplo clique no ícone flash irá compilar e, caso não tenha nenhum erro, gravar nosso código no ESP. Em poucos segundos devemos ter nosso blink funcionando.

 

Gif demonstrando o funcionamento do blink no ESP8266.
Figura 7 - Blink no ESP8266

 

 

Conclusão

 

Com esse conjunto de ferramentas funcionando temos a oportunidade de desenvolvermos projetos avançados com nosso ESP, inclusive usando o FreeRTOS e a stack LwIP por exemplo. Fique à vontade para explorar os exemplos e ver todas as possibilidades e não deixe de postar suas dúvidas, comentários e sugestões.

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Josemar Alves de Carvalho
Formado em Engenharia Elétrica com ênfase em Eletrônica pela Universidade São Judas Tadeu em 2014, atua em São Paulo com desenvolvimento de sistemas embarcados para controle de acesso. Apaixonado por eletrônica e sistemas embarcados, teve seu primeiro contato com microcontroladores no ensino técnico em 2008 e desde então utiliza-os em suas "invenções".

14
Deixe um comentário

avatar
 
7 Comment threads
7 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
8 Comment authors
Alfonso Favoretti FonsecaAndré FelicianoAugustoWillians de Almeida VieiraThiago Moreira Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Alfonso Favoretti Fonseca
Membro
Alfonsoff

Prezado Josemar, Obrigado, muito bom o seu tutorial. Funcionou tudo perfeitamente. Não sou programador especialista. Sou eletrônico com conhecimento em sistemas embarcados, mas sempre procurando utilizar um sistema que possa trazer facilidade, aliada a bons conteúdos e praticidade. Parabéns! O Blink funcionou, agora e continuar explorando. Abs.

André Feliciano
Membro
André Feliciano

Josemar, Ótimo artigo.

Consegui fazer colocar para funcionar os dois blinks de exemplos do Eclipse. Encontrei um site em inglês explicando como programar o FreeRTOS no Eclipse mas não carregou no nodeMCU.

Você tem alguma sugestão de tutorial ? Já tentei no Arduino IDE e no Eclipse

Augusto
Visitante
Augusto

Funciona com o ESP-07?

Josemar Alves de Carvalho
Visitante
Josemar

Ola Augusto.
Não testei pois não tenho o módulo, mas não vejo motivo para não funcionar.
Caso tenha algum problema avisa aqui.

Willians de Almeida Vieira
Visitante
Willians De Almeida

Muito bom seu artigo Josemar.... Abração

Josemar Alves de Carvalho
Visitante
Josemar

Obrigado Willians. Que bom que gostou.
Abraço.

Thiago Moreira
Visitante
Thiago Moreira

Será que a ESP8266 vem de fábrica com algum firmware onde posso me comunicar com comandos AT?

Josemar Alves de Carvalho
Visitante
Josemar

Ola Thiago.
Nunca usei o ESP com comandos AT, mas imagino que o firmware de fabrica funcione com comandos AT sim.
Você pode também reinstalar / atualizar o firmware do ESP, tem vários tutoriais em português.

Thiago Moreira
Visitante
Thiago Moreira

valeu Josemar. Ja to me comunicando com AT com a placa. Obrigado!

Arthur Staats
Visitante
Arthur Staats

Parabéns pelo artigo, excelente!

Josemar Alves de Carvalho
Visitante
Josemar

Obrigado Arthur!

phfbertoleti
Visitante
phfbertoleti

Muito legal!!

Josemar Alves de Carvalho
Visitante
Josemar

Obrigado Pedro, não está no nível dos seus artigos mas eu tento rs.

phfbertoleti
Visitante
phfbertoleti

Que nada, há nada de especial nos meus artigos. O seu ficou muito bom!