CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:30
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Como programar o NodeMCU com Arduino IDE



Introdução

Desenvolvida para ser uma plataforma open-source para desenvolvimento de projetos de IoT, a NodeMCU é sem dúvidas uma das placas baseadas no ESP8266 mais populares que existe no mercado. Entretanto, a sua linguagem de programação oficial é a Lua. Desenvolver projetos no NodeMCU com essa linguagem pode ser simples, mas requer o aprendizado de uma nova linguagem e a adaptação a um novo ambiente de desenvolvimento.

Pensando nisso, este tutorial tem como objetivo mostrar como você pode realizar a programação da sua placa NodeMCU através da sua Arduino IDE utilizando a própria linguagem do Arduino.

Lista de Materiais

NodeMCU ESP8266 V2

Sugestão de Leitura

Antes de prosseguir com esse experimento é importante que você tenha a Arduino IDE instalada em seu computador. Além disso você também precisará que os drivers da sua placa estejam instalados. Abaixo você encontra um link para tutoriais onde mostramos como fazer isso:

Configurando a Arduino IDE

A primeira coisa a se fazer é abrir a sua Arduino IDE. Depois vá em Arquivo -> Preferências:


Procure pelo campo URLs adicionais de Gerenciadores de Placas: e insira o link abaixo:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

O resultado deve ser o seguinte:


Clique em OK para salvar suas alterações e retornar a tela principal.

Agora clique em Ferramentas -> Placa -> Gerenciador de Placas:


Busque pela opção esp8266 by ESP8266 Community e clique no botão Instalar.


Após a instalação ser concluída, as placas da linha ESP8266 já estarão disponíveis na lista de placas da sua Arduino IDE.

Hardware

A placa conta com 10 entradas digitais GPIOs operando a 3,3 V e uma entrada analógica a 1,0 V. Com pinos para comunicação serial UART (RX/TX), I2C e SPI, ela se torna compatível com uma série de módulos e componentes que funcionam nas placas de Arduino convencionais, se mostrando então como uma ótima opção por ter a conectividade Wi-Fi já embarcada. Porém, é importante ficar atento que a placa trabalha com nível lógico 3,3V e tensões maiores que isso poderão danificá-la permanentemente.


Circuito

Monte o circuito conforme a imagem abaixo:


O Código

Copie o seguinte código para a sua Arduino IDE:


Após isso vá no menu Ferramentas -> Placas e selecione a placa NodeMCU 1.0 (ESP-12E Module).


Em seguida, ao abrir o o menu Ferramentas outra vez, você deve obter as seguintes configurações:
  • Placa: "NodeMCU 1.0 (ESP-12E Module)"
  • CPU Frequency: "80 MHz"
  • Flash Size: "4M (3M SPIFFS)"
  • Upload Speed: "115200"
  • Porta "COMx" (o número da Porta COM pode ser diferente de computador para computador)


Agora basta clicar no botão carregar para que o código seja enviado para a placa.

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 gravar o firmware de fábrica novamente.

O que deve acontecer

Esse é um exemplo simples onde você verá apenas o LED conectado à placa piscando.

Indo Além

Agora, além de poder programar a placa a partir da sua Arduino IDE, você também conta com uma série de exemplos para que você possa tomar como base para seus projetos com a NodeMCU. Basta ir em Arquivo -> Exemplos e você encontrará códigos para webserver, DNS, httpclient, entre outros.


Abaixo você encontra também alguns links para mais recursos sobre essa placa:

Solução de Problemas

error: espcomm_upload_mem failed

  • Este erro é comum quando a Porta COM não foi selecionada corretamente. Conecte sua placa e vá no menu Ferramentas -> Porta e verifique se a Porta COM selecionada corresponde a sua placa. (Dica: remova sua placa e veja qual porta COM sumiu, ela deve ser a que você procura).



Para fazer comentários é necessário estar logado. Efetuar login.

Você ainda nao é cadastrado? Cadastre-se agora!


