Project 30.3 WiFi 親機・子機モード/AP+Station mode

前回は親機モードを試してみました。

今回は親機・子機モードを試してみましょう。

目次

AP+Station mode(親機子機モード)について

ESP32-S3は、APモードとStationモードを同時に利用することもできます。このモードは、前述の2つのモードの機能を兼ね備えています。ESP32-S3のStationモードを有効にしてルーターのネットワークに接続することで、ルーター経由でインターネットとの通信が行えます。同時に、APモードを有効にしてホットスポットを構築できます。この場合、他のWiFi対応機器は、ESP32-S3と通信するために、ルーターのネットワークまたはホットスポットネットワークのいずれかに接続することができます。

コード

/**********************************************************************
  Filename    : WiFi AP+Station
  Description : ESP32 connects to the user's router, turning on an access point
  Auther      : www.freenove.com
  Modification: 2022/10/31
**********************************************************************/
#include <WiFi.h>
 
const char *ssid_Router     =  "********";  //Enter the router name
const char *password_Router =  "********";  //Enter the router password
const char *ssid_AP         =  "WiFi_Name"; //Enter the router name
const char *password_AP     =  "12345678";  //Enter the router password

void setup(){
  Serial.begin(115200);
  Serial.println("Setting soft-AP configuration ... ");
  WiFi.disconnect();
  WiFi.mode(WIFI_AP);
  Serial.println("Setting soft-AP ... ");
  boolean result = WiFi.softAP(ssid_AP, password_AP);
  if(result){
    Serial.println("Ready");
    Serial.println(String("Soft-AP IP address = ") + WiFi.softAPIP().toString());
    Serial.println(String("MAC address = ") + WiFi.softAPmacAddress().c_str());
  }else{
    Serial.println("Failed!");
  }
  
  Serial.println("\nSetting Station configuration ... ");
  WiFi.begin(ssid_Router, password_Router);
  Serial.println(String("Connecting to ")+ ssid_Router);
  while (WiFi.status() != WL_CONNECTED){
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConnected, IP address: ");
  Serial.println(WiFi.localIP());
  Serial.println("Setup End");
}

void loop() {
}

9行目、10行目は各自の環境に併せて修正してください。

このコードだとまだAPにつながるだけで、ESP32をWiFiルーターとして外に出ていくような中継機能は実装していないです。おそらく中継機能はこのテキストの中だけでは実装しないと思うので、何か考える必要がありそうですね。ニーズがあれば研究してみようと思います。

次回はTCP/IPのクライアントを実装してみましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次