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:
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:
Onde Comprar:
Curto Circuito – Componentes Eletrônicos e Acessórios
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…
Obrigado pelo artigo Amigo !
Me ajudou muito, sem enrolação, direto, simples e bem explicado !
Marcus, obrigado pelo incentivo!
muito obrigado de como programar o sep82266 e o mcu .
O link: http://arduino.esp8266.com/stable/package_esp8266com_index.json, não está funcionando …..
Deveria estar temporariamente fora do ar.
Agora está OK
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!
Olá Carlos!
Flashear significa gravar o firmware.
Se você usar a IDE do Arduino não precisa se preocupar com isso.
Mas se você pretende usar a linguagem LUA para programar vai precisar de outra IDE e, caso seja necessário, precisará atualizar o firmware.
Para fazer isso, veja esse artigo:
http://www.electrodragon.com/w/ESP8266_NodeMCU_Dev_Board
José Cintra,
Obrigado pela presteza de sua resposta.
Entendi o significado.
Vou estudar mais este assunto para poder seguir com as experiências.