Модуль GPS не ловит сигнал
Я делаю GPS-трекер с модулем Neo6m GPS и платой разработки ESP32.
Я проверил проводку и кодировку, но мой модуль все равно не ловит сигнал
Я уже на крыше своего дома на случай, если для подключения понадобится чистое небо
Это мой код
#include <WiFi.h>//для подключения esp32 к Wi-Fi
#include <TinyGPS++.h>//для получения данных GPS с GPS-модуля neo-6m
#define WIFI_SSID "Airtel_pawa_4182"//название Wi-Fi простыми словами
#define WIFI_PWD "Ahuja6230"//пароль Wi-Fi
TinyGPSPlus GPS;//создание объекта GPS из библиотеки tinygps++
void setup() {
Serial.begin(9600);
//настройка Wi-Fi{
WiFi.begin(WIFI_SSID, WIFI_PWD);
Serial.println("connecting to wifi");
while(WiFi.status() != WL_CONNECTED){
Serial.println(".");
delay(100);
}
Serial.print("Successfully connected to ");
Serial.println(WIFI_SSID);
//}
//настройка GPS{
Serial2.begin(9600);
delay(1000);
Serial.println(".");
Serial.println("ESP32-GPS Tracker");
Serial.println("Initializing...");
//}
}
void loop() {
if(Serial2.available() > 0) {
if(GPS.encode(Serial2.read())) {
if(GPS.location.isValid()) {
double latitude = GPS.location.lat();
double longitude = GPS.location.lng();
Serial.print(F("- latitude: "));
Serial.println(latitude);
Serial.print(F("- longitude: "));
Serial.println(longitude);
}
else{
Serial.println(F("- location: INVALID"));
}
Serial.println();
}
}
if (millis() > 5000 && GPS.charsProcessed() < 10) {
Serial.println(F("No GPS data received: check wiring"));
}
}
Подключение простое
VCC(gps)--->3V3(esp32)
Gnd--->Gnd
Rx---->GPIO17(Tx)
Tx---->GPIO16(Rx)
Вот что показывает последовательный монитор:
connecting to wifi
.
.
.
.
.
Successfully connected to Airtel_pawa_4182
.
ESP32-GPS Tracker
Initializing...
No GPS data received: check wiring
No GPS data received: check wiring
No GPS data received: check wiring
No GPS data received: check wiring
Как решить эту проблему?
Изменение: макетная плата изначально была подключена неправильно, но позже это было исправлено. Спасибо Starcat за исправление ошибки. Но все равно модулю GPS требуется очень много времени, чтобы поймать сигнал. Когда он запускается, он сначала выводит, что данные GPS не были получены в течение некоторого времени, а затем сообщает, что местоположение недействительно. Только затем он выводит широту и долготу. Кроме того, широта и долгота не обновляются на последовательном мониторе вовремя. Задержка составляет всего одну секунду, но это занимает гораздо больше времени... Если у кого-то есть решение, пожалуйста, ответьте..
@Yug Ahuja, 👍1
2 ответа
Сообщение "GPS не обнаружен" означает, что прошло 5 секунд и на последовательный порт GPS поступило менее 10 допустимых символов. Возможно, несоответствие скорости передачи данных.
Макетная плата неправильно подключена. Детали по обе стороны от центральной планки макетной платы не соединены друг с другом (см. здесь), поэтому белый и оранжевый провода, а также черный, желтый и провода не соединяются.
Решение: поместите провода на одной стороне макетной платы, и вы получите более высокое изменение рабочего GPS.
Теперь вы должны по крайней мере получать выходные данные от GPS, даже если он просто сообщает о том, что еще не получил действительное местоположение. Может потребоваться некоторое время (особенно при первом использовании), чтобы получить фиксацию. Я бы дал ему по крайней мере 30 минут для первой фиксации.
- Получите GPS-координаты с помощью беспроводного трекера Heltec на базе Arduino
- GPS-модуль uBlox Neo 6M не отвечает
- Отправка команд PUBX на плату GPS (Ublox NEO-6M) через SoftwareSerial
- Arduino SoftwareSerial - не удается получить данные от модуля NEO 6M-GPS
- TinyGPS не дает долготу, широту и другие данные
- последовательная передача данных на GPS-экране duinopeak
- Интерфейс U-Blox Neo M8N GNSS-GPS с ESP32-TTGO-T-CALL
- Декодировать радиочастотные удаленные сигналы с помощью ESP32 или node MCU?