Лучший способ хранения дополнительных данных для проекта Arduino

Я новичок в arduino и пытаюсь создать систему оповещения о камерах контроля скорости. Она начнет издавать звуковой сигнал, если я превыслю ограничение скорости и подберусь близко к камере контроля скорости. На этом веб-сайте я могу получить все необходимые мне данные, координаты, направление и ограничение скорости для каждых 36000 камер контроля скорости в моей стране.

Мне потребуется дополнительное место в памяти, чтобы хранить все эти данные. Справится ли с этой задачей микросхема eeprom? и сможет ли он не отставать от цикла for, проходящего через все эти 36000 местоположений камер контроля скорости, чтобы проверить, приближаюсь ли я к нему и превышаю ли скорость?

Редактировать: поскольку процессору было бы сложно пройти через все эти местоположения в цикле, кто-то рекомендовал создать временный файл, который сузил бы этот список по направлению, и когда это направление изменилось бы, он пересчитал бы это временный файл. Вот что у меня получилось:

void setup() {
  int tempDirection = gpsDirection;
  writeTempFile();
}

void loop() {
  // это пересчитает временный файл при изменении gpsDirection
  if(gpsDirection > tempDirection +5 || gpsDirection < tempDirection -5){
    tempDirection = gpsDirection;
    writeTempFile();
  }

  for(temp file){
    if(distance <= 100 && speed > speedlimit){
      // начинаем пищать
    }
  }
}

void writeTempFile(){
  // это запишет временный файл для каждой камеры с направлением, аналогичным направлению GPS
  for(each line of the file){
    if(gpsDirection + 10 > camDirection || gpsDirection - 10 < camDirection ){
      add cam to temp file;
    }
  }
}

, 👍3

Обсуждение

SD-карта и заказанные данные, @Juraj

EEPROM будет работать. SD, вероятно, легче поддерживать в актуальном состоянии, и примерно такая же цена., @Gerben


1 ответ


Лучший ответ:

2

Запись в EEPROM ограничена примерно 100 тыс. циклов. Они предназначены для постоянных или полупостоянных данных (например, вашего абсолютного порога скорости — 120 км/ч).

Здесь нельзя хранить базу камер контроля скорости.

Купите адаптер MicroSD и сохраните там свои данные. Зацикливание на 36000 местах ловушек скорости нанесет ущерб вашему процессору и памяти. Я рекомендую вам определить поле привязки (например, +/- 2 градуса) и сохранить временный файл только с теми ловушками внутри поля. перепроверяйте каждый раз, когда ваше положение меняется на полный градус (север/юг или восток/запад).

Примечание: в некоторых странах, например в Бразилии, распространение информации о расположении скоростных ловушек является незаконным (воспрепятствование правосудию).

,

Я отредактировал свой пост, добавив некоторый код, основанный на вашей идее связывающей коробки, чтобы улучшить обработку. Не могли бы вы поделиться своими мыслями по этому поводу?, @Phamaral

Работаю с GPS-приложениями с 1995 года: я бы не стал работать с направлением, вам придется заниматься более сложными вычислениями, которые съедят ваши часы. Вы можете хранить их по широте (file21S.txt, file22S.txt, file23S.txt,.. .) и, в зависимости от того, на какой широте вы находитесь, вы открываете конкретный файл. Или у вас могут быть файлы меньшего размера с latLon (file22S51W.txt, file22S52W.txt, file21S51W.txt и т. д.), @tony gil