My code is attached to this post.
My code:
#include <SoftwareSerial.h>
#include <BlynkSimpleSerialBLE.h>
#include <TinyGPS++.h>
#include <math.h>
#include "TinyGPS++.h" /* try to remove these 2 includes */
#include "SoftwareSerial.h"
#define TxD 8
#define RxD 9
SoftwareSerial serial_connection(0,1);
SoftwareSerial bluetoothSerial(TxD, RxD);
TinyGPSPlus gps;
float lat2 = gps.getLat();
float lat1 = gps.location.lat();
float lon2 = gps.getLon();
float lon1 = gps.location.lng();
double latR1;
double latR2;
double lonR1;
double lonR2;
double dlon;
double dlat;
double a;
double e;
double d;
double R = 6371.00;
double toDegrees = 57.295779;
char sb[10];
char auth[] = "b3a6efffe4424417b71b3184fc24c61b";
BLYNK_WRITE(V2)
{
GpsParam gps(param);
Serial.println("Received remote GPS: ");
Serial.print(gps.getLat(), 7);
Serial.print(", ");
Serial.println(gps.getLon(), 7);
}
void setup()
{
Serial.begin(9600);
bluetoothSerial.begin(9600);
Blynk.begin(bluetoothSerial, auth);
serial_connection.begin(9600);
Serial.println("GPS Start");
}
void loop()
{
Blynk.run();
while(serial_connection.available())
{
Serial.println("There is connection to GPS!");
gps.encode(serial_connection.read());
}
if(gps.location.isUpdated())
{
Serial.println("Satellite Count:");
Serial.println(gps.satellites.value());
Serial.println("Latitude:");
Serial.println(gps.location.lat(), 6);
Serial.println("Longitude:");
Serial.println(gps.location.lng(), 6);
Serial.println("Speed MPH:");
Serial.println(gps.speed.mph());
Serial.println("Altitude Feet:");
Serial.println(gps.altitude.feet());
Serial.println("");
}
}
void calcDist()
{
Serial.begin(9600);
float delLat = abs(lat1-lat2)*111194.9;
float delLong = 111194.9*abs(lon1-lon2)*cos(radians((lat1+lat2)/2));
float distance = sqrt(pow(delLat,2)+pow(delLong,2));
Serial.print("Distance to destination(KM): ");
Serial.println(distance,7);
lonR1 = lon1*(PI/180);
lonR2 = lon2*(PI/180);
latR1 = lat1*(PI/180);
latR2 = lat2*(PI/180);
dlon = lonR2 - lonR1;
dlat = latR2 - latR1;
double x = cos(latR2)*sin(lonR2-lonR1);
double y = cos(latR1)*sin(latR2)-sin(latR1)*cos(latR2)*cos(lonR2-lonR1);
float brRad = atan2(x, y);
float reqBear = toDegrees*brRad;
Serial.print("Bearing(°): ");
Serial.println(reqBear, 7);
}
The error that comes up is:
GPS_final2:19: error: 'class TinyGPSPlus' has no member named 'getLat'
float lat2 = gps.getLat();
^
GPS_final2:21: error: 'class TinyGPSPlus' has no member named 'getLon'
float lon2 = gps.getLon();
^
exit status 1
'class TinyGPSPlus' has no member named 'getLat'
So the library does not allow gps.getLat() and gps.getLon() which is from:
BLYNK_WRITE(V2)
{
GpsParam gps(param);
Serial.println("Received remote GPS: ");
Serial.print(gps.getLat(), 7);
Serial.print(", ");
Serial.println(gps.getLon(), 7);
}
So I want to somehow make gps.getLat() = lat2 and gps.getLon() =lon2
but I don't know how to.
I can ensure you that the rest of the code is error-free.
Any help would be very much appreciated.
GPS_final.ino (2.29 KB)