#include <SoftwareSerial.h>
char nmeaSentence[68];
String latitude; //纬度
String longitude; //经度
SoftwareSerial GPSSerial(10, 11); // RX, TX
#define DEBUGSerial Serial
void setup() //初始化内容
{
GPSSerial.begin(9600); //定义波特率9600,和我们店铺的GPS模块输出的波特率一致
DEBUGSerial.begin(9600);
DEBUGSerial.println("GPS test");
DEBUGSerial.println("Wating...");
pinMode(3, OUTPUT);
}
void loop() //主循环
{
// For one second we parse GPS data and report some key values
for (unsigned long start = millis(); millis() - start < 1000;) //一秒钟内不停扫描GPS信息
{
while (GPSSerial.available()) //串口获取到数据开始解析
{
char c = GPSSerial.read(); //读取一个字节获取的数据
switch(c) //判断该字节的值
{
case '$': //若是$,则说明是一帧数据的开始
GPSSerial.readBytesUntil('*', nmeaSentence, 67); //读取接下来的数据,存放在nmeaSentence字符数组中,最大存放67个字节
//Serial.println(nmeaSentence);
latitude = parseGprmcLat(nmeaSentence); //获取纬度值
longitude = parseGprmcLon(nmeaSentence);//获取经度值
if(latitude > "") //当不是空时候打印输出
{
DEBUGSerial.println("------------------------------------");
DEBUGSerial.println("latitude: " + latitude);
}
if(longitude > "") //当不是空时候打印输出
{
DEBUGSerial.println("longitude: " + longitude);
}
String b="4351.0000 N";
if(b<latitude)
{
digitalWrite(3, HIGH);
delay(2000);
digitalWrite(3, LOW);
}
}
}
}
}
String getBeiJingTime(String s)
{