m5stackで組込み!!

Arduinoによるm5stack開発のいろいろと...

SDからiniファイルの読込み

今回はSDカードにiniファイルを作ってWifiSSIDとパスワードを管理するようにしました。
起動時のsetup()でiniファイルのSSIDとパスワードを読込む処理を作りました。

読込むiniファイル

SDの中にsetフォルダを作ってconfig.iniファイルを格納します。
中身はこちらです。

###########################
#    Config.ini
###########################

#SSID
YOUR_SSID ← 変更箇所

#SSID_PASS
YOUR_PASS ← 変更箇所

iniファイルの読込み処理

こちらがコードです。

#include <M5Stack.h>
#include <WiFi.h>
#include <string>

void setup() {
  String config_ini;
  String ssid;
  String password;
  /* 初期化 */
  M5.begin();
  /* SD初期化 */
  SD.begin();

  /* 文字サイズを変更 */
  M5.Lcd.setTextSize(1);
  
  /* ファイルオープン */
  File datFile = SD.open("/set/config.ini");
  if( datFile )
  {
    M5.Lcd.println("File open successful");
    /* サイズ分ループ */
    while(datFile.available())
    {
      config_ini = config_ini + datFile.readString();
    }
    /* ファイルクローズ */   
    datFile.close();
  } 
  else
  {
    M5.Lcd.println("File open error hello.txt");
  }
  /* SSID取得 */
  config_ini = config_ini.substring(config_ini.indexOf("#SSID\r\n") + 7);
  ssid = config_ini.substring(0, config_ini.indexOf("\r\n"));
  /* パスワード取得 */
  config_ini = config_ini.substring(config_ini.indexOf("#SSID_PASS\r\n") + 12);
  password = config_ini.substring(0, config_ini.indexOf("\r\n"));

  /* connect to WiFi */
  M5.Lcd.print("Connecting to YOUR_SSID ");
  /* wifi初期化 */
  WiFi.begin(ssid.c_str(), password.c_str());
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      M5.Lcd.print(".");
  }
  M5.Lcd.println(" CONNECTED");

  /* disconnect WiFi as it's no longer needed */
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

void loop() {

}

これでSSIDやパスワードが変わってもiniファイルを書き換えるだけで済みますね。
あとは毎回コードに書いたSSIDとパスワードを書き換えずにブログに載せれます(笑)