概要

ESP-WROOM-32にSDカードを接続し、ファイル書き込みをすることができた。


背景と目的

ESP-WROOM-32で、センサ計測値等をWi-Fi等で送信できない場合に、いったん保存しておきたい。そこで、SDカードを使ってファイルにデータを保存する方法を調べ、メモしておく。


詳細

1.材料

microSDカードは、WindowsPCのアプリケーションSDFormatterにて、FAT32でフォーマットしておいた。


2.接続

カードスロットとESP-WROOM-32の間の接続は、こちらこちらを参考にして、以下のような配線とした。写真は、ブレッドボードに組んだ様子。

20170803233952

図2.1 回路図

DSC_0082

図2.2 ブレッドボードに組んだ様子


3.ソフトウェア

ここでは、もっとも単純に、ArduinoのSDライブラリを使用して、"This is test."という文字列を10回書き込むだけとした。書き込み先は、ルートディレクトリの"test1.txt"というファイルとした。

#include <SD.h>

const uint8_t cs_SD = 5; // GPIO5=CS
const char* fname = "/test1.txt";

File fo; // ファイルオブジェクト
int i = 0;

void setup() {
  Serial.begin(115200);
  
  // SDライブラリを初期化
  SD.begin(cs_SD, SPI, 24000000, "/sd");

  // 書き込みモードでファイルを開く
  fo = SD.open(fname, FILE_WRITE);

  for (i = 0; i < 10; i++) {
    // 書き込む
    fo.println("This is test.");
    
    // 1秒待つ
    delay(1000);
    Serial.println(i, DEC);    
  }
  
  // ファイルを閉じる
  fo.close();
  
}

void loop() {

  Serial.println("Finish.");

}


4.動作確認

書き込んだSDカードをPCで開いたところ、ルートディレクトリに"test1.txt"というファイルができていた。中身を開くと、以下の通り10回分"This is test."が書き込まれていた。正しく、書き込みができたようだ。

20170803232159


まとめ

ESP-WROOM-32にSDカードを接続し、ファイル書き込みをすることができた。センサ等を接続して、計測値を記録するのに役立てられそうだ。