"깊은 수면에서 살아남지 만 재설정, 파워 사이클 또는 반사는 살아남지 못합니다."
일부 변수의 데이터가 깊은 수면에서 살아 남기를 원한다면이 라이브러리를 사용하지 마십시오. 변수 RTC_DATA_ATTR 표시하면 모두 설정됩니다. 여기 튜토리얼이 있습니다. 이 라이브러리는 EEPROM.h 사용하는 기존 코드가있는 경우에만 해당되며 EEPROM에 기록 된 내용은 재설정, 전력 손실 또는 새 코드를 플래시하지 않아도 괜찮습니다.
플래시는 다시 작성하여 마모 될 수 있습니다. Espressif의 자체 모듈의 플래시는 100.000 쓰기로 보장되며, 일반 SPI 플래시 모듈은 일반적으로 10.000 ~ 100.000의 등급입니다. 그러나 이것은 일반적으로 칩이 20 ° C (68 ° F)라고 가정합니다. 모듈 내부에는 항상 더 뜨거워 질 것이며, SPI 플래시 칩의 그물에는 광고보다 적은 크기의 플래시 사이클이 지속되는 많은 공포 이야기가 많이 있습니다.
Espressif의 ESP32 Arduino 코드에는 NVS 키 값 저장소에서 Eeprom을 블로브로 플래시하기 위해 Eeprom을 작성하는 Arduino Eeprom 구현이 포함되어 있습니다. 이것이 효과적으로 의미하는 것은 "eeprom"에서 단 하나의 약간의 변화에 대해 전체 eeprom이 플래시로 다시 작성되고, 이전 사본이 삭제 된 기존 사본이 삭제되며, 플래시 페이지가 채워지면 새 페이지가 활성화 된 것입니다. 이것은 예상보다 더 많은 플래시 마모로 이어질 수 있습니다. 정확한 세부 사항은 여기에 있습니다.
애플리케이션이 ESP32 배터리 전원을 유지하지만 깊은 수면에 넣으면 배터리 수명에 관한 한 효과적으로 전력을 거의 사용하지 않습니다. 일정량이 만료되고/또는 GPIO (IE 버튼)가 높거나 낮아지면 다시 깨어날 수 있습니다.
이 라이브러리는 RTC RAM에서 EEPROM을 모방하며, 깊은 수면 중에 구동되는 상태입니다. Deep Sleep에 대한 자세한 내용은 모든 세부 정보를 원하시면이 쉬운 튜토리얼 또는 Espressif의 문서를 확인하십시오. 위에서 언급했듯이 기존 코드가 EEPROM을 사용하는 경우에만이 라이브러리를 사용하십시오. 단순히 일부 변수가 깊은 수면에서 살아남는 것이 더 쉽습니다. 튜토리얼을 확인하십시오.
EEPROM.toNVS() 호출하는 경우, EEPROM 데이터의 사본은 원래 EEPROM.h 사용할 때와 마찬가지로 NVS 플래시의 "eeprom"키 "eeprom"에 저장됩니다. ESP32_RTC_EEPROM이 빈 RTC RAM (마법 단어의 존재에 의해 감지)으로 깨어날 때마다 올바른 크기의 저장된 사본이 있는지 확인하려고합니다. 그렇다면로드됩니다. EEPROM.fromNVS() 호출하여 마지막 저장으로 수동으로 되돌릴 수도 있습니다.
EEPROM.wasRestored() 함수는이 부팅주기에서 NVS에서 내용이 자동으로 복원되었는지 여부를 알려줍니다.
라이브러리 관리자를 사용 하여이 라이브러리를 추가 하거나이 저장소를 Arduino 라이브러리 폴더로 클로닝하여 추가하십시오.
코드에서 #include <EEPROM.h> #include <ESP32_RTC_EEPROM.h> 로 바꾸십시오.
3은 없습니다.
이 라이브러리는 항상 RTC RAM의 EEPROM_SIZE (2048, .H 파일의 변경) 바이트 (8K)를 주장합니다. EEPROM.begin() 호출 할 때 더 낮은 숫자를 설정할 수 있지만, 그 숫자는 실제 RTC RAM이 아닌 코드가 읽고 쓰는 내용 (및 백업 할 때마다 NVS 플래시에 기록 된 양) 만 제한합니다.
자주 반복 할 수 없습니다 : ESP의 깊은 수면과 함께 유용한이 가짜 Eeprom의 데이터는 PowerCycling, Resetting 또는 Reflashing에서 살아남지 못합니다.