Utilizando o NodeMCU (ESP8266) com a IDE do Arduino

01

É muito comum nos acostumarmos a utilizar alguma tecnologia e quando alguma outra aparece surge aquela indisposição, de tentar algo novo, aprender outras maneiras de se fazer e etc…
Simplesmente estamos plenamente satisfeitos com as tecnologias usuais, nos mantemos na zona de conforto.
Pois bem, muita gente está acostumado à utilizar o Arduino para fazer seus projetos, e está satisfeito com isso, considera bem simples montar os sketches propostos, tem facilidade em entender os códigos de exemplo e já está acostumado em instalar novas bibliotecas. Portanto, uma boa notícia: O NodeMCU pode ser usado da mesma maneira, além de ter um poder de processamento muito maior do que o Arduino é possível utilizar o ambiente de desenvolvimento do Arduino  para programar o módulo e aproveitar de todas as vantagens citadas. Aqui vai um passo a passo que mostra o quão simples é essa alternativa:

Breve história

A fabricante do ESP8266 disponibiliza sua SDK em linguagem C, o que muitos programadores consideram bastante difícil de desenvolver códigos. Pensando nisso, no final de 2014 um russo chamado Ivan Grokhotkov (igrr), disponibilizou um repositório onde ele “traduzia” os comandos utilizados na IDE do Arduino para a SDK do ESP8266, o código foi então englobando mais e mais funções, angariando novos colaboradores e sendo amplamente adotado. Em maio de 2015,  foi lançada a versão 1.6.4 do Arduino que incorporava o ESP8266 ao gerenciador de placas do Arduino, sendo possível instalá-lo diretamente da IDE, não sendo necessário nenhum download externo ou a utilização de um gerenciador de versões. E isso tornou o processo muito mais fácil e único para todos os sistemas operacionais.

 

Como Fazer?

Entrando no menu de preferências do Arduino (Arquivo > Preferências, ou pela tecla de atalho: (CTRL + ,) é possível ver no fim da página um campo em branco com o título “Additional Boards Manager URLs:” nesse campo devemos colocar o endereço: http://arduino.esp8266.com/stable/package_esp8266com_index.json
que corresponde a um arquivo que indica ao Arduino os endereços à serem acessados para que as novas placas sejam instaladas.

preferences

Boards Manager

Acessando o menu Boards Manager (Ferramentas > Placa: > Boards Manager)  é possível encontrar um campo para pesquisar. Devemos pesquisar por ESP8266 (ESP já é suficiente), e então as boards esp8266 aparecerão e devemos clicar no botão Install, o menu dropdown antes do botão (circulado em amarelo) mostra a versão à ser instalada, por padrão essa versão é a mais nova. Então o download e a instalação das placas é feito e poucos segundos depois já é possível utilizar o NodeMCU ou o ESP8266.

2

Escolhendo a placa correta

Agora no menu de placas (Ferramentas > Placa:) temos  alguma opções novas, abaixo da linha dizendo ESP8266 Modules, se estivermos utilizando um NodeMCU é só escolher o NodeMCU 1.0 (ESP-12E Module) a versão 0.9 foi substituída muito rapidamente e poucas unidades chegaram ao Brasil. Agora, se você estiver utilizando apenas o ESP8266 com o auxílio de um conversor USB/Serial deve escolher a opção Generic ESP8266 Module (marcado em amarelo) e posteriormente conferir as características específicas do seu módulo nas opções inferiores, como por exemplo, a velocidade de upload e a quantidade memória ROM do módulo.

3

 

Subindo o código

Agora não tem mistério, a programação e o upload do código segue os mesmos padrões utilizados na plataforma do Arduino, inclusive a grande maioria dos exemplos disponíveis pro Arduino são executáveis também no NodeMCU. Uma dica pontual: O LED que se encontra soldado no próprio ESP está na porta 2, de maneira análoga ao Arduino UNO que contem um LED na porta 13, portanto, podemos utilizar o exemplo do Blink (Arquivo > Exemplos > 01.Basics > Blink) e trocar apenas os valores 13 para 2.


void setup() {
// initialize digital pin 2 as an output.
pinMode(2, OUTPUT);
}

void loop() {
digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(2, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}