O módulo Wifi ESP8266 NodeMCU ESP-12E é uma das placas mais interessantes da família ESP8266, já que pode ser facilmente ligada à um computador e programada com a linguagem Lua e também utilizando a IDE do Arduino. Neste post vamos mostrar como utilizar Lua para programar o módulo.
Essa placa possui 10 pinos GPIO (entrada/saída), suportando funções como PWM, I2C e 1-wire. Tem antena embutida, conversor USB-TLL integrado e o seu formato é ideal para ambientes de prototipação, encaixando facilmente em uma protoboard.
Hardware Módulo Wifi ESP8266 NodeMCU
O módulo Wifi ESP8266 NodeMCU tem dois botões, conforme mostrado na imagem abaixo: Flash (utilizado na gravação do firmware) e RST (Reset). No mesmo lado temos o conector micro usb para alimentação e conexão com o computador.
No lado oposto, temos o ESP-12E e sua antena embutida, já soldado na placa. Nas laterais temos os pinos de GPIO, alimentação externa, comunicação, etc.
No Windows 7, a instalação e download de drivers foi feita de forma automática, e um dispositivo USB-TTL CH340 foi adicionado ao gerenciador de dispositivos. No nosso caso, foi atribuida a porta COM29:
Vamos programar o módulo utilizando o Lua, e isso pode ser feito, à princípio, de duas maneiras.
Programando o ESP8266 NodeMCU pela serial
Nesse método, vc pode utilizar um programa de terminal, como o Termite (download), para enviar os comandos diretamente para o módulo. Vamos montar primeiro um pequeno circuito para teste, que servirá para todos os exemplos deste post:
Conecte o módulo ao computador utilizando o cabo USB e entre no Termite (ou outro programa à sua escolha), selecionando a velocidade de 9600. Pressione o botão de reset no módulo e aguarde a exibição das informações sobre o firmware da placa:
Em seguida, digite no terminal o seguinte comando, que vai definir a porta 5 como saída. Pressione ENTER após cada comando para que ele seja enviado ao NodeMCU:
gpio.mode(1, gpio.OUTPUT)
Para acender o led, envie o comando
gpio.write(1, gpio.HIGH)
Para piscar o led, crie um pequeno loop com essa série de comandos:
while 1 do
gpio.write(1, gpio.HIGH)
tmr.delay(1000000)
gpio.write(1, gpio.LOW)
tmr.delay(1000000)
end
Essa rotina vai fazer com que o led pisque a cada 1 segundo. Você logo vai notar que não é possível parar o programa por meio de comandos, e essa rotina vai rodar continuamente. Para parar o loop e reiniciar o módulo, pressione o botão RST.
Programando o Nodemcu utilizando ESPlorer
Programar o módulo pela serial pode ser interessante, mas podemos melhorar esse processo utilizando um programa como o ESPlorer (download).
Com o ESPlorer você pode abrir diversas abas e programas ao mesmo tempo, salvar os programas em disco, formatar (zerar) o módulo, e muitas outras funções.
Ao abrir o ESPlorer, temos no lado esquerdo uma área onde vamos escrever o(s) programa(s), e na direita o/a console, onde podemos acompanhar em tempo real a comunicação com o NodeMCU:
Utilizando o exemplo do loop feito anteriormente, copie os comandos para a janela do lado esquerdo da tela, e em seguida clique no botão Send to ESP para enviar a programação para o NodeMCU:
Agora além de controlar o módulo, você tem a opção de salvar o programa para uso posterior.
Conectando o NodeMCU na rede wireless
Até agora só vimos como acionar as portas do NodeMCU por meio de programas, e já que temos um chip wireless ESP8266 no módulo, nada melhor do que acionar as portas do Nodemcu utilizando a rede sem fio. Para isso, carregue o programa abaixo no ESPlorer, colocando o nome da sua rede wifi e a senha nos campos NOME_DA_REDE e SENHA_DA_REDE, respectivamente:
-- Programa: Web Server com ESP8266 Nodemcu -- Autor: MakerHero -- Conexao na rede Wifi wifi.setmode(wifi.STATION) wifi.sta.config("NOME_DA_REDE","SENHA_DA_REDE") print(wifi.sta.getip()) -- Definicoes do pino do led led1 = 1 gpio.mode(led1, gpio.OUTPUT) -- Definicoes do Web Server srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on("receive", function(client,request) local buf = ""; local _, _, method, path, vars = string.find(request, "([A-Z]+) (.+)?(.+) HTTP"); if(method == nil)then _, _, method, path = string.find(request, "([A-Z]+) (.+) HTTP"); end local _GET = {} if (vars ~= nil)then for k, v in string.gmatch(vars, "(%w+)=(%w+)&*") do _GET[k] = v end end buf = buf.."<h1><u>MakerHero</u></h1>"; buf = buf.."<h2><i>ESP8266 Web Server</i></h2>"; buf = buf.."<p><a href="?pin=LIGA1"><button><b>LED 1 LIG</b></button></a> <br/><br/><a href="?pin=DESLIGA1"><button><b>LED 1 DES</b></button></a></p>"; local _on,_off = "","" if(_GET.pin == "LIGA1")then gpio.write(led1, gpio.HIGH); elseif(_GET.pin == "DESLIGA1")then gpio.write(led1, gpio.LOW); end client:send(buf); client:close(); collectgarbage(); end) end)
O programa configura o módulo para o modo station (estação) na linha 5, depois configura a GPIO como saída utilizando o comando gpio.mode. Para acessar a página web, você vai precisar do endereço IP atribuído ao módulo. No nosso caso o IP foi o 192.168.0.25.
Para descobrir o endereço IP, acesse o ESPplorer , selecione a opção =wifi.sta.getip() conforme a imagem abaixo e clique em SEND para que o endereço IP do módulo seja mostrado na console.
Acesse então o browser, digite o endereço IP e a página web do ESP8266 será exibida:
Gostou? Deixe seu comentário logo abaixo.
Boa tarde. Ja programo nessas placas a algum tempo, mas sabemos que são placa no formato de kit dev, já vem com adaptador serial, etc, coisas que não são necessárias depois de testado.
Mas eu gostaria de comprar Esp8266 mas para colocar em produção o que já foi testado no kit dev.
Mas nem sei como procurar
Olá Denis!
Você diz nessa forma aqui: https://www.makerhero.com/produto/modulo-wifi-esp8266-esp-12e/?
Abraços!
Vinícius – Equipe MakerHero
A minha placa esp12 não reconhece nenhuma porta do IDE do Arduino, o que pode ser?
Olá Adriano,
No gerenciador de dispositivos aparece o número da porta?
Você instalou no gerenciador de placas o esp8266?
Seu esp12 é com esp8266 ou esp32?
Temos este post aqui descrevendo como configurar ele na IDE do Arduino: https://www.makerhero.com/blog/programar-nodemcu-com-ide-arduino/
Abraços!
Vinícius – Equipe MakerHero
Gostei muito!
É possível alterar o IP e demais parâmetros da porta wifi e da serial?
Paulo,
Ele seleciona automaticamente.
Abraços!
Diogo – Equipe MakerHero
Ola primeiramente parabéns pelo post.
Fiquei muito empolgado em começar a programar o esp. Mais no momento eu estou utilizando linux.
Por acaso teria algum exemplo utilizando o SO linux?
Obrigado.
Adivar,
Você pode abrir esse programa no Linux desde que possua o Java instalado. Pra isso entre num terminal e digite:
java -jar ESPlorer.jar
Abraços!
Diogo – Equipe MakerHero
Professor Adilson, bom dia. Meu querido, eu consigo enviar comandos AT pelo serial monitor de um NoDe MCU ESP 8266 conectado a um notebook para outros NoDEs MCU’s conectados em rede WiFi? Na verdade professor, não consigo enviar comandos pelo monitor serial e ativar uma porta digital do NODE, como no arduino. Da pra se conseguir este efeito pelo NoDe MCU 8266? Grande abraço professor.
Muito Show!!!! Sempre!!!!
Valeu, Marcelo!
Que bom que curtiu 😀
Abraços!
Diogo – Equipe MakerHero
Parabéns pelo tutorial. Gostaria de saber se é possível trabalhar com o módulo NodeMCU com o ESP8266 utilizando um display 16×2 e com o Módulo Serial I2C para operar com a tensão de 3,3V. Estou usando o NodeMCU em meu projeto e quero ligar um display nele, mas parece que o ESP8266 opera apenas com a tensão de 3,3V.
Obrigado!
para conectar na rede wireles eu coloco o código na parte direita do esplorer ou na esquerda?
Olá Victor,
No lado esquerdo (lado indicado como PROGRAMA).
Abraço!
Rosana – Equipe MakerHero
Tem como executar um arquivo via programação no esp8266? Tipo MP3 ou exe ?
Olá,
Você poderia dar mais detalhes do que deseja fazer?
Abraço!
Rosana – Equipe MakerHero
Boa noite
Muito bom esse tutorial
Teria algum tutorial, onde mostre a comunicação entre o ( Node MCU), com um aplicativo mobile
Exemplo mandar informação do Arduíno traves do ( Node MCU), para que salve essa informação através de um aplicativo.
tipo exemplo pegar informação de uma tag Nfc para salvar em um aplicativo
Olá,
Acredito que essas duas postagens podem te ajudar:
https://www.makerhero.com/blog/robo-com-nodemcu-controlado-via-celular/
https://www.makerhero.com/blog/planta-iot-com-esp8266-nodemcu-parte-3/
Abraço!
Rosana – Equipe FelipeFlop
Boa noite
Muito bom esse tutorial
Você Teria algum tutorial, onde mostre a comunicação entre o ( Node MCU), com um aplicativo mobile
Exemplo mandar informação do Arduíno traves do ( Node MCU), para que salve essa informação através de um aplicativo, um exemplo uma informação contida em uma tag nfc.
Olá Adrialdo,
Acredito que essas duas postagens podem te ajudar:
https://www.makerhero.com/blog/robo-com-nodemcu-controlado-via-celular/
https://www.makerhero.com/blog/planta-iot-com-esp8266-nodemcu-parte-3/
Abraço!
Rosana – Equipe FelipeFlop
Tentei ligar(energizar) o ESP8266 NodeMCU pela via usb no meu notebook porém ele aquece muito, o que seria recomendado fazer?
Olá Leonardo!
Ao ligar em uma fonte acontece a mesma coisa?
Você pode colocar um dissipador também!
Abraços!
André – Equipe MakerHero
Matéria muito interessante. Estou iniciando nessa área e procuro material para aprender a Linguagem Lua.
Pode me auxiliar nessa literatura, projetos com a sua experiência??
Como configurar esse módulo para montar uma rede mesh com vários deles?
O que pode ser?
a mim deu omesmo erro
Olá Marcos e Luis!
Quando vocês vão no gerenciador de dispositivos aparece o NodeMCU? Como ele aparece?
Testaram programar com outras velocidades (baud rate)?
Abraços!
André – Equipe MakerHero
Como controlar 32 reles com node mcu, recei uma dica de um amigo, mas nao entendi, por favor poderia me ajudar ? Uma sugestão para o controle dos reles, seria usar decodificadores, mantendo apenas 1 microcontrolador. Para acionar 32 reles como “saída”, você poderia utilizar 5 “entradas” (2^5). Ou seja, 5 I/Os do NodeMCU acionariam o(s) decodificador(es) e este(s) atuariam nos reles.
Desta maneira se você programaria as 5 saídas do NodeMCU assim:
00000 aciona rele 1
00001 aciona relê 2
00010 aciona relê 3
…
11111 aciona relê 32
Existem diversos tipos de decoders na praça. Um mais comum é 74HC238 (3 to 8). Existem outros menores e maiores (por exemplo 2 to 4 ou 4 to 16).
Boa noite, como faço pra zerar a memória através do ide arduino. Pois parece que só o exemplo blink roda corretamente.
Estou usando o módulo Node MCU ESP 8266 para fazer a leitura analógica de um sinal que possui componentes de até 40 Hz de um sinal de eletroencefalograma para um trabalho de iniciação científica da universidade. Estava com um problema de corte do sinal que consegui resolver acrescentando um delay no código. Desta forma, o módulo é programado para servir como ponto de acesso onde o meu computador (cliente) acessa usando o protocolo TC/IP. Assim quando um cliente acessa meu módulo, o mesmo passa a enviar as informações que serão recebidas pelo computador. Fiz um programa no Labview para receber essas informações e mostrar os dados brutos num gráfico, mas preciso aplicar alguns filtros digitais neste software e avaliar o espectro de freqüência deste sinal. Vou colocar aqui tanto meu código em linguagem arduino que programei o módulo, quanto o .VI para você entender melhor. Eu poderia usar um protocolo UDP mas não conseguir programar meu módulo para usar esse protocolo.
A forma como eu reduzi a taxa de amostragem acho que não é a da mais elegante, mas não consegui achar outra forma que eu pudesse, por exemplo, mudar o prescaler que faz mudar a taxa de amostragem desse módulo. Vou postar uma figura de um sinal senoidal mostrado no gráfico do LabView antes de eu colocar o delay. E com o delay a forma está sem esses cortes na senoide, ou seja, está mostrando uma senoide normal.
Pelo o que pesquisei e conversei com alguns professores, a taxa de amostragem estava muito alta, assim, caso algum pacote de dados não fosse enviado corretamente o módulo não tinha tempo suficiente para reenviar o pacote e receber os novos dados para um novo pacote de dados. Então começava dar erro e cortar o sinal no gráfico.
Agora o problema está em aplicar alguns filtros digitais neste software e avaliar o espectro de freqüência deste sinal. Pelo o que entendi do LabView, para realizar essas tarefas o sinal precisa ter uma taxa de amostragem do sinal fixa. Então fiz uma pequena rotina para ver se pelo menos a taxa de amostragem do sinal pelo módulo era constante e verifiquei que já ali não era. Vi leituras de tempo entre 160 us até 180 us entre uma amostra e outra sem o delay de 4ms que está no código. Acho que no envio das informações pode ocorrer alguma variação e até no LabView alguma variação nesses valores, tomara que eu esteja enganado.
Para tentar resolver esse problema tentei usar alguns blocos do LabView que pudessem me auxiliar na resolução deste problema e foram basicamente 3: Build Waveform, Align and Resample Express VI, Resample Waveforms (single shot). Minha idéia foi reconstruir minha forma de onda com uma taxa de amostragem pré-determinada por mim. Mas acho que não sei usar essas ferramentas corretamente. Tentei de várias maneiras e infelizmente não obtive êxito.
O link para baixar meu programa .VI e programa arduino é: “https://drive.google.com/drive/folders/1_FItfUE8IW52u7Ec4WdggadKnMH7QR5O?usp=sharing”
Alguém pode me ajudar resolver esse problema?
Muito bacana, sabe onde posso achar essa placa em grande escala e barato ??
Boa Tarde! Posso desenvolver programas em lua e revender o modulo sem problemas De licenças De software? Ou seja, tenho um produto para desenvolver e quero colocar para venda. Obrigado
O meu aparecei esse erro para mim:
¢ÔªTWT-•ª‹½å:$4Æ%U4SªCáWaiting answer from ESP – Timeout reached. Command aborted.
=wifi.sta.getip()
=w:*«¹+¹ÙŽ¥)Õê
Olá Adilson, seu trabalho é fantástico. É uma excelente fonte de informações.
Me tire uma dúvida por favor….
Instalei no meu módulo nodeMCU ESP8266 V3 um sketch com o nome de uma rede e uma senha para uso como access point. O problema é que quando gravo outro sketch, que não tem nada a ver com o primeiro, após o reset, aparece a rede de access point. Não sei como remover essa opção. Acredito que está causando instabilidade no roteador, pois o mesmo fica caindo quando ligo o nodeMCU. Desde já agradeço.
show. simples e pratico parabems
Moço não consigo ver o ip da minha
Boa noite.
Parabéns pela matéria.
Tenho uma dúvida, utilizando lua para programar.
Existe alguma forma que após programado o esp8266, não seja possível ler os códigos que estão dentro dele?
excelente explicação , teria como comunicar 2 entre si
Oi Adilson!
Gostaria de saber, por gentileza, como posso desinstalar corretamente o nodeMCU, pois, estou tendo alguns problemas com bibliotecas, como, por exemplo, abaixo:
Arduino: 1.8.5 (Windows 10), Placa:”NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS)”
Foram encontradas múltiplas bibliotecas para “ESP8266WiFi.h”
Usado: C:\Users\Daniel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi
Não usado: C:\Users\Daniel\Documents\Arduino\libraries\ESP8266WiFi
Foram encontradas múltiplas bibliotecas para “ESP8266mDNS.h”
Usado: C:\Users\Daniel\Documents\Arduino\libraries\ESP8266mDNS
Não usado: C:\Users\Daniel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266mDNS
exit status 1
Erro compilando para a placa NodeMCU 1.0 (ESP-12E Module)
Não sei como ele pode encontrar múltiplas bibliotecas, sendo que, em Preferências, Local do Sketchbook: está C:\Users\Daniel\Documents\Arduino e ele vai encontrar bibliotecas duplicadas em …AppData\Local\Arduino15…
Obrigado
ola não consigo conectar meu nodeMsu com wif e o blynk
estou com ide arduino 1.8.5
e o sketch abaixo nada acontece, nem os leds do node mostra interação.
pode ajudar por favor.
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include
#include
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = “e0f0a066d3e44bfb9b59bd2d3c4eac4a”;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “Giba Coli”;
char pass[] = “……….”;
void setup()
{
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
}
Olá Colevati!
Pelo que entendi você pretende usar o aplicativo Blynk para controlar seu NodeMCU correto?
Não sei se seu código funcionaria, me parece ter algumas falhas.
Tem dois includes por exemplo que não estão incluindo nada:
#include
#include
Nunca usei o Blynk a fundo mas me parece que aqui vai precisar de alguma senha pra conectar.
char pass[] = “……….”;
Qual tutorial você seguiu para chegar nesse código?
Você instalou a biblioteca Blynk para IDE Arduino? https://github.com/blynkkk/blynk-library/releases/tag/v0.4.10
Tente seguir outros tutoriais sobre Blynk e entender como funciona:
http://pedrominatel.com.br/pt/esp8266/iot-de-forma-facil-com-o-blynk/
http://blog.fazedores.com/esp8266-controle-o-nodemcu-com-um-app-ios-e-android/
https://mjrobot.org/2016/10/15/do-blink-ao-blynk/
http://www.dobitaobyte.com.br/blynk-iot-e-mqtt/
https://www.youtube.com/watch?v=CkoUMTwgd4c&lc=z13rhx0hqsqyg3ke422ycbnaezqhzvfte
https://www.hackster.io/abhijitbrain/iot-home-automation-node-mcu-blynk-12cc34
https://www.youtube.com/watch?v=RLKuIHaraKs
Giovani, obrigado pela ajuda, o problema era o roteador wifi da NET.
liguei no roteador do smartfone e funcionou acessou a rede.
Pergunta, porque nao funciona com o rotrador wifi da net?
teria como? existe algum artigo?
Boa Noite, parabens pelo projeto que liga e desliga o led pela Internet.
Seria possivel voce adicionar no codigo uma pagina com LOGIN e SENHA antes de direcionar para essa pagina onde liga e desliga o LED ? Estou precisando de um codigo assim mas nao obtive sucesso tentando cria-lo.
Grato, Eutenio de Melo.
Saudações Prof. Adilson!
Fiquei meio a ver navios!!! (nunca mexi com esse tal de Lua)
Baixei os arquivos dessa página: https://www.dropbox.com/sh/ab7oqd44r9min7f/AADWkQegkrM0wEOov0b5DSzIa?dl=0
e, gostaria de, simplesmente gravar em uma placa NodeMCU; me senti meio confuso com o texto;
Se vc puder simplificar pra mim, digo, quais arquivos da página devo usar para gravar no nodeMCU, lhe agradeço muito.
Senhores bom dia!
Segui todos os passos conforme este tutorial, porém não conseguimos fazer ele comunicar. Colocamos o IP conforme o procedimento no ESplores e no navegador tanto no chromer e explorer! Utilizei aqui roteador wireless 3G/4G da TP-LINK ! Poderia por favor nos ajudar?
Att
Flavio Moraes
Entao. Consegui conectar, vi o ip, mas nao consigo navegar e acessar via web para acender e apagar tal led. O que pode ser?
Bom dia!
Gostaria de saber se existe alguma forma de extrair um código já instalado no NodeMCU.
Pois preciso modifica-lo o código existente, pq sou novo em programação e ainda não consigo escrever um por completo.
Obrigado
Bom, muito bom, é de muita importância no meu caso que ainda sou leigo na área que ainda estou estudando muito satisfatório.
Olá, gostaria de saber se funciona com o ESP-07, o qual só possui a RX/TX para comunicação.
Olá Filipe! Estou usando uma placa Esp8266 Esp-1 e um FDTI que já vem com os pinos para que simplesmente faço o encaixe da ESP. Porém, ao submeter meu código recebo a mensagem: esptool v0.4.6 – (c) 2014 Ch. Klippel
setting board to ck
setting baudrate from 115200 to 115200
setting port from COM1 to COM6
setting address from 0x00000000 to 0x00000000
espcomm_upload_file
stat C:\Users\alves\AppData\Local\Temp\arduino_build_156539/sketch_aug30b.ino.bin success
setting serial port timeouts to 1000 ms
opening bootloader
resetting board
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2013 bytes of data
read 0, requested 1
error: failed reading byte
Ocorreu um erro enquanto o sketch era carregado
warning: espcomm_send_command: cant receive slip payload data
O que devo fazer? já tentei fazer a gravação usando o Arduíno, mas tenho o mesmo problema.
Bom dia, parabéns pelo conteúdo, tenho uma duvida eu fiz o passo a passo porem quando digitei o programa no Esplorer não ficou habilitado a opção Send to esp, só fica abilitado quando eu aperto o open no lado direito do esplorer e aperto o botão de reset do nodemcu, dai aparece a seguinte mensagem de erro: Can’t autodetect firmware, because proper answer not received (may be unknown firmware).
Please, reset module or continue.
~?–4“R¶£ÿOAE’COAE’CO”µå0†J[àE>‡XÀM5
þ‚,Ò�x‹$R’OZÛRZÇ8”Ð
O que estou fazendo de errado?
Boa tarde
Se colocar código no esp8266 12e como faço para limpar este código para inserir outro?
Grato! 🙂
Olá Gleison!
Quando gravar um novo código o anterior será apagado automaticamente.
Olá, tenho duas duvidas, tem como eu colocar um controle de portao para ser acionado pelo modulo relé? tem outra forma?
o controle usa 12v preciso ultilizar uma fonte ou pode ser a pilha dele mesmo para alimentalo?
Bom dia Adilson. Sou iniciante no NodeMCU, e gostaria de alguns esclarecimentos:
– para usar o ESPlorer necessito estar com o firmware carregado no ESP8266?
– quando uso a IDE Arduino, ela compila e grava por cima do endereço do firmware, certo?
– quando uso o gravador de firmware, existe a possibilidade de gravar em diferentes endereços. o que posso grava além do firmware?
Desculpe pelo tamanho do questionamento.
Abraços
galera. Eu consigo enviar os codigos para a placa, pega o ip certinho, eu até consigo pingar na placa.. mas quando acesso via browser nada acontece. Alguma ideia? Só recebo ERR_CONNECTION_REFUSED =/
Bom dia!
Tb nao consigo mais acessar, vc conseguiu resolver?
Olá a todos, eu também consigo enviar os códigos para a placa, pega o ip certinho, eu até consigo pingar na placa.. mas quando acesso via browser nada acontece. Alguma ideia? Só recebo ERR_CONNECTION_REFUSED
tambem estou comn esse problema
O primeiro código funcionou tudo direito mas o segundo dá sempre erro ao compilar. Ou dá nil ou dá:
dofile(“ConectarRedeWireless.lua”);
192.168.137.57 255.255.255.0 192.168.137.1
ConectarRedeWireless.lua:13: address in use
stack traceback:
[C]: in function ‘listen’
ConectarRedeWireless.lua:13: in main chunk
[C]: in function ‘dofile’
stdin:1: in main chunk
pode me ajudar não consigo programar no meu modemcu ,a porta não abre , sera que tenho que fazer alguma coisa para configura-lá ?
ainda dá esse erro error: Failed to open COM3
desde já agradeço !!!
No programa ESPlorer o botão ‘Send to ESP’ está oculto, ou seja, não posso cliclar. Há algum procedimento além de colocar o código loop na tela esquerda?
Boa tarde pessoal tudo bem?
Eu tenho uma placa esp8266 conectada a um modulo j2me via serial, consegui fazer essa placa comunicar com um servidor de socket na internet utilizando comandos AT em seu modulo transparente.
Bom o problema de utilizar a placa dessa forma é que eu acabo tendo que configurar o ssid e password na mão dentro da midlet , o que para um usuário é extremamente ruim.
Para contornar esse problema eu carreguei o firmware do nodemcu no esp8266 e montei na linguagem lua um webservice que o usuário vai escolher uma rede disponível e digitar a sua senha via browser, isso ja esta funcionando.
A minha pergunta é, eu consigo abrir uma conexão socket via comando serial utilizando o nodemcu? Se sim alguém teria algum exemplo para me passar.
Desde ja agradeço pela atenção dispensada.
Só aparece isto no Termite e não aceita nenhum comando.
wdt reset
load 0x40100000, len 27528, room 16
tail 8
chksum 0x7f
load 0x3ffe8000, len 2184, room 0
tail 8
chksum 0xa8
load 0x3ffe8888, len 8, room 0
tail 8
chksum 0xfb
csum 0xfb
slƒ{lŒŸã„c[0C]þ
mac 1005
Boa tarde,
Primeiramente parabéns pelo Blog, conteúdo muito interessante e de simples compreensão. Porém, eu trabalho com programação e não intendo muito de eletrônica, e gostaria de programar alguns sensores do esp8266 nodemcu. Eu vi que alguns você pode conectar direto na placa sem o protoboard.
Segue um que eu vi na internet (RGB SMD LED Module 5050): http://www.ebay.com/itm/181307916806?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Gostaria de saber, o que eu deveria levar em consideração, quando for comprar algum sensor pra conectar direto no esp8266 nodemcu? Somente sensores com 3.3V para a alimentação são possíveis?
Olá Adilson, tudo bom?
Gostaria de saber se o ESP8266 possui algum pino de entrada com interrupção/contador.
Boa tarde Kleber,
Todos os pinos aceitam interrupção, exceto a GPIO16. Dê uma olhada neste link, por favor: “https://github.com/esp8266/Arduino/blob/master/doc/reference.md”
Abraço!
Adilson – Equipe MakerHero
Bom dia Adilson.
Gostaria de saber se há como conectar uma antena externa nesta placa para o sinal sempre estar estável.
Abraços, Mauro .
olá amigo acho q vc deve estar com o mesmo problema que eu , o meu nodemcu perde conexao com a internet direto e nao volta tenho que resetar ele pra continuar, se tiver a resposta me avisa
Adilson,
eu consigo ligar um sensor PIR ou Umidade/temperatura nessa placa e enviar os dados via wifi ?
Olá Adilson,
Fiz tudo certo como você descreveu acima, mas quando vou requerir o IP pelo exemplo que você fez nao aparece, tem outra forma de descobrir o IP?
Somente aparece:
=wifi.sta.getip()
=wifi.sta.getip()
nil
>
Verifique se seu módulo se conectou a rede. Se estiver conectado e não pegou ip, tente usar um ip estático.
Como ligar esse módulo no rede 220v?
Vi alguns artigos que mostram que deve ser ligado a um regulador de tensão, alguém recomenda algum? E te algum esquema de ligação?
Voce pode simplismente usar os 5v da porta USB.
Gostaria que voce me ajudasse na comunicação. Nao consigo fazer a comunica de minha placa com o esplorer..
Estou louco que saia um tutorial do ESP-14
Descobri que é possível atualizar a bios dele para trabalhar com linguagem C
Mas o material sobre a Pinagem dele é bem escasso ainda.
Bom dia
Fiz todos os codigos funcionou perfeitamente e acesso de qualquer lugar, so q precisaria de uma resposta pra saber se realmente meu led acendei. Quando acesso de algum lugar q eu nao tenha contato visual com saber se realmente ligou ou apagou? Ja fiz de tudo e nao consegui slguem tem algima sugestão?
Obrigado
ola, e possivel utilizar o nodemcu numa rede externa?
Eu usei o no ip para criar um Host. E no roteador usei o servidor virtual e direcionei para o ip e a porta do nodemcu
boa noite tenho uma duvida quando tiro o meu nodeMcu do pc e religo ele ele ja perdeu toda programaçao o que eu faço?
resolvido li um pouco mais de seus comentarios e achei a resposta
Boa tarde Tércio,
Ele não perdeu a programação, provavelmente os arquivos que você criou ainda estão na memória.
O que você precisa fazer é criar um arquivo chamado init.lua, para chamar o programa desejado durante a inicialização. Dê uma olhada neste artigo, por favor: http://pedrominatel.com.br/esp8266/como-armazenar-e-criar-programas-na-memoria-do-esp8266-com-nodemcu/
Abraço!
Adilson – Equipe MakerHero
Olá,
Pra testar, eu criei um código usando a IDE do Arduino, mas agora quero usar Lua.
Preciso fazer o flash novamente?
Pq eu conecto na USB e o led fica piscando (código arduino) e quando conecto pelo Esplorer, aparece a mensagem:
Communication with MCU…
Got answer! AutoDetect firmware…
Communication with MCU established.
Can’t autodetect firmware, because proper answer not received (may be unknown firmware).
Please, reset module or continue.
E quando tento enviar um código:
Waiting answer from ESP – Timeout reached.
Além disso, nenhum dos comandos funcionam. Sempre retornam Waiting answer from ESP – Timeout reached.
Obrigado
Infelizmente amigo voce tera de instalar o firmware de novo. Mas tem um programa muito bom pra windows que se chama nodemcu flasher
tem um tutorial de como usar ele aqui
http://www.arduinoecia.com.br/2016/05/firmware-nodemcu-esp8266-ESP-01.html
Waiting answer from ESP – Timeout reached. Command aborted.
;(
Não formata.
Só eu tentar rodar este código abaixo que: “beep”! Mostra esse erro ^^
while 1 do
gpio.write(0, gpio.HIGH)
tmr.delay(10000000)
gpio.write(0, gpio.LOW)
tmr.delay(100000)
end
Mesma coisa tbm mesmo erro, não consigo carregar nada só fica nesse erro!
Por favor alguém tem ideia de como resolver???
Timeout reached. Command aborted.
man, o meu da isso direto. Dai eu clico no reset da placa e tudo funciona lindo.
Boa Tarde, estou com uma dúvida quanto a alimentação do ESP8266 NadeMcu, é possível alimenta-lo com uma fonte chaveada de 5V? Minha dúvida esta em relação ao controle de 4 relés, preciso acionar 4 relés com o ESP8266, e preciso fornecer aos relés 5V, GND e o Sinal, isso é possível?
Boa tarde Everson,
Nesse caso, recomendo usar o módulo relé com fonte externa.
Abraço!
Adilson – Equipe MakerHero
Obrigado Adilson pelo retorno.
Você poderia me orientar como ligar a fonte externa no modulo relé? Se não me engano o GND da fonte tem que estar ligado no mesmo GND do Arduino (ESP8266) é isso? Porém tem dois GNDs na placa e não sei exatamente qual usar, se da alimentação externa ou o GND no lado dos pinos de Sinal.
Eu posso alimentar o ESP8266 NodeMcu com uma fonte normal de celular 5V, via mini usb?
Abç
Eu gostaria que alguém pudesse me explicar melhor cada linha dessa parte do código. O brigado!
— Definicoes do Web Server
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on(“receive”, function(client,request)
local buf = “”;
local _, _, method, path, vars = string.find(request, “([A-Z]+) (.+)?(.+) HTTP”);
if(method == nil)then
_, _, method, path = string.find(request, “([A-Z]+) (.+) HTTP”);
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, “(%w+)=(%w+)&*”) do
_GET[k] = v
end
end
Ola, é possivel usar o modulo nRF24l01 com o nodemcu?
Boa noite Adilson!
Qual o comando para remover todos os arquivos do Esp8266-E12, usando ESPlorer?
Tipo, deixar ele zerado.
Boa tarde Roberto,
Utilize o botão “format”, no lado direito do ESPlorer, ao lado da console.
Abraço!
Adilson – Equipe MakerHero
E após fazer isso, o que deve ser feito?
Ola, Obrigado pela informações !!! Funcionou de primeira.
Mas agora estou tentando transformar esse código lua para usar na IDE do arduino.
Poderia me dar uma dica de como ficaria essa parte :
— Definicoes do Web Server
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
conn:on(“receive”, function(client,request)
local buf = “”;
local _, _, method, path, vars = string.find(request, “([A-Z]+) (.+)?(.+) HTTP”);
if(method == nil)then
_, _, method, path = string.find(request, “([A-Z]+) (.+) HTTP”);
end
local _GET = {}
if (vars ~= nil)then
for k, v in string.gmatch(vars, “(%w+)=(%w+)&*”) do
_GET[k] = v
end
end
Bom dia Adilson,
cara estou com uma dúvida aqui….
existe alguma maneira de aumentar o número de conexões em um módulo (SOFTAP) ?
Verifiquei que o nodemcu limita a 4 conexões simultâneas.
Tens alguma ideia se é possível aumentar este número e como fazer isso?
Fico no aguardo.
Boa tarde Paulo,
Bem difícil, a não ser que você pudesse reprogramar o “core” do ESP, mas aí temos outras variáveis como quantidade de memória no módulo, por exemplo.
A princípio, minha resposta seria: “não é possível”.
abraço!
Adilson – Equipe MakerHero
Alguém ai sabe me dizer, se tem alguma bateria na voltagem do NODEMCU, ou tenho mesmo que usar um regulador de tensão? E também gostaria de saber qual a amperagem que essa placa precisa no mínimo, pois estou a comprar uma bateria do ALI, http://goo.gl/k329Ah
Para ligaro nodeMcu 12 E , no Arduino mega como devo proceder? eu estava pensando em um CI 4050 que é um buffer inversor para fazer a conexão com o Merga e o nodeMcu 8266. Porque o no arduino mega a pwm é de 0 a 5v e o nodemcu deve ser de 0 a 3.3v
Ou você tem outra solução para me indicar?
bates mal desse melao…..
Boa noite! Comprei um NodeMcu ESP8266 e começei a testar uns programas nele..Entretanto estou percebendo que toda vez que desligo o módulo e ligo novamente o programa não executa, como se não tivesse sido gravado na memória…Alguém sabe me dizer porque esta acontecendo isso e como resolver? Grato!
Bom dia Ivanildo,
O NodeMCU não funciona da mesma maneira que o Arduino, por exemplo. No NodeMCU, você precisa dizer qual dos programas na memória serão executados quando você ligar o módulo, isso você faz criando um arquivo chamado init.lua.
Ao ligar o NodeMCU, ele procura o init.lua e executa os comandos que estiverem ali dentro. Então se você tem um programa chamado teste_nodemcu.lua que você quer executar toda vez que o módulo liga, você deve criar um init.lua mais ou menos assim:
function startup()
print(‘in startup’)
dofile(‘test_nodemcu.lua’)
end
tmr.alarm(0,5000,0,startup)
O programa acima executa o test_nodemcu.lua depois de 5 segundos do boot do módulo.
Abraço!
Adilson – Equipe MakerHero
Muito bom Adilson.
Só que no meu teste, usei o código acima e não funcionou, modifiquei, trocando os apóstrofos (‘) por aspas (“) , o código ficou assim:
function startup()
print(“in startup”)
dofile(“test_nodemcu.lua”)
end
tmr.alarm(0,5000,0,startup)
Desta maneira funcionou perfeitamente, estou usando um powerbank na alimentação para testes e posso conectar e desconectar que ele sempre inicia o programa normalmente.
Muito bom o post.
Um Abraço.
Boa Noite.
Sou novo no assunto e tenho uma duvida….onde eu digito estes comando ? Seria na rotina do meu próprio script ?
Boa tarde! Eu quero fazer a mesma coisa porém estou usando a IDE do Arduino. Como devo fazer para iniciar ja com o arquivo que quero?
Obrigada
Bom dia,
Estou tendo uma mensagem de “ERROR” quando tento mandar o comando gpio.mode(1, gpio.OUTPUT) pela serial, sabe qual pode ser o motivo?
Consegui resolver, gravando a firmware mais atualizada do NodeMCU, creio que algumas placas compradas na china não venham com o firmware correto instalado, fica a dica para todos.
Estou utilizando o ESP8266 NodeMcu V3 e o módulo está ocupando toda a protoboard. Não sobram espaços para conectar os fios. Vocês utilizaram algum modelo especial de protoboard ou o módulo é mais atual e, consequentemente, menor?
Abs
Bom dia Marcelo,
Estamos usando a nossa protoboard de 400 pontos, como essa: https://www.makerhero.com/pd-6b605-protoboard-400-pontos.html
O nodeMCU fica bem no meio da protoboard, e sobra uma fileira de pinos de cada lado, o que permite a prototipagem. Existe uma versão anterior do NodeMCU (uma placa amarela), que realmente não cabe.
Abraço!
Adilson – Equipe MakerHero
Parabens pelo trabalho, gostaria de saber se tem alguma maneira de programar o ESP8266 para WiFi direct(P2P)…. Valeu !
Boa tarde Matheus,
Você pode configurar um módulo para o modo STA (station), e o outro para o modo AP (access point), com o comando AT+CWMODE, e conectando os dois diretamente… é mais ou menos isso ?
Abraço!
Adilson – Equipe MakerHero
Não meu caro, no datasheet diz que o módulo é compatível com WIfI Direct, que seria comunicação P2P, a maioria dos celulares tem essa tecnologia. O Wi-Fi direct permite que você comunique com outro dispositivos diretamente. Já implementei o Wi-Fi direct em uma aplicação Android, agora falta fazê-la no módulo.
Boa tarde Matheus,
Pois é. eu não achei nada relacionado à wifi direct nos comandos AT do módulo, o que você tem é o modo AP, o modo STA e o “both”… vou pesquisar mais um pouco e se achar algo posto aqui.
Abraço.
Adilson – Equipe MakerHero
Olá Adilson
nesse caso eu somente consigo acessar localmente.
como faço pra controlar o led via internet?
Procure por PortForwarding e redirecionamento de IP que dá pra fazer, já fiz isso aki
parabens , deu quase tudo certo , apenas me apareceu este erro , alguem me pode dizer o que e :
> dofile(‘script2.lua’)
script2.lua:9: ‘=’ expected near ‘do’
> =wifi.sta.getip()
10.0.0.109 255.255.255.0 10.0.0.1
Olá Adilson,
parabéns pela excelente explicação sobre com programar o NODEMCU e pelo exemplo de programação em linguagem LUA. Eu tenho alguma experiência em programação em C, ( embora esteja um tanto enferrujado) mas a linguagem LUA, a qual estou tentando aprender, aparenta ter uma sintaxe muito estranha! Seria possível adicionar mais comentários no programa-exemplo detalhando-o melhor?
Abraços,
João Roberto Gabbardo
Parabéns pelo texto, ainda há pouco material sobre a programação do módulo com LUA em português. Vocês tem alguma lista dos comando em LUA que podem ser utilizados com o ESP?
Bom dia Rafael,
Este link pode te ajudar: http://www.lua.org/manual/5.1/pt/
Abraço!
Adilson – Equipe MakerHero
Parabéns. Posso programar este módulo com comandos AT através de um terminal ou tenho que utilizar a Lua?
Qual a velocidade de comunicação utilizada neste exemplo?
Este programa ESPlorer é instalado na máquina ou é só executável? É necessário instalar o java antes de instalar o ESPlorer?
Boa tarde Rafael,
Não é instalado, é só executar o arquivo com extensão BAT. Ele precisa do java instalado na máquina.
Abraço!
Adilson – Equipe MakerHero
Parabens, excelente matéria.
Valeu Claudio, abraço!
Adilson – Equipe MakerHero