Файловая система внешней флэш-памяти
Я создаю сборщик данных о погоде и хочу иметь возможность куда-нибудь сохранять эти данные о погоде. Я рассмотрел варианты, и, поскольку я собираюсь хранить довольно небольшой объем данных (в диапазоне мегабайт), я не хочу использовать SD-карты (также SD-карты стоят дорого). Я слышал об использовании микросхем флэш-памяти NAND (например, W25Q32) и надеялся, что смогу взаимодействовать с ними простым способом (поскольку большинство способов требуют записи на каждый отдельный адрес). Есть ли способ создать файловую систему внутри одного из этих небольших чипов флэш-памяти и взаимодействовать с ней так же просто, как с SD-картой?
TLDR: я хочу легко взаимодействовать с чипом флэш-памяти для хранения основных данных ASCII
@Carrot M, 👍5
Обсуждение3 ответа
Есть способ сделать это. Используя адаптер за 2 доллара с eBay, вы можете подключить его к карте micro sd. Грустная карта за 4 доллара может хранить 128 МБ данных, чего вам вполне достаточно.
Учебное пособие по хранению данных Arduino с учетом погоды
Карта Micro SD на 128 МБ
Это не отвечает на заданный вопрос. Автор поста, похоже, уже знаком с тем, что вы предлагаете, и пытается сделать что-то другое., @Chris Stratton
Эта библиотека предлагает средства чтения и записи массивов ASCII на флэш-устройства. Это было бы простым решением для таких требований регистратора данных. Она ориентирована на ASCII.
https://github.com/schinken/Flash
Я не думаю, что вам нужна файловая система: она обычно необходима, когда вы хотите управлять многими файлами. Ваш журнал данных о погоде выглядит как один файл.
Похоже, что вам нужно получить доступ к EEPROM как к потоку, точно так же, как и к открытому файлу. Некоторые библиотеки EEPROM имеют потоковые оболочки, например эта для ESP. Я предлагаю вам проверить это и посмотреть, сможете ли вы адаптировать его к используемой вами библиотеке EEPROM.
- Как функция/метод может определить, является ли передаваемый массив const PROGMEM (flash) или нет (RAM)?
- Насколько быстро чтение флэш-памяти по сравнению с SRAM?
- EEPROM.get возвращает неверные данные
- Как настроить схему секционирования Wemos D1 mini pro?
- Внешняя оперативная память (23LC1024) и внешняя флэш-память (W25Q64JVSSIQ) с Sparkfun SAMD21
- Портирование «дальнего» доступа к флэш-памяти с Arduino Mega на Due
- Балансировка ограниченного объема памяти Arduino с уменьшением скорости, если выводить все по мере измерения?
- Как увеличить скорость записи на SD-карту в Ардуино
Хотя вы *можете* поместить файловую систему на флэш-память 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