Nodemcu固件无法解析DNS或使用http客户端。但它连接到有效的Wi-Fi接入点。

时间:2018-06-02 09:42:59

标签: lua esp8266 nodemcu

我可以使用readthedocs中的默认init.lua连接到AP。 - https://nodemcu.readthedocs.io/en/master/en/upload/

但DNS不起作用,http客户端也不起作用。

我编辑了credentials.lua以匹配我的SSID和密码。它成功连接到我的WiFi

我验证它是否与此示例脚本相关联:

do
local sta_config=wifi.sta.getconfig(true)
print(string.format("\tCurrent station config\n\tssid:\"%s\"\tpassword:\"%s\"\n\tbssid:\"%s\"\tbssid_set:%s", sta_config.ssid, sta_config.pwd, sta_config.bssid, (sta_config.bssid_set and "true" or "false")))
end

结果:

[NodeMCU-Tool] Connected
[NodeMCU] Version: 2.2.0 | ChipID: 0x813d2b | FlashID: 0x1625c2
[NodeMCU] Running "getapinfo.lua"
[NodeMCU] >----------------------------->
Current station config
    ssid:"JohnnyCinco"  password:"88888888"
    bssid:"00:05:4e:4c:3e:0b"   bssid_set:false
[NodeMCU] >----------------------------->

我使用此示例脚本验证我获得了IP。

ip, nm, gw = wifi.sta.getip()
print("IP Address is:")
print(ip)
print("NM is:")
print(nm)
print("GW Address is:")
print(gw)

结果:

IP Address is:
192.168.61.197
NM is:
255.255.255.0
GW Address is:
192.168.61.1

这是此路由器的正确IP。

但简单的DNS失败了。我使用nodemcu中的示例创建了一个脚本。

net.dns.resolve("www.google.com", function(sk, ip)
    if (ip == nil) then print("DNS fail!") else print(ip) end
end)

结果就是这样。

[NodeMCU-Tool] Connected
[NodeMCU] Version: 2.2.0 | ChipID: 0x813d2b | FlashID: 0x1625c2
[NodeMCU] Running "getgoogdns.lua"
[NodeMCU] >----------------------------->
null
[NodeMCU] >----------------------------->

即使我从DHCP获得DNS服务器。我把它改为8.8.8.8再次测试,我也遇到了同样的失败。

我可以创建一个http服务器并从局域网上的其他WiFi客户端点击它,该部分有效。但DNS查找和http客户端请求都失败了。

此WiFi AP适用于所有其他客户端。没有防火墙。只是为了确保我尝试了2种不同的路由器。我还尝试了第三台路由器,它有蜂窝互联网而不是我的有线互联网。一切都失败了。

这是在nodemcu版本2.2.0上。我尝试了dev和master分支。两者都有相同的结果。

我尝试在nodemcu-build.com上构建,并且还在我自己的linux机器上构建。两者都失败了。

我尝试过来自不同供应商的4种不同的ESP8266开发板。一切都失败了。

我错过了什么?我必须遗漏一些基本的东西。这太基础了,无法打破。或者最新的固件坏了吗?

由于 J5

0 个答案:

没有答案