LoginSignup
91

More than 5 years have passed since last update.

技適済み格安高性能Wi-FiモジュールESP8266 コピペでWiFi接続出来るArduinoIDE用ソースコードとその解説

Last updated at Posted at 2015-07-13

さて前回のArduinoIDE上にESP8266の開発環境が出来上がった所で、「どうやってWiFiに接続すれば良いのか分からん!」と言う事になると思うので、次は、このソースコードをコピペしてプログラムを送り込んで楽しんでみて下さい。
結構はまるポイントがあるので、最後まで目を通して下さい。

ESP8266でWiFi接続するためのプログラム

以下のソースコードをコピペしてコンパイルして書き込んで下さい。
起動すれば、IO5のピンがHIGH(3.3v)になり、無線の接続が途絶えるとLOW(0v)になり、また接続されるとHIGH(3.3V)に出力が変化するはずです。

デバッグ用にシリアルにWiFiのステータスや、DHCPで取得したIPを送信するプログラムにしてあります。
書き込めたら、ArduinoIDEにあるシリアルモニタを開くなどして、WiFi状態やIPを確認して下さい。

WiFi環境は、次の環境で試しています。

  • WPA2 パーソナルのアクセスポイントに接続
  • SSIDは広報している(ANY接続拒否のステルスモードでも繋がる事確認しました。マルチSSIDだと繋がらないこともあるようです。2015.08.06修正)
  • ネットワーク上にDHCPサーバが用意されている
QiitaWiFi01
#include <ESP8266WiFi.h>

char toSSID[] = "XXXXXXXX";
char ssidPASSWD[] = "YYYYYYYYYYY";

void setup() {
  //デバッグ用にシリアルを開く
  Serial.begin(115200);
  Serial.println("PG start");

  //WiFiに繋がったらLEDを点灯させるので、そのピンをOUTPUTに設定して、LOWに。
  pinMode(5, OUTPUT);
  digitalWrite(5, LOW);

  //WiFiクライアントモード設定
  WiFi.mode(WIFI_STA);

  //WiFiを繋ぐ前に、WiFi状態をシリアルに出力
  WiFi.printDiag(Serial);

  //WiFiの設定を入れる。IPは、デフォルトがDHCPのようで、IPが共有されるときはWiFiのアクセス情報だけでOK
  WiFi.begin(toSSID, ssidPASSWD);

  // 固定IPではネットワークステータスが上手く動かないので、今は使えなさそう。
  // 本家にバグ登録はされているらしい。
  //  WiFi.config(ip, gateway, subnet);

  //接続が確立するまで、・・・を表示
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");

    //WiFi.printDiag(Serial);

  }

  //ここに来たら、接続完了している。

  //改行して繋がったことをシリアルで伝える。
  Serial.println("");
  Serial.println("WiFi connected");

  //WiFiの状態を表示
  WiFi.printDiag(Serial);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  // 無線LAN接続OK LED点灯
  digitalWrite(5, HIGH);


}

void loop() {
  if (WiFi.status() != WL_CONNECTED) {
    // コネクション確立済み以外のステータスなので
    // 無線LAN接続NG LED消灯
    digitalWrite(5, LOW);
  } else {
    //コネクションOKなので、点灯
    digitalWrite(5, HIGH );
  }

  delay(500);

}

とても、とても大切な注意事項

上記のプログラムが動く様になるまで、結構苦戦しました。
以下の各注意事項は、ESP8266 by ESP8266 Community 1.6.4-673-g8cd3697 を使った時の事なので、今後変わると思います。自分がどのバージョンを使っているのか確認して下さい。

  • 固定IP設定用のメソッド WiFi.config(ip, gateway, subnet) が用意されているが、固定IPを設定しようとすると上手くWiFi接続出来ない。クライアントモードではDHCP一択の状態(接続状態を確認する関数が上手く動いていないようですが、どのソースが悪いのかは未確認)

以下だけ、1.6.5-988-gfd1d9daのバージョンで2015.08.06再確認

  • マルチSSIDだと繋げなさそう(手元にある、BUFFALO WAPS-HP-AM54G54で確認した結果。当初はステルスモードだと繋げないと思っていましたが、再確認したら繋げました。私の手元の無線APは一般的でないので他の機種ではマルチSSIDでも繋がる可能性はあります。2015.08.06修正)

次にやろうと思っている事

です。お楽しみに~

またハマりどころを、下記に順次まとめています。あわせてこちらもご覧下さい。(随時更新中なので、ストックしてもらえれば更新時に通知させてもらいます)
http://qiita.com/azusa9/items/fe20794aa858a73fd97b

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
91