Где хранить критические данные в ситуации отключения электроэнергии на ESP8266

esp8266 eeprom spiffs littlefs

Я хочу сохранить счетчик, который всегда меняется, но я хочу, чтобы он оставался и мог получить его после потери питания. Это только один длинный номер данных, но так как он всегда меняется, я не знаю, где его хранить, чтобы не износ памяти ?

Я знаю, что написание многого на eeprom или SPIFFS ESP повредит ему.Я видел этот пост, но в моем случае это не помогает.

Данные, которые необходимо сохранить, - это объем воды, перекачиваемой водяным насосом в течение всего срока службы. Конечно, я мог сохранить его только один раз, чтобы уменьшить количество записей, но я бы потерял некоторую acccuracy.

, 👍2

Обсуждение

Насколько я могу видеть, СПАЙФФС [действительно носит leveling](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/storage/wear-levelling.html#). Чтобы получить приблизительное количество обновлений счетчика, вы можете сделать это до того, как вам придется думать об износе. Получите размер объема СПИФФОВ. Разделите это на размер сектора прошивки SPI (см. таблицу данных). Умножьте это на количество циклов, указанное в техническом описании для его выносливости. Я предполагаю, что ваш насос должен работать в течение тысячелетий, прежде чем вы сможете ожидать проблем с прошивкой., @Gerben

вы можете сохранить его в память rtc при каждом чтении и в spiffs (который выровнен по износу) каждые 10 чтений. Это позволит вам без потерь возобновить работу от коротких перерывов в питании и сбалансировать долгосрочную точность с надежностью., @dandavis


2 ответа


1

Если вас беспокоит максимальное количество циклов записи, вы можете записать данные на SD-карту или какой-либо FRAM, подключенный к ESP8266, или отправить данные на (веб -) сервер (если у вас есть доступ к нему) с помощью Wi-Fi. Затем сервер может хранить эти данные.

Если вы действительно заботитесь о данных, вы могли бы сделать и то, и другое. Наличие резервной копии-единственная защита от катастрофического сбоя.

,

1

Локальным решением было бы использовать EERAM. Это EEPROM и SRAM, соединенные вместе с некоторыми интеллектуальными схемами управления питанием - записи сохраняются в SRAM до тех пор, пока не отключится питание (или не будет отправлена инструкция для сохранения), когда содержимое SRAM копируется в EEPROM с использованием энергии, хранящейся в большом конденсаторе.

Хорошим выбором является 47C16 (5 В) или 47L16 (3,3 В).

,