「深い眠りを残しますが、リセット、パワーサイクル、リフラシングは生き残りません。」
一部の変数のデータを深い眠りに耐えるだけである場合、このライブラリを使用しないでください。変数RTC_DATA_ATTRにマークするだけで、すべて設定されています。ここにチュートリアルがあります。このライブラリは、 EEPROM.hを使用する既存のコードがある場合にのみあなたのためです。また、eepromに書かれたものをリセット、電源損失、または新しいコードの点滅として書いても大丈夫です。
フラッシュは、書き直されることで摩耗する可能性があります。 Espressif独自のモジュールのフラッシュは、100.000の書き込みに保証されています。一般的なSPIフラッシュモジュールは通常、10.000から100.000の定格です。しかし、これは通常、チップが20°C(68°F)であると仮定しています。モジュール内では、常に熱くなります。また、SPIフラッシュチップのネットには、広告よりも少ない桁違いのフラッシュサイクルが少ないホラーストーリーがたくさんあります。
EspressifのESP32 Arduinoコードには、EEPROMをNVSキー価値ストレージでBLOBとしてフラッシュするArduino EEPROMの実装が含まれています。これが効果的に意味するのは、「eeprom」の1ビットでさえも1ビットの変更ごとに、Eeprom全体がFlashに書き換えられ、古いコピーが削除され、フラッシュページがいっぱいになった場合、新しいページがアクティブにマークされていることです。これにより、予想よりも多くのフラッシュ摩耗につながる可能性があります。正確な詳細はここにあります。
アプリケーションがESP32のバッテリーを搭載しているが、深い睡眠に陥ると、バッテリー寿命に関する限り、効果的にオフになるほどのパワーが非常に少ない場合。一定の時間が期限切れになった後、および/またはGPIO(つまりボタン)が高または低くなった場合に再び目を覚ますことができます。
このライブラリは、深い睡眠中に動力を維持するRTC RAMのEEPROMをエミュレートします。深い睡眠の詳細については、すべての詳細が必要な場合は、この簡単なチュートリアル、またはEspressifのドキュメントを確認してください。上記のように、既存のコードがEEPROMを使用している場合にのみ、このライブラリを使用してください。単にいくつかの変数が深い眠りを延ばすのがずっと簡単になります。チュートリアルを確認してください。
EEPROM.toNVS()を呼び出すと、eepromデータのコピーは、元のEEPROM.hを使用するときとまったく同じように、NVSフラッシュのキー「EEPROM」に保存されます。 ESP32_RTC_EEPROMが空のRTC RAM(魔法の単語の存在によって検出されます)で目覚めると、適切なサイズのコピーが保存されているかどうかを確認します。もしそうなら、それはロードされます。またEEPROM.fromNVS()を呼び出すと、最後の保存に手動で戻ることもできます。
関数EEPROM.wasRestored()は、このブートサイクルで内容がNVSから自動化されたかどうかを示します。
ライブラリマネージャーを使用して、またはこのリポジトリをArduinoライブラリフォルダーにクローニングしてこのライブラリを追加します。
#include < #include <ESP32_RTC_EEPROM.h> #include <EEPROM.h>をコードに置き換えます。
3つありません、あなたは完了です。
このライブラリは、RTCのRAM(8Kがある)のEEPROM_SIZE (2048、.hファイルの変更)バイトを常に請求します。 EEPROM.begin()を呼び出すときに低い数値を設定できますが、その数は、実際のRTC RAMを使用するのではなく、コードの読み取り/書き込み(およびバックアップ時にNVSフラッシュに書かれた量)のみを制限します。
頻繁に繰り返すことはできません: ESPの深い睡眠と組み合わせてのみ役立ちます。