2016-05-28 2 views
0

Я попробовал моргнуть на NodeMCU работает нормально, но при выполнении основного подключения к Wi-Fi, я получаю эту ошибку:NodeMCU Ошибка подключение к WiFi

init.lua:4: attempt to concatenate global 'gw' (a nil value)

это соединение

wifi.setmode(wifi.STATION) 
wifi.sta.config("wifi-name","password") 
ip, nm, gw=wifi.sta.getip() 
print("\nIP Info:\nIP Address: "..ip.." \nNetmask: "..nm.." \nGateway Addr: "..gw.."\n") 

ответ

2

С NodeMCU многие функции асинхронны (предположим, что это значение по умолчанию). Следовательно, вызов wifi.sta.config не блокирует ваш основной поток, и, следовательно, ваше устройство, скорее всего, не подключено к Wi-Fi к моменту, когда вы вызываете wifi.sta.getip.

Если у Вас есть программируемое от dev ветви можно использовать WiFi event monitor, чтобы исправить это:

wifi.sta.eventMonReg(wifi.STA_GOTIP, function() 
    ip, nm, gw=wifi.sta.getip() 
    print("\nIP Info:\nIP Address: "..ip.." \nNetmask: "..nm.." \nGateway Addr: "..gw.."\n") 
end) 

Я документировали более простой таймер обратного вызова ориентированный подход in a Gist:

wifiReady = 0 

function configureWiFi() 
    wifi.setmode(wifi.STATION) 
    wifi.sta.config(WIFI_SSID, WIFI_PASS) 
    wifi.sta.connect() 
    tmr.alarm(WIFI_ALARM_ID, 1000, 1, wifi_watch) 
end 
-- while NOT connected to WiFi you blink a LED, see below 
function wifi_watch() 
    -- 0: STATION_IDLE, 
    -- 1: STATION_CONNECTING, 
    -- 2: STATION_WRONG_PASSWORD, 
    -- 3: STATION_NO_AP_FOUND, 
    -- 4: STATION_CONNECT_FAIL, 
    -- 5: STATION_GOT_IP. 
    status = wifi.sta.status() 
    if status == 5 then 
     -- only do something if the status actually changed 
     -- you could of course combine these two 'if's but it's more explicit for this gist 
     if wifiReady == 0 then 
      wifiReady = 1 
      print("WiFi: connected") 
      turnWiFiLedOn() 
      -- do something 
     end 
    else 
     wifiReady = 0 
     print("WiFi: (re-)connecting") 
     turnWiFiLedOnOff() 
     wifi.sta.connect() 
    end 
end 
Смежные вопросы