0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

安いWi-Fi機能付きのESP8266マイコンを試す(WPS対応 失敗編)

Last updated at Posted at 2025-04-13

前の記事

準備編

応用編

Arudiono IDEで使う

作りたかった機能

WPS接続する!

うまくいかない・・。ルーター変えたりいろいろ試してみてうまくいったら記事の追加/更新します。

つながらなかったサーバ

- 内容
メーカー IOデータ
製品 WN-DX1167GR
ファームウェアバージョン 1.11.000
ブートコードのバージョン 1.24.06
IPアドレス割当 DHCP

試行した結果

試行その1

試行1.WiFi.begin()利用編

WiFi.begin("","")で接続

結果1.接続はできるが、IPアドレスがふられない

WiFi.begin編スケッチ
スケッチ
//  WiFi(Connect)
bool connect_WiFi(const char* ssid, const char* password, long connectTimeoutMS) {
  bool  connected = false;
  long  connectCheckTime = 0;
  wl_status_t connectStatus;

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  connectStatus = WiFi.status();
  while (connectStatus != WL_CONNECTED) {
    connectCheckTime = connectCheckTime + WIFI_CONNECTED_CHECK_MS;
    delay(WIFI_CONNECTED_CHECK_MS);
    connectStatus = WiFi.status();
    Serial.printf("connected = %d\r\n", connectStatus);

    if (connectStatus == WL_CONNECTED)
    {
      connected = true;
      break;
    }
    if (connectStatus == WL_CONNECT_FAILED)
    {
      Serial.printf("WL_CONNECT_FAILED");
      connected = false;
      break;
    }
    if (connectStatus == WL_DISCONNECTED)
    {
      Serial.printf("WL_DISCONNECTED");
      connected = false;
      //  Loopは継続する(接続中もこのステータス)
    }
    if (connectCheckTime > connectTimeoutMS)
    {
      connected = false;
      break;
    }
    Serial.printf("connected = %d\r\n", connectStatus);
  }

  return connected;
}

試行その2

試行2.beginWPSConfig()利用編

beginWPSConfigで接続

結果2.接続はできるが、IPアドレスがふられない
beginWPSConfig編スケッチ
スケッチ
#include <ESP8266WiFi.h>


bool startWPSPBC() {
  // wpstest.ino
  Serial.println("WPS config start");
  bool wpsSuccess = WiFi.beginWPSConfig();
  if(wpsSuccess) {
      String newSSID = WiFi.SSID();
      if(newSSID.length() > 0) {
        //  newSSIDが割り当てられたら成功
        Serial.printf("WPS finished. Connected successfull to SSID '%s'\n", newSSID.c_str());
      } else {
        wpsSuccess = false;
        Serial.println("(- -)");
      }
  }
  if (wpsSuccess) {
    Serial.println("WPS config success.");
    Serial.print("WPS Connected. local IP address: ");
    Serial.println(WiFi.localIP());

  } else {
    Serial.println("WPS config fault.");
  }
//  WiFi.disconnect();
//  delay(500);
//  Serial.println("WPS disconnect...");

  if (wpsSuccess)
  {
      delay(500);
      Serial.printf("Try to connect to SSID '%s'\n", WiFi.SSID().c_str());
      //Serial.printf("Try to connect to password '%s'\n", WiFi.psk().c_str());
 
      //WiFi.begin(WiFi.SSID().c_str(),WiFi.psk().c_str()); // reading data from EPROM, 
      WiFi.begin(); // reading data from EPROM, 
      while (WiFi.status() == WL_DISCONNECTED) {          // last saved credentials
        delay(500);
        Serial.print("."); // show wait for connect to AP
      }
      Serial.printf("Connected SSID '%s'\n", WiFi.SSID().c_str());
    Serial.print("Reconnected. local IP address: ");
    Serial.println(WiFi.localIP());

  }
  return wpsSuccess; 
}

謝辞

以下の記事を参考に作りました。

最後に

スケッチコードはCC BY-SA 4.0(著作者の情報とCCライセンス継承はお願いします。商用利用・改変・再配布は問題なし)です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?