fieldArduinoなどESP32(ESP32-DevKitC)でmicroSDカードを使うESP32(ESP32-DevKitC)で取得したデータをmicroSDカードに保存する方法を調べました。配線スケッチ動作確認microSDカードモジュールArduinoでmicroSDを使ったときはArduinoの5VをSDカードの3.3Vに変換する回路が搭載されたモジュールを使いました。ESP32は3.3Vですのでレベル変換は必要ありません。ネットで調べるとデータ線を10kΩ程の抵抗でプルアップする必要があるようです。必要な抵抗を搭載したモジュールらしきものがAliExpressであったので入手してみました。同じようなモジュールがいくつかのショップで売られていました。等ではまだ売られていないようです。入手したものはmicroSDのスロットに10kΩの抵抗4つとチップコンデンサ2つがモジュール化されたものです。ピンヘッダはついていなかったのではんだ付けして取り付けました。回路を起こしてみると次の様になりました(間違っていたらゴメンナサイ)。MOSI、CLK、MISOが10kΩでプルアップされていました。一つの10kΩは3.3V電源とmicroSDソケットの端子(SPIモードでは使われていない端子)の間につながっています。2つのチップコンデンサ(容量不明)はGNDとの間に並列に接続されていました。配線ESP32(ESP32-DevKitC)との接続は以下の様になります。『CardInfo』を開きます。ESP32用に一部を書き換えます。Serial.begin(115200);そして書き込みましたが、エラー発生。エラーメッセージを読んでみると、”SD.h”というライブラリが複数ある。”SPI.h”というライブラリも複数ある。”SD2Card”が見つからない。”SPI.h”を使った。Arduino用の”SD.h”には有る”SD2Card”が、ESP32用の”SD.h”には無かったためエラーになった。Arduino用のスケッチは使えないということでしょうか。『SD_Test』を開きます。このスケッチをそのまま実行すると正常に実行されたように見えました。IDEを書けるレベルの私のプログラミング知識では書いてあるコードの理解が追いつきません。部分ですが、なんとなくやっていることは分かるのですが、明確に説明できずもやもやした感じが残っています。このサンプルスケッチを書き替えて色々試してみました。書き込み書き込みのスケッチは次のようにしました。サンプルスケッチからファイル書き込みに関するコードだけ抜き出したものです。{}microSDのルートフォルダにあるファイルを指定するときArduinoでは”hello.txt”のようにフィアル名だけを指定して開くことができましたが、esp32ではルートを示す”/”をつけて”/hello.txt”としなければファイルを開けません。ファイルを新しく作って書き込むときは”writeFile()”関数を、既存のファイルに追記するときは”appendFile()”関数と使い分けます。ファイルの存在しない状態で”appendFile()”関数を実行すると新しくファイルが作られて書き込まれました。読み出しファイルの読み出しのスケッチは以下の通りです。これもサンプルスケッチから読み出しのコードだけ抜き出したものです。{}読み出しでも同様にルートであることを”/”で明示する必要があります。スケッチは各操作各々につき関数を用意します。関数をすぐに見つけられなくなり、可読性が下がります。メインタブから移すことはできないようです)。別タブにすると、スケッチは同じフォルダの別ファイルとして保存されます。IDE右上の下矢印をクリックして、出てきたメニューから『新規タブ』をクリック。下に”新規フィアルの名前:”の項が出るので、ファイル(タブ)名を入力して[OK]をクリックする。新しいタブが出来るので、移動させたい関数をカット&ペーストで持ってくる(元のタブに関数が残っているとエラーになります)。いうタブ(ファイル)に分けてみました。保存すると新しいファイルができている。用の電流制限抵抗(220Ω)。ブレッドボードとジャンプワイヤー、ESP32(ESP32-DevKitC)を用意しました。配線は下図の通りです。いうライブラリを使いました。同様に設定した時間毎に割り込み処理を行うことができます。精度が少し劣るということらしいですが、そんなに正確な動作が必要なわけではありません。使って割り込みを行うこともできて精度も高いらしいのですが、私の手には負えませんでした。落ちてしまい、原因も対策も見当つきませんでした。スケッチを書きこんで、温湿度測定を行いました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。