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.
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:
- NodeLHC
- ESP201
- WeMos D1
- Adafruit HUZZAH ESP8266
- NodeMCU
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.
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:
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:
Instalação do Software:
- 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
- Execute a IDE do Arduino. Caso não tenha a instalado, faça-o por aqui: https://www.arduino.cc/en/Main/Software
- 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 - No menu Tools, configure a sua placa de acordo com o modelo que está usando. As opções mais comuns são:
- Board: NodeMCU, de acordo com seu modelo;
- CPU Frequency: 80 MHz;
- Upload Speed: 115200
- 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
- http://nodemcu.com/index_en.html
- http://embeddedcomputing.weebly.com/nodemcu-board.html
- http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
- https://www.youtube.com/watch?v=5hu9WHYJi98
- Versão em inglês do artigo
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…
O post Tutorial: Programando a NodeMCU (ESP8266) com a IDE do Arduino apareceu primeiro em BlogDoJoséCintra.