En NodeMCU se pueden cargar archivos de scripts LUA y no tener que estar copiándolos y pegándolos en el terminal. Para ello vamos a escribir nuestro primer script que nos mostrará las redes WiFi de nuestro alrededor:
function listap(t) -- (SSID : Authmode, RSSI, BSSID, Channel)
print("\n"..string.format("%32s","SSID").."\tBSSID\t\t\t\t RSSI\t\tAUTHMODE\tCHANNEL")
for ssid,v in pairs(t) do
local authmode, rssi, bssid, channel = string.match(v, "([^,]+),([^,]+),([^,]+),([^,]+)")
print(string.format("%32s",ssid).."\t"..bssid.."\t "..rssi.."\t\t"..authmode.."\t\t\t"..channel)
end
end
wifi.sta.getap(listap)
Lo guardamos como show_aps.lua y ahora necesitamos un "uploader" para subir los archivos a nuestro cacharrito. Yo utilizo este:
https://github.com/kmpm/nodemcu-uploader
Hacemos un git clone al repositorio
$ git clone https://github.com/kmpm/nodemcu-uploader.git
Y lo usamos, compilando y subiendo el archivo previamente creado:
$ sudo python nodemcu-uploader.py upload show_aps.lua:show_aps.lua --compile
Preparing esp for transfer.
Remove show_aps.lc
file.remove("show_aps.lc")
Transfering show_aps.lua as show_aps.lua
Compile show_aps.lua
node.compile("show_aps.lua")
Remove show_aps.lua
file.remove("show_aps.lua")
All done!
Ahora nos volvemos a conectar a través de Putty y lo ejecutamos para ver el resultado:
> dofile("show_aps.lc")
Y nos mostrará algo como esto:
OJOCUIDAO! Después de compilarlo ya no tiene extensión .lua, ahora tiene extensión .lc
Ahora vamos a conectarnos a nuestra WiFi, una vez hemos visto que la tiene localizada. Abriendo Putty de nuevo (si has sido un prisas y ya lo has cerrado) y escribimos lo siguiente:
> wifi.setmode(wifi.STATION)
> wifi.sta.config("SSID","password")
-- Esperamos unos segundos que se conecte
> print(wifi.sta.getip())
>> 192.168.1.XXX
Y ya está conectado NodeMCU a nuestra red WiFi!
Podemos comprobarlo con un ping desde nuestra máquina a la IP que nos ha devuelto.
En la próxima entrada un pequeño servidor web con algún dato interesante para probar que todo funciona correctamente.
Un saludo!