Файловая система внешней флэш-памяти

Я создаю сборщик данных о погоде и хочу иметь возможность куда-нибудь сохранять эти данные о погоде. Я рассмотрел варианты, и, поскольку я собираюсь хранить довольно небольшой объем данных (в диапазоне мегабайт), я не хочу использовать SD-карты (также SD-карты стоят дорого). Я слышал об использовании микросхем флэш-памяти NAND (например, W25Q32) и надеялся, что смогу взаимодействовать с ними простым способом (поскольку большинство способов требуют записи на каждый отдельный адрес). Есть ли способ создать файловую систему внутри одного из этих небольших чипов флэш-памяти и взаимодействовать с ней так же просто, как с SD-картой?

TLDR: я хочу легко взаимодействовать с чипом флэш-памяти для хранения основных данных ASCII

, 👍5

Обсуждение

Хотя вы *можете* поместить файловую систему на флэш-память SPI, это, как правило, плохая идея, поскольку многие файловые системы плохо сопоставляются с блочной природой флэш-памяти NOR, а API-интерфейсы файловой системы не очень хорошо обеспечивают доступ, тщательно настроенный к потребностям флэш-памяти. . Если да, используйте файловую систему, оптимизированную для флэш-памяти. Вероятно, лучше и проще организовать ваши записи в виде линейного журнала данных., @Chris Stratton

Можете ли вы настроить сервер с простым веб-приложением, разместить модуль Wi-Fi на Arduino и хранить данные в базе данных? Можно использовать Apache или IIS, если вы используете Windows. настройте его для запуска PHP. Настройте базу данных MySQL. Создайте страницу, которая принимает переменные GET данных и вставляет ее в базу данных. Вы можете создать другую страницу для доступа/поиска/анализа данных., @rpmerf

@rpmerf Я делал это раньше, но он потребляет НАМНОГО слишком много энергии, и я планирую разместить эти небольшие сборщики данных о погоде в местах вдали от инфраструктуры., @Carrot M

Почему бы не использовать необработанные команды устройства и не писать блоки? Действительно ли вашему эскизу нужна файловая система, то есть больше, чем несколько файлов?, @Mikael Patel

Существует несколько плат Arduino, которые имеют RTC, SPI Flash и RF-модули и имеют действительно маломощную конструкцию. См., например, Anarduino http://www.anarduino.com/miniwireless/ или Moteino https://lowpowerlab.com/guide/moteino/., @Mikael Patel

esp8266 позволяет хранить несколько МБ в файловой системе SPIFFS; другие платы, вероятно, предлагают то же самое., @dandavis

@ChrisStratton, может быть, у тебя есть ссылка, как это сделать?, @Carrot M

@CarrotM SD-карта также не реализует файловую систему. В обоих случаях вам необходимо реализовать файловую систему в своем программном обеспечении поверх устройства хранения. Неэффективность такого подхода особенно плоха на небольших устройствах, но если вы действительно хотите это сделать, процесс будет сравним с кодом файловой системы, который вы используете поверх SD-карты., @Chris Stratton

I2C является общим для чипов EEPROM, и доступ к нему можно получить с минимальными усилиями по кодированию с помощью библиотеки Wire., @stacker

Вы рассматривали FRAM (сегнетоэлектрическую RAM)? Он поставляется в форматах SPI и I2C. Я получил свои первые устройства от Adafruit. Вы можете читать и писать столько, сколько захотите, он прослужит очень долго при температуре ниже 85°C. Я считаю, что у них на сайте есть какое-то прикладное программное обеспечение., @Gil


3 ответа


-1

Есть способ сделать это. Используя адаптер за 2 доллара с eBay, вы можете подключить его к карте micro sd. Грустная карта за 4 доллара может хранить 128 МБ данных, чего вам вполне достаточно.

Учебное пособие по хранению данных Arduino с учетом погоды

Карта Micro SD на 128 МБ

,

Это не отвечает на заданный вопрос. Автор поста, похоже, уже знаком с тем, что вы предлагаете, и пытается сделать что-то другое., @Chris Stratton


2

Эта библиотека предлагает средства чтения и записи массивов ASCII на флэш-устройства. Это было бы простым решением для таких требований регистратора данных. Она ориентирована на ASCII.

https://github.com/schinken/Flash

,

2

Я не думаю, что вам нужна файловая система: она обычно необходима, когда вы хотите управлять многими файлами. Ваш журнал данных о погоде выглядит как один файл.

Похоже, что вам нужно получить доступ к EEPROM как к потоку, точно так же, как и к открытому файлу. Некоторые библиотеки EEPROM имеют потоковые оболочки, например эта для ESP. Я предлагаю вам проверить это и посмотреть, сможете ли вы адаптировать его к используемой вами библиотеке EEPROM.

,