我正在尝试构建此项目:https://www.instructables.com/id/Motorized-WiFi-IKEA-Roller-Blind/
遇到了一些问题,现在仍然可以...这是我的wifi_setup.lau
-- file: setup.lua
local module = {}
config = {}
config.SSID = {}
config.SSID["ssid"] = "password"
function wifi_wait_ip()
if wifi.sta.getip() == nil then
print("IP unavailable, Waiting...")
else
tmr.stop(1)
print("\n====================================")
print("ESP8266 mode is: " .. wifi.getmode())
print("MAC address is: " .. wifi.ap.getmac())
print("IP is " .. wifi.sta.getip())
print("====================================")
end
end
function wifi_start(list_aps)
if list_aps then
for key, value in pairs(list_aps) do
if config.SSID and config.SSID[key] then
wifi.setmode(wifi.STATION);
wifi.sta.config{ssid=key, pwd=config.SSID[key]}
--wifi.sta.connect()
print("Connecting to " .. key .. " ...")
tmr.alarm(1, 2500, 1, wifi_wait_ip)
end
end
else
print("Error getting AP list")
end
end
function module.start()
print("Configuring Wifi ...")
wifi.setmode(wifi.STATION);
wifi.sta.getap(wifi_start)
end
return module
但这是输出:
Configuring Wifi ...
> Connecting to ssid ...
PANIC: unprotected error in call to Lua API (wifi_setup.lua:29: attempt to call field 'alarm' (a nil value))
因此-String出现任何问题
我该怎么办?
谢谢你的提示。我认为我设法纠正了这个问题。对于其他需要它的人-我希望我编码正确-这里是解决方案:
`{ -- file: setup.lua
local module = {}
config = {}
config.SSID = {}
config.SSID["ssid"] = "password"
-- create a timer object
local tObj = tmr.create()
-- register an alarm
function wifi_wait_ip()
if wifi.sta.getip() == nil then
print("IP unavailable, Waiting...")
else
--tmr.stop(1)
tObj:unregister()
print("\n====================================")
print("ESP8266 mode is: " .. wifi.getmode())
print("MAC address is: " .. wifi.ap.getmac())
print("IP is " .. wifi.sta.getip())
print("====================================")
end
end
function wifi_start(list_aps)
if list_aps then
for key, value in pairs(list_aps) do
if config.SSID and config.SSID[key] then
wifi.setmode(wifi.STATION);
wifi.sta.config{ssid=key, pwd=config.SSID[key]}
--wifi.sta.connect()
print("Connecting to " .. key .. " ...")
--tmr.create(1, 2500, 1, wifi_wait_ip)
tObj:alarm(2000, tmr.ALARM_AUTO, wifi_wait_ip)
end
end
else
print("Error getting AP list")
end
end
function module.start()
print("Configuring Wifi ...")
wifi.setmode(wifi.STATION);
wifi.sta.getap(wifi_start)
end
return module`