我正在使用带有升级固件的 NodeMCU(带有 ESP8266-E)。所有基本命令都能完美运行,但有一个问题。
我想创建一个独立的接入点,它可以具有类似于 UDP 服务器的行为。这意味着无需直接连接到任何其他接入点。一个简单的 UDP 服务器,如软 AP。
我按照以下步骤操作:
- 我已将新固件上传到 NodeMCU。
- 我已经下载了 ESPlorer 以便更好地使用 NodeMCU。
- 我已经上传了下面的源代码。
- 我已连接到桌面上的 NodeMCU 接入点。
- 我已经使用 Java UDP 客户端程序向 NodeMCU 发送了一些字符串。
- 我看过 ESPlorer 上的消息。
- NodeMCU 没有收到任何此类字符串。
--
print("ESP8266 Server")
wifi.setmode(wifi.STATIONAP);
wifi.ap.config({ssid="test",pwd="12345678"});
print("Server IP Address:",wifi.ap.getip())
-- 30s timeout for an inactive client
srv = net.createServer(net.UDP, 30)
-- server listens on 5000, if data received, print data to console
srv:listen(5000, function(sk)
sk:on("receive", function(sck, data)
print("received: " .. data)
end)
sk:on("connection", function(s)
print("connection established")
end)
end)
当我尝试使用 Java 应用程序发送消息时,ESPlorer 没有任何变化。甚至当我尝试使用 Hercules 程序(用于 TCP、UDP 通信的好程序)发送消息时也没有。
我想这可能是错误的IP地址。我使用的是 AP 的 IP 地址,而不是工作站的 IP 地址。
换句话说,我使用的是这个地址:wifi.ap.getip()
而不是这个地址wifi.sta.getip()
来连接到 UDP 服务器。但sta.getip()
返回一个 nil 对象。真的我不知道。
我会很高兴得到任何建议。
非常感谢你。