Просто для простого входа вам не нужна база данных, вам, вероятно, нужна простая таблица.
Прежде всего, учтите, что обычно EEPROM допускают от 1000 до 100000 циклов записи. Это означает, что если вы напишите одну ячейку более чем 100000, у вас есть высокая вероятность того, что ваша ячейка умрет, вы больше не сможете ее написать.
Вопрос в том, сколько входов разрешено? Все дело в том, чтобы выбрать правильную структуру данных и понять, каков объем необходимой памяти.
Знание вычислительной мощности Arduino: если логины всего 2 ... 50, простого списка будет достаточно. Вставка в конце - O (1), удаление - O (n), поиск - O (n). Однако связанный список позволит вам уменьшить количество записей для удаления до постоянного небольшого значения.
Если логинов больше, 50 .. 1000, достаточно отсортированного массива с двоичным поиском. Вставка - O (n), удаление - O (n), поиск - O (n log n). Однако количество записей равно O (n) как для удаления, так и для вставки, и поскольку запись идет медленно и может сжечь ячейки, это зависит от количества обновлений, которые вы хотите сделать.
Если логины 1000 или более, бинарное дерево хорошо. Вставка O (n log n), удаление O (n log n), поиск O (n log n). Хорошо, что для вставки и удаления вам просто нужно небольшое постоянное количество записей.
Также хорошо подходит хеш-таблица, но обычно она использует больше памяти. Вставка усредняется O (1), удаление усредняется O (1), поиск усредняется O (1). Для вставки и удаления требуется только небольшое постоянное количество операций записи, меньше, чем двоичное дерево. Как я уже сказал, эта структура данных использует больше памяти, скорость идет за счет.
Вам не нужна настоящая реляционная база данных, но, возможно, если вам нужно слишком много пользователей, вам нужен внешний EEPROM.
Конечно, вы должны сохранить эти данные во флэш-памяти, внутренней или внешней, иначе вы потеряете базу данных при перезагрузке или выключении компьютера.
Мы также можем сказать, что вам не нужно хранить имя пользователя и пароль, вы можете просто сохранить хэш пароля и имени пользователя. Если хэшированные имя пользователя и пароль существуют, вы можете разрешить вход в систему. Таким образом, вы можете использовать память фиксированного размера и меньше памяти. Вы можете использовать MD5, именно телефон Android должен отправлять хеш MD5, то есть 16 байтов, поэтому Arduino должен только проверять, например, существует ли этот хеш MD5 в списке пользователей.
И это легко и быстро.