【ESP8266】Wi-Fiを起動時からOFF、MACアドレスの取得、IPアドレスの取得

  • 投稿 : 2019-03-13

MACアドレスの取得

#include <ESP8266WiFi.h>

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

  delay(10);
  Serial.println();
  Serial.print("ESP8266 MAC: ");
  Serial.println(WiFi.macAddress());

}

void loop() {

}

参考:ESP8266: Get MAC address – techtutorialsx

これだけで取得できました。

APに接続する

#include <ESP8266WiFi.h>

const char* ssid = "ここにSSIDを書く";
const char* password = "ここにWi-Fiのパスワードを書く";

void setup() {
  Serial.begin(115200);  
  delay(10);

  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

}

void loop() {
  // put your main code here, to run repeatedly:

}

参考:【ESP32】HelloServer よるWi-Fi 動作確認 – お部屋でモバイル

ESP32の時のソースがほぼそのまま使えます。

Wi-Fi機能を起動時からOFFにする

#include <ESP8266WiFi.h>

void setup() {
  Serial.begin(115200);
  WiFi.disconnect();
  delay(1);
  WiFi.mode(WIFI_OFF);
  WiFi.forceSleepBegin();
  delay(1);
}

void loop() {
}

参考:
ESP-WROOM-02 のWiFiを止めるには?:息子と一緒に Makers:So-netブログ
雪豹でESP8266 - Qiita
esp8266 Low Power mode - modem sleep - Everything ESP8266

// Insert whatever code here to turn off all your web-servers and clients and whatnot
WiFi.disconnect();
WiFi.forceSleepBegin();
delay(1); //For some reason the modem won't go to sleep unless you do a delay(non-zero-number) -- no delay, no sleep and delay(0), no sleep


And then wake the WiFi up:

WiFi.forceSleepEnd();
delay(1);
esp8266 Low Power mode - modem sleep - Everything ESP8266

どうもタイミング依存があるようで、ネットで見つけた情報ではdisconnectの後のdelayは無かったのですが、私のところではそれでは動かなくて入れました。
雪豹でESP8266 - Qiita

私の環境(機器)では、delay(1)を入れなくても動作してるようですが、そうでない環境もあるようです。念のために入れておけばよいかと思う。
後半に、スリープからの復帰のサンプルプログラムがあるので、これ使えば、必要な時だけWI-FI起動とかが可能な感じに見えます。

スポンサーリンク