andrelfcosta
date Enviado: 2020-07-27 02:32:43
comprei recentemente uma placa do arduino mega já com o wi-fi embutido gostaria muito que voces fizessem um tutorial iqual a esse passo a passo explicando como instalar e depois como testar a placa do Arduino Mega wi-fi

Giovanni5
date Enviado: 2020-07-27 10:00:23
andrelfcosta
Infelizmente não trabalhamos com este modelo de placa, portanto infelizmente não temos como desenvolver um tutorial como este para esta placa. Talvez você consiga um manual de instruções, ou até mesmo algum material de referência, diretamente com o seu fornecedor.

iurygarcia
date Enviado: 2019-10-07 18:54:29
o meu aparece o erro: esptool. FatalError to conect to ESP8266: Timed out waiting for packet header.
Poderiam me ajudar?

Giovanni5
date Enviado: 2019-10-08 09:32:25
iurygarcia
Você está com os drivers de comunicação da placa instalados corretamente? É possível que a placa não esteja se comunicando corretamente com o seu computador. Você pode tentar carregar o código com o botão "flash" (ou "boot", para alguns modelos) pressionado, e então, ao aparecer a mensagem "Connecting...", solte o botão.

vanessavallarini
date Enviado: 2019-09-15 02:49:02
Olá! Estou com problemas, fica a mensagem: Leaving...
Hard resetting via RTS pin...

Giovanni5
date Enviado: 2019-09-17 12:30:01
vanessavallarini
Essa mensagem é retornada quando o carregamento de código para a placa é finalizado, informando a sua finalização e indicando o próximo passo, ou seja, para a execução do código carregado, é necessário pressionar o botão "reset" da placa.

vanessavallarini
date Enviado: 2019-09-19 08:20:39
vanessavallarini
Bom dia Giovanni. O erro era a velocidade da porta serial x a velocidade que eu havia colocado em meu código.

Giovanni5
date Enviado: 2019-09-19 09:18:22
vanessavallarini
Ficamos felizes que tenha conseguido encontrar o erro de seu projeto, estamos a disposição para outras dúvidas.

hertergabriel4
date Enviado: 2019-08-06 21:03:32
Error downloading https://downloads.arduino.cc/packages/package_index.json
java.lang.RuntimeException: java.lang.Exception: Error downloading https://downloads.arduino.cc/packages/package_index.json
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onUpdatePressed$1(ContributionManagerUI.java:150)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Error downloading https://downloads.arduino.cc/packages/package_index.json
  
nao consigo instalar a url, oq eu faco?? ja reinstalei a IDE...

Giovanni5
date Enviado: 2019-08-07 09:13:18
hertergabriel4
Aparentemente, de acordo com a mensagem retornada, o link para download do pacote de placas está incompleto. Tente novamente o processo de instalação do pacote, porém adicione o link completo para download (http://arduino.esp8266.com/stable/package_esp8266com_index.json) e observe os resultados.

helder.hlo
date Enviado: 2019-06-12 14:00:06
Ok. Funcionou!!! Só um detalhe: Se não apagar a pasta indicada, bem rápido, no tutorial não funciona! Kkkk... já está bombando! Como sempre vcs estão de parabéns! Valeu.

helder.hlo
date Enviado: 2019-06-12 10:55:24
Bom dia. Fiz todos os procedimentos contudo o ESP32 não recebe nenhum Sketch e sempre é o mesmo erro:
esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
_
a porta serial _
 selecionada não existe ou sua placa não está conectada
Alguma dica? 
Grato!

Giovanni5
date Enviado: 2019-06-12 12:02:10
helder.hlo
Você quer realizar o procedimento para carregar o código para a placa ESP32 (https://www.robocore.net/loja/iot/esp32-wifi-bluetooth)? Este tutorial é utilizado para carregar o código para a placa NodeMCU (https://www.robocore.net/loja/iot/nodemcu-esp8266-12-v2). Para carregar o código para a placa ESP32, siga o procedimento do tutorial a seguir, https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/.

freitas85
date Enviado: 2019-04-14 21:55:13
Encontrei problema na instalação da url:

Erro durante o download de https://downloads.arduino.cc/packages/package_index.json
java.lang.RuntimeException: java.lang.Exception: Erro durante o download de https://downloads.arduino.cc/packages/package_index.json
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onUpdatePressed$1(ContributionManagerUI.java:150)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Erro durante o download de https://downloads.arduino.cc/packages/package_index.json
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:139)
	at cc.arduino.contributions.packages.ContributionInstaller.download(ContributionInstaller.java:333)
	at cc.arduino.contributions.packages.ContributionInstaller.downloadIndexAndSignature(ContributionInstaller.java:307)
	at cc.arduino.contributions.packages.ContributionInstaller.updateIndex(ContributionInstaller.java:285)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onUpdatePressed$1(ContributionManagerUI.java:146)
	... 1 more
Caused by: java.nio.file.FileSystemException: C:\ProgramData\MATLAB\SupportPackages\R2017b\3P.instrset\arduinoide.instrset\idepkgs\package_index.json.tmp: O arquivo já está sendo usado por outro processo.

	at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
	at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
	at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
	at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269)
	at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103)
	at java.nio.file.Files.delete(Files.java:1126)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:156)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:132)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:137)
	... 5 more

