ESP32 + gps neo 7m нужна помощь

Зравствуйте, есть плата ESR - WROOM-32 и модуль GPS NEO - 7M/
Подключены следующим образом с с модуля GPS на ESP
rx->txd
tx-rxd
в Настройках Ide arduino выбрана плата uPesy ESP32 Wroom DevKit/
Используется следующий скетч:

#include <iarduino_GPS_NMEA.h>
#include <iarduino_GPS_ATGM336.h>

iarduino_GPS_NMEA gps;
iarduino_GPS_ATGM336 SettingsGPS;

char* wd = {“Вс”, “Пн”, “Вт”, “Ср”, “Чт”, “Пт”, “Сб”};

void setup() {
Serial.begin(115200);
SettingsGPS.baudrate(115200); ;
SettingsGPS.system(GPS_GP, GPS_GL);
SettingsGPS.composition(NMEA_RMC);
SettingsGPS.model(GPS_PORTABLE);
SettingsGPS.updaterate(10);
}
void loop() {
gps.read();
Serial.print(gps.Hours); Serial.print(“:”); Serial.print(gps.minutes); Serial.print(“:”); Serial.print(gps.seconds); Serial.print(" “);
Serial.print(gps.day ); Serial.print(”.“); Serial.print(gps.month ); Serial.print(”.“); Serial.print(gps.year ); Serial.print(“г (”);
Serial.print(wd[gps.weekday]); Serial.print(”), UnixTime: “); Serial.print(gps.Unix); Serial.print(”. ");
Serial.print("Ш: "); Serial.print(gps.latitude, 5); Serial.print("°, Д: "); Serial.print(gps.longitude, 5); Serial.print("°, В: "); Serial.print(gps.altitude, 1); Serial.print("м. ");
Serial.print("Скорость: "); Serial.print(gps.speed); Serial.print("км/ч, "); Serial.print(gps.course); Serial.print("°. “);
Serial.print(“Спутники: “); Serial.print(gps.satellites[GPS_ACTIVE]); Serial.print(”/”); Serial.print(gps.satellites[GPS_VISIBLE]); Serial.print(”. ");
Serial.print("PDOP: “); Serial.print(gps.PDOP); Serial.print(”, HDOP: “); Serial.print(gps.HDOP); Serial.print(”, VDOP: “); Serial.print(gps.VDOP); Serial.print(”. ");
if (gps.errTim) {
Serial.print("Вемя недостоверно. " );
}
if (gps.errDat) {
Serial.print("Дата недостоверна. " );
}
if (gps.errPos) {
Serial.print("Координаты недостоверны. " );
}
if (gps.errCrs) {
Serial.print(“Скорость и курс недостоверны. “);
}
Serial.print(”\r\n”);
delay(5000);
}

В мониторе порта такая информация:
0:0:0 0.0.0г (Вс), UnixTime: 0. Ш: 0.00000°, Д: 0.00000°, В: 0м. Скорость: 0км/ч, 0.00°. Спутники: 0/0. PDOP: 50.00, HDOP: 50.00, VDOP: 50.00.
.

Можете сказать , пожалуйста, что я делаю не так?

могу

Во-первых, библиотека

предназначена для GPS модуля ATGM336 - а вы ее используете для GPS NEO - 7M. Вы уверены, что они совместимы?

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

В третьих, вместо того чтоб спрашивать на форуме, не проще было открыть гугль и прочитать описание библиотеки?

https://iarduino.ru/file/539.html

Спрашиваете на форуме, вместо того чтоб читать документацию

Чтобы понять “что не так”, сначала надо выяснить а как должно быть “так”.
А так всё верно, какие-то данные выводятся. Чего ещё надо для счастья?

Интересно девки пляшут…чем TinyGPS не устроила

“Действительно”(с) :slightly_smiling_face: Почему из десятков библиотек не выбрали именно эту(сарказм)
Там бы схемку бы приложили бы, а то глядишь и на модуль 3.3В подаётся.

В общем всем спасибо ! Я знал, что получу много полезных советов, с сарказмом.
В итоге - 1. да действительно нужно было применить библиотеку TinyGPS. и да модуль ДОЛЖЕН питаться от 5v XD.
ОДнако, отмечу что ночью спутники так и не были обнаружены. модуль с ESP32 работал около 3 часов , но не смог извлечь нужные данные. Зато утром, настроился за несколько секунд и все заработала как надо! Остался вопрос…как синхронизировать время… буду читать документацию


#include <Arduino.h>

#include <TinyGPS++.h>

TinyGPSPlus gps;
HardwareSerial SerialGPS(2);

void setup() {
  Serial.begin(115200);          // RX  TX
  SerialGPS.begin(9600, SERIAL_8N1, 16, 17);
}

void loop() {

  Serial.println("------------");
  Serial.print("available(): ");ard
  Serial.println(SerialGPS.available());
  Serial.println("------------");
  while (SerialGPS.available() > 0) {
    char c = SerialGPS.read();
    Serial.print(c);
    gps.encode(c);
  }
  Serial.println();

 Serial.print("time=");
Serial.println(gps.time.value()); // Raw time in HHMMSSCC format (u32)
Serial.print("hour=");
Serial.println(gps.time.hour()); // Hour (0-23) (u8)  
Serial.print("minute=");
Serial.println(gps.time.minute()); // Minute (0-59) (u8) 
Serial.print("second=");
Serial.println(gps.time.second()); // Second (0-59) (u8)   
Serial.print("satellites=");
Serial.println(gps.satellites.value()); // Number of satellites in use (u32)
  if (gps.location.isValid()) {
    Serial.print("LAT=");
    Serial.println(gps.location.lat(), 6);
    Serial.print("LONG=");
    Serial.println(gps.location.lng(), 6);
    Serial.print("ALT=");
    Serial.println(gps.altitude.meters());
     Serial.print("speed=");
    Serial.println(gps.speed.kmph());
  } else {
    Serial.println("not valid");
  }

  delay(1000);
}```

Т.е. питание это вторично, а библиотека главное :neutral_face:

да какой сарказм, просто 99,9% нужного в этой библиотеке есть, ПОЭТОМУ И СПРОСИЛ

Не переживайте, это не вам(ИМХО), хотя абсолютно ВСЕ немногие отметившиеся в ветке - сказали до делу. Но, кто мы такие…

Да все ответили по делу. Все спасибо за помощь
. Первично и то и то)