質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

解決済

AtomLiteのフラッシュメモリへのセンサー値の格納方法について

退会済みユーザー

退会済みユーザー

総合スコア0

M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。

1回答

0リアクション

0クリップ

3376閲覧

投稿2020/11/25 04:42

編集2020/11/25 04:53

前提・実現したいこと

AtomLiteとセンサーを接続し、センサー(温湿度センサーなど)で読み取ったデータをAtomLite内のフラッシュメモリに保存したいです。SDカードなどでのデータ保存先の増設はしたくないです。

理想では、
「パソコン(Arduino IDE)からAtomLiteにプログラムを書き込む → AtomLiteとセンサーを接続し乾電池駆動させ、センサーを用いてデータを取得しAtomLite内のフラッシュメモリに保存する → AtomLiteをパソコンに接続し、フラッシュメモリ内のデータをCSVファイルなどに出力する」
です。

フラッシュメモリにEEPROMとSPIFFSが分かったので、現時点ではEEPROM.hを使用しています。
以下のプログラムはEEPROMのサンプルスケッチ"eeprpm_class"にMHZ19(CO2センサ)のプログラムを組み合わせたものです。
数秒ごとに温度データが増えていくと思っていましたが、シリアルモニタを見ていてもデータが蓄積されません。

お教えいただきたいことは、
・動的なデータをAtomLite内のフラッシュメモリに保存する方法・プログラム
・その後のデータの取り出し方・プログラム
です。
センサーを複数使用する予定のため、SPIFFSの方がよいなど、アドバイスがありましたら、そちらもご教授ください。
よろしくお願いいたします。

該当のソースコード

/* ESP32 eeprom_class example with EEPROM library This simple example demonstrates using EEPROM library to store different data in ESP32 Flash memory in a multiple user-defined EEPROM class objects. Created for arduino-esp32 on 25 Dec, 2017 by Elochukwu Ifediora (fedy0) converted to nvs by lbernstone - 06/22/2019 */ #include <M5Atom.h> #include "EEPROM.h" // Instantiate eeprom objects with parameter/argument names and sizes //EEPROMClass NAMES("eeprom0", 0x500); EEPROMClass TEMP("eeprom1", 0x200); //EEPROMClass AGE("eeprom2", 0x100); #include <MHZ19_uart.h> MHZ19_uart mhz19; void setup() { Serial.begin(115200); mhz19.begin(25, 21); mhz19.setAutoCalibration(false); Serial.print("MH-Z19 now warming up... status:"); Serial.println(mhz19.getStatus()); delay(500); } void loop() { //int co2ppm = mhz19.getPPM(); Serial.println("Testing EEPROMClass\n"); /* if (!NAMES.begin(NAMES.length())) { Serial.println("Failed to initialise NAMES"); Serial.println("Restarting..."); delay(1000); ESP.restart(); } */ if (!TEMP.begin(TEMP.length())) { Serial.println("Failed to initialise TEMP"); Serial.println("Restarting..."); delay(1000); ESP.restart(); } /* if (!AGE.begin(AGE.length())) { Serial.println("Failed to initialise AGE"); Serial.println("Restarting..."); delay(1000); ESP.restart(); } */ int temp = mhz19.getTemperature(); //char* name = "Teo Swee Ann"; //double height = 5.8; //uint32_t age = 47; // Write: Variables ---> EEPROM stores //NAMES.put(0, name); TEMP.put(0, temp); //AGE.put(0, age); //Serial.print("name: "); Serial.println(name); Serial.print("temp: "); Serial.println(temp); //Serial.print("age: "); Serial.println(age); Serial.println("------------------------------------\n"); // Clear variables //name = '\0'; //height = 0; //age = 0; //Serial.print("name: "); Serial.println(name); Serial.print("temp: "); Serial.println(temp); //Serial.print("age: "); Serial.println(age); Serial.println("------------------------------------\n"); // Read: Variables <--- EEPROM stores //NAMES.get(0, name); TEMP.get(0, temp); //AGE.get(0, age); //Serial.print("name: "); Serial.println(name); Serial.print("temp: "); Serial.println(temp); //Serial.print("age: "); Serial.println(age); Serial.println("Done!"); delay(0xFFFFFFFF); }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

M5Stack

M5Stackは、小型のマイコンモジュールです。拡張モジュールが豊富に用意されており、センサと組み合わせることで測定機能を自由に追加することができます。