Tutorial: Programando a NodeMCU (ESP8266) com a IDE do Arduino

Projeto com ESP8266 NodeMCU para controlar um led RGB usando a linguagem de programação do Arduino

Este é um artigo introdutório, um tutorial para quem já conhece a plataforma Arduino e está iniciando na programação do módulo ESP8266 através da plataforma NodeMCU ou qualquer outra da mesma categoria.

O módulo ESP8266

O módulo ESP8266 é um dispositivo IoT que consiste de um microprocessador ARM de 32 bits com suporte embutido à rede WIFI e memória flash integrada. Essa arquitetura permite que ele possa ser programado de forma independente, sem a necessidade de outras placas microcontroladoras como o Arduino, por exemplo.

esp8266
ESP8266

O problema é que, para criar um ambiente de desenvolvimento centrado no ESP8266, é necessário construir um circuito com outros componentes integrados para facilitar o trabalho. Por isso é que surgiram vários projetos de placas que incorporam o ESP8266, dos quais destacamos os seguintes:

Neste artigo vamos usar a placa NodeMCU como exemplo, mas o projeto pode ser facilmente adaptado para qualquer outra da mesma categoria.

A plataforma NodeMCU

NodeMCU é um ambiente completo de hardware e software para prototipagem IoT composto dos seguintes itens:

  • Placa controladora, composta de um módulo ESP8266;
  • Porta micro para alimentação (5 volts) e programação;
  • 10 entradas digitais GPIOs operando a 3,3V e uma entrada analógica GPIO a 1,8 V;
  • Kit de desenvolvimento baseado na linguagem Lua.
nodemcu
NodeMCU


Vantagens da plataforma NodeMCU em relação ao Arduino

  • Baixo custo;
  • Suporte integrado para Rede WIFI;
  • Tamanho reduzido da placa;
  • Baixo consumo de energia;

Desvantagens:

  • Necessidade de aprender uma nova linguagem e IDE;
  • Por ser um projeto recente, o SDK Lua ainda é instável;
  • Pinagem reduzida;
  • Documentação escassa.

Programar o NodeMCU pode ser tão fácil quanto programar o Arduino. A principal diferença está na pinagem da placa que descrevemos abaixo:

NodeMCU pinout
NodeMCU pinout

O nodeMCU possui 6 entradas GPIO extras. Todas elas podem ser programadas como PWM, I2C, 1-wire, com exceção da GPIO16 (D0)

Para conhecer mais detalhes sobre o ESP8266 e NodeMCU, consulte as referências no final do página.
O objetivo deste artigo é mostrar como podemos programar o NodeMCU usando a linguagem de programação e a IDE do Arduino pois, desta forma, estaremos reduzindo bastante as desvantagens que a plataforma apresenta.

Projeto exemplo com NodeMCU

O projeto de exemplo que vamos desenvolver consiste em fazer um led RGB piscar, alternando suas cores básicas (red, green, blue) dentro de um loop infinito.
Veja um vídeo demonstrativo:

Componentes necessários:

  • NodeMCU board;
  • Led RGB;
  • 3 resistores de 220 ohms
  • Fios jumpers.

Detalhes da montagem:

nodeMCU-rgb-led
Montagem nodeMCU-rgb-led

Onde Comprar:
Curto Circuito – Componentes Eletrônicos e Acessórios

 Instalação do Software:

  1. Antes de usar a placa, instale o driver USB no Sistema operacional, que pode ser o CH340 ou o CP2102, dependendo da versão da placa
  2. Execute a IDE do Arduino. Caso não tenha a instalado, faça-o por aqui: https://www.arduino.cc/en/Main/Software
  3. Abra a janela de Preferências e digite no campo “Additional Board Manager URLs” o seguinte endereço:
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  4. No menu Tools, configure a sua placa de acordo com o modelo que está usando. As opções mais comuns são:
    1. Board: NodeMCU, de acordo com seu modelo;
    2. CPU Frequency: 80 MHz;
    3. Upload Speed: 115200
  5. Pronto. Agora é só fazer como no Arduino: Let’s Sketch!

Observação: Quando você usas a placa NodeMCU com a IDE Arduino, o firmware Lua será apagado e substituído pelo sketch. Caso você queira usar o SDK Lua novamente, será nececessário “flashear” o firmware novamente.

O Sketch

/*
NodeMCU example: RGB Led blinking
2016 by José Cintra
wwww.josecintra.com/blog
*/

int redPin = D1, greenPin = D2, bluePin = D3;

void setup() {
  pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT);
  }

void loop() {
  digitalWrite(redPin, HIGH); delay(500);
  digitalWrite(redPin, LOW); delay(500);
  digitalWrite(greenPin, HIGH); delay(500);
  digitalWrite(greenPin, LOW); delay(500);
  digitalWrite(bluePin, HIGH); delay(500);
  digitalWrite(bluePin, LOW); delay(500);
  }

Recursos

Conclusão

Neste artigo, vimos como configurar o NodeMCU na IDE do Arduino. Nos próximos artigos vamos adaptar esse projeto usando Bluetooth e WIFI.
Este projeto pode ser facilmente adaptado para outras placas ESP8266 ou mesmo para Arduino, bastando modificar os pinos utilizados.

Até o próximo projeto…

8 comentários em “Tutorial: Programando a NodeMCU (ESP8266) com a IDE do Arduino”

  1. José Cintra
    Parabéns pelo artigo!
    Tenho algum conhecimento sobre o Arduino, e na semana passada adquiri a placa “NodeMCU (ESP8266)” ou seja nenhum conhecimento desta placa. A dúvida é no item “Observação”.
    …será necessário “flashear” o firmware novamente.
    – O que significar “flashear”?
    -E qual é o procedimento para faze-lo?
    Obrigado!

      1. José Cintra,

        Obrigado pela presteza de sua resposta.
        Entendi o significado.
        Vou estudar mais este assunto para poder seguir com as experiências.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *