Androidのメモとか

ポキオの日記です。今日も遅延してない。

ESP8266をAP+STAモードで使う

AP?STA?

ESP8266 AP STA

ESP8266のモードの話

普段、ESP8266はSTAモードで使っているはず。知らず知らずのうちに。

WiFi.mode(WIFI_STA);

Wi-Fi接続する際に、こういうコードをおまじないのように書いているはず。これがSTAモード。ESP8266がいわゆるWi-Fiの子機(ステーション、STA)になって動作するわけです。

AP+STAモードとは?

言うまでもないですが、STAと振る舞いながら、EPS8266はAP(アクセスポイント、いわゆるWi-Fiの親機)としても振る舞うモード。何に使うのかは別として、簡単にコーディングできます。

#include <ESP8266WiFi.h>

#define AP_SSID "xxxx"
#define AP_PW "yyyy"
#define SOFTAP_SSID "pokio"
#define SOFTAP_PW "pokipokio"

void setup() {
  Serial.begin(115200);
  Serial.println("");

  // AP+STAモードの設定
  WiFi.mode(WIFI_AP_STA);

  // APとして振る舞うためのSSIDとPW情報
  WiFi.softAP(SOFTAP_SSID, SOFTAP_PW);

  // STAとして振る舞うための接続先APのSSIDとPW情報
  WiFi.begin(AP_SSID, AP_PW);

  // APへの接続完了待ち
  while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    Serial.print(". ");
  }
  Serial.println("connected!");
}

void loop() {
  // do nothing
}

ポイントは2点。

  • WiFi.mode(WIFI_AP_STA); でAP+STAモードを指定
  • WiFi.softAP(SOFTAP_SSID, SOFTAP_PW); でAPとして振る舞うの情報を設定

あとはSTAモードと全く同じ。ね、簡単。

実際に動かしてみる

ESP8266 AP STA

シリアルモニターには接続完了の表示が。

ESP8266 AP STA

Macのアクセスポイント一覧には pokio の表示が!AP+STAでちゃんとワークしてそうです。

何に使うのか?

AMAZON DASH BUTTONのハックに便利です。

qiita.com

relativelayout.hatenablog.com

なにかと面倒なAmazon Dash Buttonハック。パケットを監視するマシン・スクリプトが必要になるわけですが、そのためにRPiやパソコンを使うのは面倒というか、勿体ないわけです。そういう処理こそESP8266にやらせて、幸せになりましょう。

「Androidのメモとか」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。

このブログは個人的なメモ書きであったり、考えを書く場所であります。執筆者の所属する団体や企業のコメントや意向とは無関係であります。また、このブログは必ずしも正しいことが書かれているとは限らず、誤字脱字や意図せず誤った情報を載せる場合がありえます。それが原因で読者が不利益を被ったとしても、執筆者はいかなる責任も負いません。ありがとうございます。