Где хранить критические данные в ситуации отключения электроэнергии на ESP8266
Я хочу сохранить счетчик, который всегда меняется, но я хочу, чтобы он оставался и мог получить его после потери питания. Это только один длинный номер данных, но так как он всегда меняется, я не знаю, где его хранить, чтобы не износ памяти ?
Я знаю, что написание многого на eeprom или SPIFFS ESP повредит ему.Я видел этот пост, но в моем случае это не помогает.
Данные, которые необходимо сохранить, - это объем воды, перекачиваемой водяным насосом в течение всего срока службы. Конечно, я мог сохранить его только один раз, чтобы уменьшить количество записей, но я бы потерял некоторую acccuracy.
@harold, 👍2
Обсуждение2 ответа
Если вас беспокоит максимальное количество циклов записи, вы можете записать данные на SD-карту или какой-либо FRAM, подключенный к ESP8266, или отправить данные на (веб -) сервер (если у вас есть доступ к нему) с помощью Wi-Fi. Затем сервер может хранить эти данные.
Если вы действительно заботитесь о данных, вы могли бы сделать и то, и другое. Наличие резервной копии-единственная защита от катастрофического сбоя.
Локальным решением было бы использовать EERAM. Это EEPROM и SRAM, соединенные вместе с некоторыми интеллектуальными схемами управления питанием - записи сохраняются в SRAM до тех пор, пока не отключится питание (или не будет отправлена инструкция для сохранения), когда содержимое SRAM копируется в EEPROM с использованием энергии, хранящейся в большом конденсаторе.
Хорошим выбором является 47C16 (5 В) или 47L16 (3,3 В).
- Как сохранить структуру в файле?
- Любой способ использовать DMA для передачи данных на SD - карту в ESP8266
- Как читать и записывать EEPROM в ESP8266
- Spiffs против Eeprom на esp8266
- В ESP8266 EEPROM сохраненные данные отличаются, когда я пытаюсь их прочитать
- ОТА-программа SPIFFS на ESP8266
- Как записать и прочитать из файла SPIFFS как данные объекта на ESP8266
- Значение неинициализированной EEPROM в ESP8266
Насколько я могу видеть, СПАЙФФС [действительно носит leveling](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/storage/wear-levelling.html#). Чтобы получить приблизительное количество обновлений счетчика, вы можете сделать это до того, как вам придется думать об износе. Получите размер объема СПИФФОВ. Разделите это на размер сектора прошивки SPI (см. таблицу данных). Умножьте это на количество циклов, указанное в техническом описании для его выносливости. Я предполагаю, что ваш насос должен работать в течение тысячелетий, прежде чем вы сможете ожидать проблем с прошивкой., @Gerben
вы можете сохранить его в память rtc при каждом чтении и в spiffs (который выровнен по износу) каждые 10 чтений. Это позволит вам без потерь возобновить работу от коротких перерывов в питании и сбалансировать долгосрочную точность с надежностью., @dandavis