code-lua-iot/wifi.lua
2024-10-24 17:49:35 +02:00

80 lines
1.8 KiB
Lua

dofile("screen.lua")
function displaynets()
nets = net.wf.scan(true)
cls()
for i=0,#nets-1 do
console(nets[i].ssid.." "..nets[i].rssi)
end
end
function displayopennets()
nets = net.wf.scan(true)
cls()
for i=0,#nets-1 do
if nets[i].auth == net.wf.auth.OPEN then
console(nets[i].ssid.." "..nets[i].rssi)
end
end
end
function scanwifi()
while true do
nets = net.wf.scan(true)
cls()
for i=0,#nets-1 do
console(nets[i].ssid.." "..nets[i].rssi)
end
tmr.delayms(1000)
end
end
function neorssi()
neo = neopixel.attach(neopixel.WS2812B, pio.GPIO21, 8)
while true do
nets = net.wf.scan(true)
nb = (-nets[0].rssi) * 8 // 100
for i=0,nb-1 do
r, g, b = wheelRGB(i * 255 // 8)
neo:setPixel(i, r//10, g//10, b//10)
end
neo:update()
tmr.delayms(1000)
end
end
function curverssi()
width, height = gdisplay.getscreensize()
values = {}
while true do
-- car le réseau avec le meilleur rssi est toujours premier dans la liste
rssi = net.wf.scan(true)[0].rssi
-- si le tableau est plein alors on affiche la courbe
if #values == 10 then
for i=1,9 do
values[i] = values[i + 1]
end
values[10] = rssi
cls()
-- on dessine chaque partie de la courbe
for i=1,9 do
-- on dessine la partie de courbe
gdisplay.line(
{
i * width // 10,
(-values[i]) * (height - 10) // 100 + 5
},
{
(i + 1) * width // 10,
(-values[i + 1]) * (height - 10) // 100 + 5
}
)
end
else
values[#values + 1] = rssi
end
tmr.delayms(500)
end
end