前提・実現したいこと
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); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/11/27 22:46
2020/11/27 23:17
退会済みユーザー
2020/12/02 03:46 編集
2020/12/02 12:51
2020/12/03 12:40
退会済みユーザー
2020/12/07 15:17
2020/12/08 01:43
退会済みユーザー
2020/12/08 03:15
2020/12/08 04:38
退会済みユーザー
2021/01/09 13:37