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
Introduo
NodeMCU
um firmware alternativo para o ESP8266 que embute no chip um framework para programao de controle mediante
scripts Lua.
Pode ser gravado por Arduino ou programador FTDI de 3.3 volts.
RX TX
TX RX
CH_PD 3.3V
GPIO 0 GND
VCC 3.3V
GND GND
NodeMCU
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
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
ESplorer
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
Referncia
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
Configurando a ao exemplo
Ou: criando o "recipiente".
1. Conecte sua conta ao Maker Channel
2. Conecte sua conta ao Twitter Channel
O resultado dever ser uma tela assim:
11
12
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
13
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
14
-- 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")
15
16
Esquema
Cdigo do init.lua
No esquecer de editar as credenciais, logo no incio.
Servidor web
17
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
-- Rui Santos
-- Complete project details at http://randomnerdtutorials.com
-- ESP8266 Server
Cliente-servidor
19
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.
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
esquerda, a janela de output do ESPlorer. direita, um terminal de comunicao serial estabelecida com o PuTTY.
Cliente-servidor
21
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...
22
Se a primeira vez para aquele dispositivo, voc precisar habilit-lo ao servidor com um cdigo auto-gerado:
23
Teste
24
25
Protoboard
Arduino
Ou programador FTDI
Comprando hardware
26
Comprando hardware
27
Comprando hardware
28
Grtis
Getting Started With The ESPlorer IDE, por Rui Santos
Pago
Home Automation Using ESP8266, por Rui Santos
Mais fontes
29