Escolar Documentos
Profissional Documentos
Cultura Documentos
do Rui, em portugus
Tabela de contedos
1. Introduo
2. NodeMCU
i. Gravar do Linux
ii. Gravar do Windows
3. ESplorer
4. Comandos AT
i. Referncia
5. Tutoriais
i. Twitter
ii. Servidor web
iii. Cliente-servidor
iv. Home Automation Server
6. Comprando hardware
7. Mais fontes
2
ESP8266 do Rui, em portugus
Alexandre Magno apenas um tradutor e organizador. Este livro basicamente a traduo reformatada e simplificada do
site de Rui.
Autor e tradutor no garantem que todas as informaes encontradas aqui estejam corretas.
Introduo 3
ESP8266 do Rui, em portugus
NodeMCU
um firmware alternativo para o ESP8266 que embute no chip um framework para programao de controle mediante
scripts Lua.
RX TX
TX RX
CH_PD 3.3V
GPIO 0 GND
VCC 3.3V
GND GND
NodeMCU 4
ESP8266 do Rui, em portugus
Talvez voc precise realizar alguma configurao avanada. Mas, em geral, o uso do nodemcu-flasher bem simples:
basta pressionar o boto Flash e aguardar a concluso (sinal verde).
Gravar do Windows 5
ESP8266 do Rui, em portugus
Lista de recursos
Sintaxe colorida para LUA
Sintaxe colorida para Python
Temas para o editor de cdigos: default, dark, Eclipse, IDEA, Visual Studio
Desfazer/Refazer
Auto-compleo de cdigo Ctrl+Space
Envio de dados ao ESP82266 com validao
Exemplos de cdigo
Log detalhado
E muito mais!
Instalao
Ateno! Voc precisar do Java (SE verso 7 ou superior).
1. Baixe o ESPlorer
2. Descompacte o ZIP
3. Acesse o diretrio raiz
4. Execute ESPlorer.jar
ESplorer 6
ESP8266 do Rui, em portugus
ESplorer 7
ESP8266 do Rui, em portugus
void setup() {}
void loop() {}
Dica eltrica
No projeto final, no alimente o mdulo com os 3.3 V do Arduino. Use uma fonte ou bateria, ou divida a tenso para do
pino RX.
Comandos AT 8
ESP8266 do Rui, em portugus
Referncia 9
ESP8266 do Rui, em portugus
Sobre os "tutoriais"
Este livro no rene muitas instrues discursivas. Cada "tutorial" na realidade um conjunto de notas rpidas
estruturado, contendo imagens, esquemas e referncias. O objetivo maior aprender com a prtica, quando o leitor
dever estar aplicando os conhecimentos tericos que j possui, para manter o hardware intacto.
Tutoriais 10
ESP8266 do Rui, em portugus
Configurando a ao exemplo
Ou: criando o "recipiente".
Twitter 11
ESP8266 do Rui, em portugus
Twitter 12
ESP8266 do Rui, em portugus
Chave secreta
Ser necessria para a realizao das requisies.
1. Acesse ifttt.com/maker
2. Copie a chave secreta e a guarde em local seguro
No exemplo, a chave : b6eDdHYblEv2Sy32qLwe
Twitter 13
ESP8266 do Rui, em portugus
Uso
Substitua a chave secreta na URL de ao (requisio para o recipiente):
https://maker.ifttt.com/trigger/post_tweet/with/key/YOUR_API_KEY
Assim:
https://maker.ifttt.com/trigger/post_tweet/with/key/b6eDdHYblEv2Sy32qLwe
Teste
Twitter 14
ESP8266 do Rui, em portugus
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
Twitter 15
ESP8266 do Rui, em portugus
IFTTT suporta at trs parmeteros: value1 , value2 e value3 . Eles servem customizar tweets e torn-los nicos.
Twitter 16
ESP8266 do Rui, em portugus
Esquema
Cdigo do init.lua
No esquecer de editar as credenciais, logo no incio.
Servidor web 17
ESP8266 do Rui, em portugus
wifi.setmode(wifi.STATION)
wifi.sta.config("YOUR_NETWORK_NAME","YOUR_NETWORK_PASSWORD")
print(wifi.sta.getip())
led1 = 3
led2 = 4
gpio.mode(led1, gpio.OUTPUT)
gpio.mode(led2, gpio.OUTPUT)
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> ESP8266 Web Server</h1>";
buf = buf.."<p>GPIO0 <a href=\"?pin=ON1\"><button>ON</button></a> <a href=\"?pin=OFF1\"><button>OFF</button></a></p>"
buf = buf.."<p>GPIO2 <a href=\"?pin=ON2\"><button>ON</button></a> <a href=\"?pin=OFF2\"><button>OFF</button></a></p>"
local _on,_off = "",""
if(_GET.pin == "ON1")then
gpio.write(led1, gpio.HIGH);
elseif(_GET.pin == "OFF1")then
gpio.write(led1, gpio.LOW);
elseif(_GET.pin == "ON2")then
gpio.write(led2, gpio.HIGH);
elseif(_GET.pin == "OFF2")then
gpio.write(led2, gpio.LOW);
end
client:send(buf);
client:close();
collectgarbage();
end)
end)
Acesso
Durante a inicializao o endereo IP informado no console.
Servidor web 18
ESP8266 do Rui, em portugus
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
-- ESP8266 Server
Cliente-servidor 19
ESP8266 do Rui, em portugus
print("ESP8266 Server")
wifi.setmode(wifi.STATIONAP);
wifi.ap.config({ssid="test",pwd="12345678"});
print("Server IP Address:",wifi.ap.getip())
sv = net.createServer(net.TCP)
sv:listen(80, function(conn)
conn:on("receive", function(conn, receivedData)
print("Received Data: " .. receivedData)
end)
conn:on("sent", function(conn)
collectgarbage()
end)
end)
O servidor fica continuamente esperando por conexes. Quando alguma estabelecida com sucesso, ele recebe
mensagem e a imprime no console de comunicao serial.
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
-- ESP8266 Client
print("ESP8266 Client")
wifi.sta.disconnect()
wifi.setmode(wifi.STATION)
wifi.sta.config("test","12345678") -- connecting to server
wifi.sta.connect()
print("Looking for a connection")
O cliente fica continuamente procurando pelo ponto-de-acesso. Quando o localiza, estabelece conexo e passa a enviar
"Hello world!" como mensagem a cada 5 segundos.
Demonstrao
Cliente-servidor 20
ESP8266 do Rui, em portugus
esquerda, a janela de output do ESPlorer. direita, um terminal de comunicao serial estabelecida com o PuTTY.
Cliente-servidor 21
ESP8266 do Rui, em portugus
Registro
gratuito e necessrio.
1. Acesse app.homeautomationserver.com/register
2. Preencha todos os detalhes do cadastro e os submeta
3. Confirme: no e-mail, clique o link de confirmao
Contas criadas ainda com a verso antiga do servio continuam a vigorar. Voc pode resetar a senha, caso prefira.
Adio de dispositivo
Logo que voc entra no sistema...
Se a primeira vez para aquele dispositivo, voc precisar habilit-lo ao servidor com um cdigo auto-gerado:
Teste
Os pinos GPIO do ESP8266 sero atualizados a cada 20 segundos. Respeite o limite de chamadas API, para no
sobrecarregar o servidor.
Protoboard
Arduino
Ou programador FTDI
Comprando hardware 26
ESP8266 do Rui, em portugus
Comprando hardware 27
ESP8266 do Rui, em portugus
Comprando hardware 28
ESP8266 do Rui, em portugus
Grtis
Getting Started With The ESPlorer IDE, por Rui Santos
Pago
Home Automation Using ESP8266, por Rui Santos
21 Arduino Modules You Can Buy For Less Than $2, por Rui Santos
5 Ways to Power Up your Arduino, por Rui Santos
Mais fontes 29