O que pode ser feito???
Obrigado

Giovanni5
date Enviado: 2019-04-15 14:54:25
freitas85
Aparentemente há um problema na instalação de sua Arduino IDE. Reinstale o programa e refaça o processo de instalação do driver para NodeMCU.

hertergabriel4
date Enviado: 2019-08-06 20:44:52
freitas85
Ola!! estou com o mesmo problema... conseguiu resolver ?? ja reinstalei o programa

freitas85
date Enviado: 2019-08-07 15:30:20
freitas85
O problema estava em uma extensão do arduino no matlab. Depois que apaguei todas essas extensões, deu tudo certo!!!!

fabio.i9
date Enviado: 2019-03-15 18:37:18
Boa noite, minha IDE quando compilando está dando o seguinte erro:
exit status 1
Erro compilando para placa NodeMCU (ESP-12E Module), como posso resolver?

Giovanni5
date Enviado: 2019-03-18 11:52:11
fabio.i9
Pode se tratar de um erro no código ou inconsistência de bibliotecas instaladas, verifique se a Arduino IDE apresenta mais alguma mensagem de erro sobre o código. Além disso, pode se tratar de um problema na instalação do driver do Node MCU.

asboente
date Enviado: 2018-11-13 23:31:27
Obrigado pela dica!

rudherison1
date Enviado: 2018-11-01 17:22:06
o meu esta dando esse erro na ide do Arduino

Erro durante o download de https://github.com/esp8266/Arduino/releases/download/2.4.2/esp8266-2.4.2.zip
java.lang.RuntimeException: java.lang.Exception: Erro durante o download de https://github.com/esp8266/Arduino/releases/download/2.4.2/esp8266-2.4.2.zip
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:175)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.Exception: Erro durante o download de https://github.com/esp8266/Arduino/releases/download/2.4.2/esp8266-2.4.2.zip
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:139)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:73)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:55)
	at cc.arduino.contributions.packages.ContributionInstaller.install(ContributionInstaller.java:101)
	at cc.arduino.contributions.packages.ui.ContributionManagerUI.lambda$onInstallPressed$2(ContributionManagerUI.java:172)
	... 1 more
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1964)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:328)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:322)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1614)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1052)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:987)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
	at cc.arduino.utils.network.FileDownloader.downloadFile(FileDownloader.java:181)
	at cc.arduino.utils.network.FileDownloader.download(FileDownloader.java:132)
	at cc.arduino.contributions.DownloadableContributionsDownloader.download(DownloadableContributionsDownloader.java:137)
	... 5 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
	at sun.security.validator.Validator.validate(Validator.java:260)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1596)
	... 18 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
	... 24 more

Francois
date Enviado: 2018-11-01 18:32:26
rudherison1
A IDE encontrou um erro ao tentar fazer o download dos pacotes do ESP8266. Verifique que inseriu as configurações corretas e que a IDE consegue acessar a internet normalmente (sem bloqueio de firewall, por exemplo).