【问题标题】:GPS data with ArduinoGPS数据与Arduino
【发布时间】:2016-09-17 07:56:14
【问题描述】:

我正在使用 CRIUS Neo-6 GPS 模块,我想每 10 秒通过 GSM 模块从 GPS 发送数据。我的代码如下所示:

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

  double hour = gps.time.hour();
  double minute = gps.time.minute();
  double second = gps.time.second();

    Serial.println("Sending SMS:");
    GPRS.print("AT+CMGF=1\r");
    delay(100);
    GPRS.println("AT+CMGS= \"00*********\"");
    delay(100);
    GPRS.print("HOUR=");
    GPRS.print(hour);
    GPRS.print(" MINUTE=");
    GPRS.println(minute);
    GPRS.print(" SECOND=");
    GPRS.println(second);
    delay(100);
    GPRS.print((char)26);
    delay(100);
    GPRS.println();
    Serial.println("Text sent.");


  Serial.println();
 delay(10000);
}

Serial1 是用于与 GPS 模块通信的 SoftwareSerial 实例。 现在这每 10 秒发送一条短信,但数据混乱,就像时间不总是刷新一样。我得到类似的东西:

小时=6.00 分钟=37.00 秒=54.00

小时=6.00 分钟=37.00 秒=54.00

小时=6.00 分钟=37.00 秒=54.00

小时=6.00 分钟=38.00 秒=15.00

等等.. 它总是有两个或三个相同的 SMS-es,然后下一个有 30 秒的间隔。我应该更改什么以始终发送最新的 gps 时间?

【问题讨论】:

    标签: arduino gps


    【解决方案1】:

    1) 告诉我们您使用的是什么 Arduino。看起来它可能是一个 Mega。

    2) 发布您的整个草图并确定您正在使用哪些库。看起来可能是 TinyGPS++。

    5) 不要使用 double。与 Arduino 上的 float 相同。但也不要使用 float。只需使用 intunsigned char

    那么现在。示例程序是否有效?这将确认您的卫星接收良好。

    接下来,您知道您的 GPS 每秒会发送几种不同类型的消息吗?并非所有消息都包含时间字段(请参阅此table of messages vs. fields)。

    最后,这些行会带来很多麻烦:

    delay(100);
      ...
    delay(100);
      ...
    delay(100);
      ...
    delay(100);
      ...
    delay(10000);[/code]
    

    虽然草图因这些延迟而停止,但没有处理任何 GPS 字符。但是然后你等待一条消息被解析为“if (gps.encode”,然后你发送另一条短信。唯一被解析的消息可能没有时间字段,所以你发送相同的时间。

    您应该研究避免使用delay 的方法。看看 Arduino 论坛上的一些帖子,“串行输入基础知识”和“如何一次做几件事”Useful Links

    另外,我写了一个更好的 GPS 库,叫做NeoGPS。它比 TinyGPS++ 更小更快。这些示例的结构也更好。 NMEAtimezone.ino 最接近您正在做的事情。如果您想尝试一下,请务必按照Installation 的说明进行操作。您应该按照描述的顺序尝试几个程序:NMEA、NMEAdiagnostic 和 NMEAorder(如有必要),以及 NMEAfused。然后尝试 NMEAtimezone,并根据您的操作对其进行修改。

    【讨论】:

    • 感谢您的回答,不过我设法得到了一些解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    相关资源
    最近更新 更多