"Bertahan dalam tidur nyenyak, tetapi tidak diatur ulang, powercycle atau merenungkan."
Jangan gunakan pustaka ini jika Anda hanya ingin data dalam beberapa variabel untuk bertahan dari tidur nyenyak. Cukup tandai variabel RTC_DATA_ATTR dan Anda siap. Ada tutorial di sini. Perpustakaan ini hanya untuk Anda jika Anda memiliki kode yang ada yang menggunakan EEPROM.h , dan Anda baik -baik saja dengan memiliki apa pun yang ditulis untuk EEPROM tidak bertahan hidup reset, kehilangan daya atau mem -flash kode baru.
Flash dapat dipakai karena ditulis ulang. Flash dalam modul Espressif sendiri dijamin untuk 100.000 penulisan, modul flash SPI generik umumnya dinilai di mana saja dari 10.000 hingga 100.000. Tetapi ini umumnya mengasumsikan bahwa chip berada pada 20 ° C (68 ° F). Di dalam sebuah modul itu akan selalu lebih panas, dan ada banyak cerita horor di internet chip spi flash yang tahan lama dari siklus flash magnitudo kurang dari yang diiklankan.
ESP32 ESP32 Arduino Code dari Espressif mencakup implementasi EEPROM Arduino yang menulis EEPROM untuk berkedip sebagai gumpalan dalam penyimpanan nilai kunci NVS mereka. Apa artinya ini secara efektif adalah bahwa untuk setiap perubahan bahkan hanya satu bit di "EEPROM", seluruh EEPROM Anda ditulis ulang untuk Flash, salinan lama ditandai dihapus, dan jika halaman flash terisi, halaman baru ditandai aktif dan sebagainya. Ini dapat menyebabkan lebih banyak keausan flash daripada yang diperkirakan, detail pastinya ada di sini.
Jika aplikasi Anda menjaga baterai ESP32 bertenaga tetapi menempatkannya dalam tidur nyenyak, ia menggunakan daya yang sangat sedikit sehingga sangat efektif sejauh menyangkut masa pakai baterai. Anda dapat membuatnya bangun lagi setelah sejumlah waktu telah kedaluwarsa dan/atau jika GPIO (yaitu tombol) tinggi atau rendah.
Perpustakaan ini akan meniru EEPROM di RTC RAM, yang tetap bertenaga saat tidur nyenyak. Untuk mempelajari lebih lanjut tentang tidur nyenyak, periksa tutorial mudah ini, atau dokumentasi Espressif jika Anda menginginkan semua detailnya. Seperti disebutkan di atas, gunakan pustaka ini hanya jika kode Anda yang ada menggunakan EEPROM. Cukup memiliki beberapa variabel yang selamat dari tidur nyenyak jauh lebih mudah, periksa tutorialnya.
Jika Anda menghubungi EEPROM.toNVS() , salinan data EEPROM Anda akan disimpan ke kunci "EEPROM" di NVS Flash, persis seperti ketika Anda akan menggunakan EEPROM.h asli. Setiap kali ESP32_RTC_EEPROM bangun dengan RAM RTC kosong (yang dideteksi dengan adanya kata ajaib), ia akan mencoba untuk melihat apakah ada salinan yang disimpan dengan ukuran yang tepat. Jika demikian, itu dimuat. Anda juga dapat secara manual kembali ke penyelamatan terakhir dengan menelepon EEPROM.fromNVS() .
Fungsi EEPROM.wasRestored() akan memberi tahu Anda apakah isinya secara otomatis dipulihkan dari NVS dalam siklus boot ini.
Tambahkan pustaka ini menggunakan manajer perpustakaan atau dengan mengkloning repositori ini ke folder perpustakaan Arduino Anda.
Ganti #include <EEPROM.h> dalam kode Anda oleh #include <ESP32_RTC_EEPROM.h> .
Tidak ada 3, Anda sudah selesai.
Perpustakaan ini akan selalu mengklaim EEPROM_SIZE (ditetapkan pada 2048, perubahan dalam file .h) byte RAM RTC (memiliki 8k). Anda dapat menetapkan angka yang lebih rendah saat memanggil EEPROM.begin() , tetapi angka itu hanya membatasi apa yang dapat dibaca/ditulis kode Anda (dan berapa banyak yang ditulis untuk Flash NVS setiap kali saat mencadangkan), bukan RAM RTC yang sebenarnya digunakan.
Tidak dapat mengulanginya cukup sering: hanya berguna dalam kombinasi dengan tidur nyenyak ESP, data dalam EEPROM palsu ini tidak bertahan dari powercycling, mengatur ulang atau merenungkan