ESP32 チュートリアル 40/55 - Micro SDカードへの読み書き | SunFounderのESP32 IoT学習キット

ESP32 チュートリアル 40/55 - Micro SDカードへの読み書き | SunFounderのESP32 IoT学習キット

このチュートリアルでは、ESP32とSunFounder ESP32拡張ボードを使用して、マイクロSDカードからデータを読み取り、書き込む方法を学びます。これにより、データを保存して後で取り出すことができ、これは多くのIoTアプリケーションにとって不可欠です。このチュートリアルの最後には、マイクロSDカードからファイルを作成、書き込み、読み取りできる作業セットアップが完成します。

始めるにあたって、マイクロSDカードがFAT32に適切にフォーマットされていることを確認してください。これは、ESP32がカードとやり取りするために必要なファイルシステムです。私たちはSD_MMCライブラリを使用します。これはマイクロSDカード上のファイルにアクセスするプロセスを簡素化します。マイクロSDカードの最大容量は32GBを超えてはいけないことに注意することが重要です。

ハードウェアの説明

このプロジェクトの主なコンポーネントには、ESP32マイクロコントローラーとマイクロSDカードモジュールが含まれています。ESP32は、内蔵のWi-FiおよびBluetooth機能を備えた多用途のマイクロコントローラーであり、IoTアプリケーションに最適です。マイクロSDカードモジュールは、ESP32がカードから読み取り、カードに書き込むことを可能にし、さまざまなアプリケーションのためのデータストレージを実現します。

マイクロSDカードは、データを構造化された方法で保存するためにファイルシステムを使用して動作します。これは、ESP32とSD_MMCインターフェースを介して通信し、ファイルの効率的な読み取りと書き込みを可能にします。この設定は、データロギング、画像の保存、またはデータの永続性が必要な他のアプリケーションに使用できます。

配線手順

ESP32-40-micro-sd-card-1

マイクロSDカードをESP32に接続するには、次の手順に従ってください:

まず、電源とグラウンドのピンを接続します。マイクロSDカードモジュールのVCCピンをESP32の3.3Vピンに接続し、GNDピンをESP32のGNDピンの1つに接続します。次に、データピンを接続します:マイクロSDカードモジュールのCS(チップセレクト)ピンをピンに接続します。5ESP32では、MOSI(マスターアウトスレーブイン)ピンからピンへ23MISO(マスター・イン・スレーブ・アウト)ピンからピンへ19およびSCK(シリアルクロック)ピンをピン18これらの接続が安全であることを確認し、通信の問題を避けてください。

異なる拡張ボードを使用している場合、ピン番号は異なる場合があるため、ボードに特有の文書を参照してください。配線は、マイクロSDカードへの読み書きの成功にとって重要です。

コード例とウォークスルー

さて、マイクロSDカードとやり取りするコードの主な部分を見てみましょう。セットアップは、シリアル通信の初期化とマイクロSDカードが正常にマウントされているかどうかの確認から始まります。

Serial.begin(115200); // Initialize serial communication
if (!SD_MMC.begin()) { // Check if SD card is mounted successfully
  Serial.println("Failed to mount SD card"); // Print error message if SD card failed to mount
  return;
}

このコードスニペットでは、シリアル通信が115200のボー(baud)レートに設定されており、出力の監視にとって重要です。SD_MMC.begin()関数はSDカードをマウントしようとします。失敗した場合、シリアルモニターにエラーメッセージが表示されます。

コードの次の部分は、マイクロSDカードに新しいファイルを作成し、その中に1行のテキストを書き込みます。

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("Failed to open file for writing"); // Print error message if file failed to open
  return;
}
if (file.println("Test file write")) { // Write a line of text to the file
  Serial.println("File write successful"); // Print success message if write operation is successful
} else {
  Serial.println("File write failed"); // Print error message if write operation failed
}
file.close(); // Close the file

ここに、という名前のファイルがあります。test.txt書き込みモードで開かれています。ファイルが正常に開かれると、テキストの1行が書き込まれ、成功メッセージが表示されます。書き込み操作が失敗した場合は、代わりにエラーメッセージが表示されます。最後に、変更が保存されるようにファイルが閉じられます。

コードはまた、マイクロSDカードのルートディレクトリからファイルを読み取り、それらの名前とサイズを表示します。

File root = SD_MMC.open("/"); // Open the root directory of SD card
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
  Serial.print(file.name()); // Print the filename
  Serial.print("\t");
  Serial.println(file.size()); // Print the filesize
  file.close(); // Close the file
}

このスニペットはルートディレクトリを開き、すべてのファイルをループしてその名前とサイズをシリアルモニタに表示します。これはデータが正常に書き込まれたか確認し、SDカードの内容を見るのに役立ちます。

記事の下に読み込まれている完全なコードを参照してください。

デモンストレーション / 期待すること

コードをアップロードし、ESP32をリセットした後、シリアルモニターにSDカードが正常にマウントされたか、ファイル操作が成功したかを示すメッセージが表示されるはずです。また、ルートディレクトリに見つかったファイルのリストも表示され、データが正しく書き込まれたことが確認できます(ビデオの13:45)。

一般的な落とし穴には、マイクロSDカードが正しくフォーマットされて接続されていることを確認すること、およびシリアルモニターが正しいボーレートに設定されていることの確認が含まれます。問題が発生した場合は、配線と接続を再確認してください。

動画のタイムスタンプ

  • 00:00 スタート
  • 1:45 ESP32のMicro SDカードの紹介
  • 3:46 ドキュメントページ
  • 4:43 Arduinoコード
  • 8:09 Arduino IDEでESP32ボードとCOMポートを選択しています
  • 9:51 マイクロSDカード書き込みデモ
  • 11:12 PCで書類ファイルを表示中

画像

ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-2
ESP32-40-micro-sd-card-2
841-ESP32 Tutorial 40/55- Arduino code for micro SD card
言語: C++
コピーしました!

必要かもしれないもの

ファイル📁

ファイルは利用できません。