しっちょる

こんなこと知ってますか?という幅広い雑記ブログ

【自動給餌機】ESP32による内部メモリ操作

SmartConfigを毎回実行するのは面倒

SSIDとパスワードを毎回ESP32に指定するのは面倒なので、一度設定したSSIDとパスワードをESP32の内部メモリに記憶します。




使用機材

今回はESP32のみです。





プログラム

ArduinoIDEにて、[スケッチ]->[ライブラリのインストール]->[Preferences]をクリック

f:id:mstmy:20200127211208p:plain

初回起動時に指定した内容を記憶させ、次回起動時に記憶した内容を表示するプログラムを実行してみます。

#include <Preferences.h>

// 内部メモリにアクセスするための定義
Preferences preferences;

// Wifi-SSID
String ssid;
// Wifi-PASSWORD
String pswd;

// メモリのキー情報
const char * PRE_KEY = "mdk-wifi";

// SSIDのキー情報
const char * PRE_SSID_KEY = "ssid";
// パスワードのキー情報
const char * PRE_PSWD_KEY = "pswd";
// 初期値文字列
const char * PRE_NONE_STR = "none";

void setup() {

  // シリアルの初期化
  Serial.begin(115200);

  // メモリの領域を読み込む
  preferences.begin(PRE_KEY, false);

  // SSIDとパスワードの取得
  ssid = preferences.getString(PRE_SSID_KEY, PRE_NONE_STR);
  pswd = preferences.getString(PRE_PSWD_KEY, PRE_NONE_STR);
  // Wifiの情報が保存されていない場合
  if (ssid == PRE_NONE_STR) {
    // 接続が完了したらSSIDとパスワードを記憶(仮のSSIDとパスワード)
    preferences.putString(PRE_SSID_KEY, "ssid-test");
    preferences.putString(PRE_PSWD_KEY, "123456789");
    Serial.println("Setting OK!");
  } else {
    // 取得した内容を出力
    Serial.println("SSID:" + ssid);
    Serial.println("PSWD:" + pswd);
  }
}

void loop() {
}

■初回起動の結果

f:id:mstmy:20200127211230p:plain
初回起動時の結果



初回は「Setting OK!」と出ています。


この時、仮のSSIDとパスワードを保存しています。

■2回目の起動の結果

f:id:mstmy:20200127211309p:plain
2回目の起動時の結果



初回で保存していた内容がちゃんと出力されていることを確認できました。


まとめ

これで内部メモリにSSIDやパスワードなどを保存し、次回以降の起動時に読み込むことが可能になりました。


ご覧いただきありがとうございます♪