Arduino Mega Server
Модератор: Alex
-
- Сообщения: 792
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Ну хорошо - валим все в один файл . За год будет 365. Сейчас записей событий около 30. Проблем не вижу. Даже если уже не актуально - можно удалить. Само количество записей роли не играет - график строит библиотека. Пол дня через 30 секунд ( для статистики ) и пол дня через 5 минут - 2500 записей - 10 секунд вместе с запуском браузера.....
Тогда останется через календарь выводить нужный файл.
Все таки что бы не засорять тему , продолжим в Визуализации ?
Тогда останется через календарь выводить нужный файл.
Все таки что бы не засорять тему , продолжим в Визуализации ?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
- ser009
- Сообщения: 595
- Зарегистрирован: Сб окт 13, 2012 9:55 am
- Благодарил (а): 4 раза
- Поблагодарили: 43 раза
Re: Arduino Mega Server
Другие полезные функции SD.H
полная версия http://arduino-diy.com/arduino-SD-karta
СпойлерПоказать
Есть и другие полезные функции для работы с SD картой. Некоторые из них мы приведем ниже:
Если вы хотите проверить наличие файла на носителе, используйте функцию SD.exists("имя_файла.txt"), которая вернет значение true или false.
Удалить файл можно с помощью функции SD.remove("имя_файла.txt"). Но будьте аккуратны! Файл удалиться полностью. Никакой "корзины" или резервной копии для восстановления не останется.
Создать подпапку можно с помощью функции SD.mkdir("/имя_новой_папки"). Очень удобно для структуризации ваших данных на начальном уровне. Если папка с таким именем уже существует, ничего не произойдет. Не забывайте, что вы можете воспользоваться функцией SD.exists() перед созданием папки для проверки.
Несколько полезных функций для работы с файлами:
Для перемещения указателя при считывании/записи файла, используется функция seek(). Например, запись функции в виде seek(0) переместит вас в начало файла.
Функция position() позволит вам узнать, где именно вы находитесь в пределах файла на данный момент.
Функция size() выведет вам информацию о размере файла в байтах.
Узнать, является ли файл на карте директорией можно вызвав функцию isDirectory().
Последовательная работа с файлами, которые находятся в папке реализуется с помощью вызова функции openNextFile().
Возможно, вам понадобится имя файла. Например, если вы вызвали следующий файл в папке с помощью openNextFile(). В этом случае можно воспользоваться функцией name(), которая вернет массив символьных данных, которые можно отобразить непосредственно в серийном мониторе Arduino IDE с помощью Serial.print().
Если вы хотите проверить наличие файла на носителе, используйте функцию SD.exists("имя_файла.txt"), которая вернет значение true или false.
Удалить файл можно с помощью функции SD.remove("имя_файла.txt"). Но будьте аккуратны! Файл удалиться полностью. Никакой "корзины" или резервной копии для восстановления не останется.
Создать подпапку можно с помощью функции SD.mkdir("/имя_новой_папки"). Очень удобно для структуризации ваших данных на начальном уровне. Если папка с таким именем уже существует, ничего не произойдет. Не забывайте, что вы можете воспользоваться функцией SD.exists() перед созданием папки для проверки.
Несколько полезных функций для работы с файлами:
Для перемещения указателя при считывании/записи файла, используется функция seek(). Например, запись функции в виде seek(0) переместит вас в начало файла.
Функция position() позволит вам узнать, где именно вы находитесь в пределах файла на данный момент.
Функция size() выведет вам информацию о размере файла в байтах.
Узнать, является ли файл на карте директорией можно вызвав функцию isDirectory().
Последовательная работа с файлами, которые находятся в папке реализуется с помощью вызова функции openNextFile().
Возможно, вам понадобится имя файла. Например, если вы вызвали следующий файл в папке с помощью openNextFile(). В этом случае можно воспользоваться функцией name(), которая вернет массив символьных данных, которые можно отобразить непосредственно в серийном мониторе Arduino IDE с помощью Serial.print().
-
- Сообщения: 792
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server
где хотитеВсе таки что бы не засорять тему , продолжим в Визуализации ?
да ,придется подрихтовать парсер что бы воспринимал адекватноТогда останется через календарь выводить нужный файл.
да на вроде решили пока такДругие полезные функции SD.H
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Плохим танцорам всегда что-нибудь мешает — то SPI, то что-нибудь еще. Вот пример проекта AMS Proкороче говоря тут затык из за низкой частоты spi
блин ну и выбрал же платформу
https://hi-lab.ru/arduino-mega-server/a ... ject-sauna
, где пишутся логи для датчиков и даже строятся графики по этим логам и в реальном времени и по запросу, т.е. своего рода база данных (и отдаются данные в CSV для анализа в сторонних системах типа Экселя или Процессинга). И работает всё это на Меге.
-
- Сообщения: 792
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server
а кто осуществляет выборку,мега в ответ на запрос выдает конкретные данные или же браузер?Можно выбрать датчик, год, месяц и день и вывести в окно браузера статистику температуры в текстовом виде или
какое максимальное время логируется(часы,месяцы,годы)?
-
- Сообщения: 792
- Зарегистрирован: Пт янв 22, 2016 10:08 am
- Благодарил (а): 6 раз
- Поблагодарили: 63 раза
Re: Arduino Mega Server
Вообщем покопался я тут
можно попробовать действовать в лоб например с помощью вот этой штуки sscanf или используя класс String есть еще библиотека регеспов
только вот памяти это все отхватит плюс надо файл загрузить в память,если файл состоит из десятка строк проблем нет а если больше то придется читать с диска кусками ,вряд ли будет большой прирост быстродействия,так что мне кажется послал файл а там браузер пускай сам разбирается и ресурсы контроллера освободятся.
можно попробовать действовать в лоб например с помощью вот этой штуки sscanf или используя класс String есть еще библиотека регеспов
только вот памяти это все отхватит плюс надо файл загрузить в память,если файл состоит из десятка строк проблем нет а если больше то придется читать с диска кусками ,вряд ли будет большой прирост быстродействия,так что мне кажется послал файл а там браузер пускай сам разбирается и ресурсы контроллера освободятся.
- ser009
- Сообщения: 595
- Зарегистрирован: Сб окт 13, 2012 9:55 am
- Благодарил (а): 4 раза
- Поблагодарили: 43 раза
Re: Arduino Mega Server
Писать значения 1 раз в 5 минут - бюджетно. Приемлемо только для вяло меняющихся значений.Alex писал(а):Плохим танцорам всегда что-нибудь мешает — то SPI, то что-нибудь еще. Вот пример проекта AMS Proкороче говоря тут затык из за низкой частоты spi
блин ну и выбрал же платформу
https://hi-lab.ru/arduino-mega-server/a ... ject-sauna
, где пишутся логи для датчиков и даже строятся графики по этим логам и в реальном времени и по запросу, т.е. своего рода база данных (и отдаются данные в CSV для анализа в сторонних системах типа Экселя или Процессинга). И работает всё это на Меге.
Очень низкая информативность к сожалению

-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Кто мешает писать чаще, если это надо?Писать значения 1 раз в 5 минут - бюджетно. Приемлемо только для вяло меняющихся значений.
Очень низкая информативность к сожалению