アップグレードされたファームウェアで NodeMCU (ESP8266-E を使用) を使用しています。基本的なコマンドはすべて問題なく動作しますが、1 つ問題があります。
私は、UDP サーバーのような動作を持つ独立したアクセス ポイントを作成したいと考えていました。つまり、他のアクセス ポイントに直接接続する必要はありません。ソフト AP のような単純な UDP サーバー。
私は次の手順に従いました:
- 新しいファームウェアを NodeMCU にアップロードしました。
- NodeMCU での作業を改善するために ESPlorer をダウンロードしました。
- 以下にソースコードをアップロードしました。
- デスクトップの 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アドレスになると思います。ステーションの IP アドレスではなく、AP の IP アドレスを使用しています。
つまり、UDP サーバーへの接続にwifi.ap.getip()
はこのアドレスではなく、このアドレスを使用しています。wifi.sta.getip()
しかしsta.getip()
、nil オブジェクトを返します。本当に私は知りません。
アドバイスをいただければ幸いです。
どうもありがとうございました。