nodeMCU: Mais que uma dev Board, um vício
NodeMCU( http://nodemcu.com/index_en.html ) é uma plataforma de desenvolvimento baseada no SoC ESP8266, com stack TCP/IP, eLua e vários extensões do lua embarcadas, voltadas especialmente para aplicações de IoT.
O SoC ESP8266 usa uma CPU RISC de 32bits Tensilica Xtensa LX106, rodando a 80MH. Tem uma RAM de instruções de 64 Kb, uma RAM de dados de 96Kb e uma flash interna de 4 fucking MBs! A estrela do bolo é o IEEE 802.11 b/g/n com suporte a WEP,WPA/WPA2 disponível, além dos 16 pinos de GPIO, SPI, I2C, UART e ADC de até 10bits.
No xubuntu, eu tive problemas de conectar nela com o minicom. Mas estou usando lindamento o screen:
$ screen /dev/ttyUSB0 9600
Lua/eLua é linda. coisas extremamente complexas são executadas com uma simplicidade absurda, como listar as redes 802.11 disponiveis:
> function lswifi() >> function listap(t) >> for k,v in pairs(t) do >> print(k.." : "..v) >> end >> end >> wifi.sta.getap(listap) >>end >lswifi()
listar os arquivos, o conhecido ‘ls’, é simples:
> for k,v in pairs(file.list()) do print(k,v) end
logar na rede wifi, então, piece of cake:
wifi.setmode(wifi.STATION);
wifi.sta.config(“SSID”,”senha”)
e pronto! so checar seu ip com:
print(wifi.sta.getip())
Aproveitei e fiz um wget rudimentar hahaha
conn=net.createConnection(net.TCP, false) conn:on("receive", function(conn, pl) file.open("oi.lua","a"); file.write(pl); file.close() end) conn:connect(80,"121.41.33.127") conn:send("GET / HTTP/1.1\r\nHost: www.nodemcu.com\r\n" .."Connection: keep-alive\r\nAccept: */*\r\n\r\n")
Escrevi alguns métodos do GNU coreutils, como ls, cp, mv, df… para facilitar a vida. Em breve posto no github e ponho o link aqui.
O legal é que existem uma infinidade de exemplos e aplicações para esta plaquinha. E ela ganhou um fã haha.
Enjoy!