前提・実現したいこと
同じネットワーク上に複数(10台)のESP32があり、ESP32がブロードキャストでパケットを受信したら家電(100V)のON/OFFをしたいです。
またコマンドプロンプトなどでブロードキャストでパケットを送信する方法も分かりましたらご教示いただければ幸いです。
回路はすでに完成しております。
該当のソースコードはUDP受信で仮に動作するのかを試した時のソースコードになります。
発生している問題・エラーメッセージ
なし
該当のソースコード
#include <WiFi.h> #include <WiFiUdp.h> const char ssid[] = "*********"; const char pass[] = "*********"; const int localPort = 10000; const IPAddress ip(127, 0, 0, 1); const IPAddress gw(192, 168, 251, 1); const IPAddress sn(255, 255, 255, 0); WiFiUDP udp; void setup() { Serial.begin(115200); WiFi.softAP(ssid, pass); delay(100); WiFi.softAPConfig(ip, gw, sn); Serial.print("AP IP address: "); IPAddress myIP = WiFi.softAPIP(); Serial.println(myIP); Serial.println("Starting UDP"); udp.begin(localPort); Serial.print("Local port: "); Serial.println(localPort); } void loop() { if (udp.parsePacket()) { Serial.println(udp.read()); } }
試したこと
SocketDebuggerFreeというアプリで「1」をUDP送信しましたがarduino側のシリアルモニタには反応がありませんでした。
補足情報(FW/ツールのバージョンなど)
Arduino V1.8.9
現状のコードではなにが問題なんでしょうか。
問題がなにかわかりません
現状のコードに問題はありません。
UDPを送信する側で困っています。SocketDebuggerFree(アプリ)でUDPパケットを送信しても何も反応が無い動作となります。
まずは動作させたいです。
その後、UDPパケットをブロードキャストするツールなどございましたらご教示いただければと思います。
WiFi.softAPConfigのIPは、ローカル・ループバック・アドレスの127.0.0.1ではなく、それ以外のipアドレスを指定してみましょう。esp32のライブラリの詳細までは、わかりませんが、AP IP addressが127.0.0.1だと自分自身esp32からのデータしか受信できないと思います。
>tmpさん
ご回答ありがとうございます。
IPアドレスを192.168.251.207(port:10000)で試してみましたがやはり応答無しでした。
その状態で、192.168.251.207へPINGの応答は、ありますか?
応答はありません。