gps coding

#include <SoftwareSerial.h>
// The serial connection to the GPS module
SoftwareSerial air(4, 3);
SoftwareSerial gps(10, 11);
#include <TinyGPS++.h> //到github上下载tinygps这个库
char gpsData;
TinyGPSPlus gpsCls;

void setup() {
  Serial.begin(9600);
  air.begin(9600);
  gps.begin(9600);
  Serial.println("started");
}

void loop() {

  while (Serial.available() > 0) {
    air.write(Serial.read());
    //            byte gpsData = Serial.read();
    //            Serial.println(Serial.read());
  }
  while (gps.available() > 0) {
    //  get the byte data from the GPS
    if (gpsCls.encode(gps.read())) // encode gps data
    {
      displayInfo();
    }
  }


  while (air.available() > 0) {
    byte airData = air.read();
    Serial.write(airData);
    //        Serial.println(airData);
  }
}
String lastString;
void displayInfo()
{
  if (gpsCls.location.isValid())
  {
    //    读取到gps数据 通过4G发给服务器
    Serial.print("Latitude: ");
    Serial.println(gpsCls.location.lat(), 6);
    Serial.print("Longitude: ");
    Serial.println(gpsCls.location.lng(), 6);
    Serial.print("Altitude: ");
    Serial.println(gpsCls.altitude.meters());

    String latitude = String(gpsCls.location.lat(), 6);
    String longitude = String(gpsCls.location.lng(), 6);
    String themeters = String(gpsCls.altitude.meters());

    if (latitude + ";" + longitude + ";" + longitude != lastString) {
      lastString = String(latitude + ";" + longitude + ";" + longitude);
      air.println(latitude + ";" + longitude + ";" + longitude);
    }

  } else
  {
    Serial.println("Location: Not Available");
    lastString = String("searching");
    air.println(lastString);


  }
  delay(1000);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值