Ардуино. Как организовать микро базу данных для МК?
Давайте наверно сразу перейдем к примеру. (чтоб без вступительной воды)
Есть Ардуино (ну или любой другой микроконтроллер семейства AVR с обвязкой), он собирает данные с датчиков, допустим температуру "по времени суток", с 9:00 до 10:00 температура 60 градусов, с 10:00 до 11:00 45 градусов и т.д. Микро БД нужна для создания и хранения данных "за день", далее "за неделю" на основе анализа ежедневных данных, и за месяц на основе ежедневных и еженедельных данных.
Если ли какие-то микроБД (библиотеки), быть может похожие на SQLite, только для микроконтроллеров?
UPD:
прошу обратить внимание, что это "пример", предполагается что датчиков может быть и 10-20, не только температурных но и газа и т.п. с разным набором параметров
тайм-код | источник | значение
Вот это добро или храните в памяти МК или пишите на флешку/микросхему памяти по принципу "как есть".
Далее, если у вас система автономна, то делайте выборку и отображайте в нужном виде на дисплее.
Если предполагается подключение к ПК для анализа - проводите анализ на ПК.
БД на микроконтроллере в классическом понимании - это плохая идея. Не те аппаратные возможности (у ардуино и atmega контроллеров в частности).
Поддержу. Для таких задач БД не нужна, нужно несколько таблиц в виде массивов из записей. Для хранения лучше всего использовать микросхему памяти, т.к. флеш контроллера имеет ограниченный ресурс, если оптимизировать данные, то места хватит на на много строк.
БД на SQL нужны только там где используется большое количество различной информации и в МК нет ресурсов чтобы хранить библиотеку полноценной СУБД, А самому, под свою конкретную задачу, написать небольшой класс из структуры таблиц (массивов записей) и пары функций их обработки нужным способом труда не составит, зато вы сильно сэкономите ресурсы
У нас самодельные контроллеры Системы контроля доступа (не Ардуино) хранят в памяти события, а при связи с компьютером всё передают. Кстати, авторегистраторы тоже пишут в буфер видео (обычно циклический).
Сейчас делаю метеостанцию, но подобный вопрос даже в голову не приходил. SQLite это система обработки данных сложной структуры, а у тебя несколько банальных массивов двухбайтовых чисел.
Выборка в течении часа каждые 10 мин - 12 байт
Средняя почасовая за год - 17,16 Кбайт
В часах RTC DS1307 есть память 32Кбайт.
Единственный нюанс, необходимо как то запомнить начальное время последовательности, но это тоже не сложно, например записывать в начале последовательности