乐鑫技术交流
直播中

的撒的

10年用户 748经验值
擅长:可编程逻辑
私信 关注
[问答]

使用NodeMCU ESP8266和NEO6M GPS模块构建gps跟踪器,提示“未检测到GPS:检查接线。” 怎么解决?

你好!我一直在尝试使用 NodeMCU ESP8266 和 NEO6M GPS 模块为我的学校项目构建一个 GPS 跟踪器。问题是我之前设法毫无问题地完成了它。但后来我把它原封不动地放了大约一个星期。
今天我尝试打开 NodeMCU,然后我得到了那个脚本。“未检测到 GPS:检查接线。”
代码:全选#include
#include
#define BLYNK_PRINT Serial
#include
#include

static const int RXPin = 4, TXPin = 5 ;   // GPIO 4=D2(conneect Tx of GPS) and GPIO 5=D1(Connect Rx of GPS
static const uint32_t GPSBaud = 9600; //if Baud rate 9600 didn't work in your case then use 4800

TinyGPSPlus gps; // The TinyGPS++ object
WidgetMap myMap(V0);  // V0 for virtual pin of Map Widget

SoftwareSerial ss(RXPin, TXPin);  // The serial connection to the GPS device

BlynkTimer timer;

float spd;       //Variable  to store the speed
float sats;
String bearing;  //Variable to store orientation or direction of GPS

char auth[] = "----";              //Your Project authentication key
char ssid[] = "tt";                                       // Name of your network (HotSpot or Router name)
char pass[] = "ayyyyylmao";                                      // Corresponding Password

//unsigned int move_index;         // moving index, to be used later
unsigned int move_index = 1;       // fixed location for now
  

void setup()
{
  Serial.begin(115200);
  Serial.println();
  ss.begin(GPSBaud);
  Blynk.begin(auth, ssid, pass);
  timer.setInterval(5000L, checkGPS); // every 5s check if GPS is connected, only really needs to be done once
}

void checkGPS(){
  if (gps.charsProcessed() < 10)
  {
    Serial.println(F("No GPS detected: check wiring."));
      Blynk.virtualWrite(V4, "GPS ERROR");  // Value Display widget  on V4 if GPS not detected
  }
}

void loop()
{
    while (ss.available() > 0)
    {
      // sketch displays information every time a new sentence is correctly encoded.
      if (gps.encode(ss.read()))
        displayInfo();
  }
  Blynk.run();
  timer.run();
}

void displayInfo()
{
  if (gps.location.isValid() )
  {   
    float latitude = (gps.location.lat());     //Storing the Lat. and Lon.
    float longitude = (gps.location.lng());
   
    Serial.print("LAT:  ");
    Serial.println(latitude, 6);  // float to x decimal places
    Serial.print("LONG: ");
    Serial.println(longitude, 6);
    Blynk.virtualWrite(V1, String(latitude, 6));   
    Blynk.virtualWrite(V2, String(longitude, 6));  
    myMap.location(move_index, latitude, longitude, "GPS_Location");
    spd = gps.speed.kmph();               //get speed
       Blynk.virtualWrite(V3, spd);
      
       sats = gps.satellites.value();    //get number of satellites
       Blynk.virtualWrite(V4, sats);

       bearing = TinyGPSPlus::cardinal(gps.course.value()); // get the direction
       Blynk.virtualWrite(V5, bearing);                  
  }
  
Serial.println();
}

我没有改变任何东西,它只是因为某种原因停止工作。
我的 GPS 模块与 NodeMCU 之间的连接是:-
VCC ~ 3V
RX ~ D1
TX ~ D2
GND ~ GND
以前每当我插入电缆时,nodemcu 和 GPS 模块都至少闪烁一次。连接成功后会一直闪烁。但现在似乎只有 nodemcu 以闪烁响应。
GPS 模块完全没有反应。没有眨眼没有什么。
帮我弄清楚这个

回帖(1)

张龙祥

2024-5-22 17:54:03
此问题可能是由于以下原因导致的:

1. 接线问题:检查一下 GPS 模块是否正确连接到了 NodeMCU ESP8266,确保连接正常。

2. GPS 模块可能已损坏:在存放 NodeMCU ESP8266 和 GPS 模块一段时间后,模块可能已损坏。尝试更换一个新的 GPS 模块。

3. 代码问题:检查一下代码,确保串口通信参数设置正确。

解决方法:

1. 检查接线。确认 GPS 模块是否正确连接。重新连接并尝试。

2. 考虑更换 GPS 模块。

3. 检查一下代码,确保设置正确。(例如,检查波特率是否正确)。可以尝试重新上传脚本,以确保没有任何有关代码的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分