Парсинг строки от GPS модуля

Всем привет. Не знаю, как оформить пока. Натолкнулся на старую тему, Как постичь непостижимое | Аппаратная платформа Arduino, где хорошо описан принцеп, но с данными, получаемыми от одного модуля, никак не пойму, как вытянуть нужные, долготу и широту.

Найти начала и концы нужных фрагментов, вырезать их и…

Настройте мониторпорт должным образом.

И что тут выглядит как “черте че”?
Нормальная NMEA.

не надо показывать то, что нормально.
Покажите как выглядит “черти что”

Не нужно картинками, скопируйте текстом.

  • неверно выбран контроллер

ИЛИ

  • неправильно написан скетч
2 лайка

Есть же готовые библиотеки, из которых любые данные берутся просто сразу. Или надо какую-то экзотику?
Мне вот надо скорость - она там готовая, программа для школьников.

Ни одна из перепробованных не выдает данные.

Вы о чём… Там, код в две строчки

#include <SoftwareSerial.h>

SoftwareSerial gps(4,5);

void setup() {
	Serial.begin(115200);
	gps.begin(9600);

}

void loop() {
	if (Serial.available()) gps.write(Serial.read());
	if (gps.available()) Serial.write(gps.read());
}

Ну дэк Вы опрашиваете постоянно гпс модуль и постоянно выводите. Так и должно быть. Нужен пример про “ни одну нормально работающую библиотеку”. Здесь у Вас только сериал, и она работает нормально.

Запитал gps от ардуины штоли.

У меня вот эта:

#include <TinyGPS++.h>
  TinyGPSPlus gps;// Создаем объект GPS



void loop() {

  while (Serial1.available() > 0) {
    if (gps.encode(Serial1.read())) {

// Serial.print("Satellites use: ");Serial.println(gps.satellites.value()); // Number of satellites in use (u32)
// delay(1000);

      // Если есть данные
      if (gps.location.isValid() && gps.date.isValid() && gps.time.isValid() && gps.speed.isValid()) {
        // Выводим координаты
        Serial.print("Latitude: ");
        Serial.print(gps.location.lat(), 6);
        Serial.print(" Longitude: ");
        Serial.println(gps.location.lng(), 6);
        // Выводим время
        Serial.print("Time: ");
        Serial.print(gps.time.hour());
        Serial.print(":");
        Serial.print(gps.time.minute());
        Serial.print(":");
        Serial.println(gps.time.second());
        // Выводим скорость
        Serial.print("Speed: ");
        Serial.print(gps.speed.kmph());
        Serial.println(" km/h");
        delay(1000);
      }
    }
  }
}

Если не первый день, то логический анализатор в параллель и смотрим - чексуммы на шине наблюдаются или нет.

Сам GPS ловит? Мигает 1гц? В Мск не ловит, например.

Какой модуль, как подключен? У меня было так- бросил на подоконник, он молчит, мигает светодиодом, но не показывает. Утром решил продолжить, включил- а он как пошел-пошел… и нормально.

это нормально.
После долгого простоя или после переезда в другую часть планеты ГПС-у нужно обновить атлас спутников, это занимает до неских часов

Он о том, что у Вас проблема. А уж в двух она строчках или в одной – это Вам виднее.

Это кусок кода из примера, не Ваш. Как Вы его вставляете? Нужен Ваш код. Приемник и сериал работает, мы уже поняли. А код?

Хрена себе )))