Sayın arkadaşlar foruma yeni üye oldum.Neo 6gprs arduino modülünden RX,TXpinleri ile seri monütere yazdırdığım enlem ve boylam değerini sistemin ilk çalıştığında eeproma kaydetmek istiyorum aşağıdaki kodda bunu yapmaya çalıştım ama başaramadım internetteki bilgiler belirli bir pin moddan gelen verilerin kaydedilmesi üzerine bu konuda bana yardımcı olursanız sevinirim.Teşekkürler.
Kod:
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <SPI.h> // include libraries
#include <EEPROM.h>
static const int RXPin = 9, TXPin = 8;
static const uint32_t GPSBaud = 9600;
float addres1=0;
float addres2=10;
float veri1=0.0000;
float veri2=0.0000;
float veritipi1;
float veritipi2;
TinyGPSPlus gps;
SoftwareSerial ss(RXPin, TXPin); // RX 8,TX 9
float latitude,longitude;
//--------------------------------------------------------------
float initialLatitude =EEPROM.get(addres1,veritipi1);
float initialLongitude =EEPROM.get(addres2,veritipi2);
char buff[10];
String mylong = ""; // for storing the longittude value
String mylati = ""; // for storing the latitude value
float distance;
void setup()
{
Serial.begin(9600);
Serial.println("NEO6M serial initialize");
ss.begin(GPSBaud);
veri1=latitude;
veri2=longitude;
EEPROM.put(addres1,veri1);
EEPROM.put(addres2,veri2);
delay(100);
Serial.print(EEPROM.get(addres1,veritipi1));
Serial.print(EEPROM.get(addres2,veritipi2));
}
void loop()
{
while (ss.available() > 0)
if ( gps.encode(ss.read() ) )
{
latitude = gps.location.lat(), 4 ;
longitude = gps.location.lng(), 4;
mylati = dtostrf(latitude, 3, 4, buff);
mylong = dtostrf(longitude, 3, 4, buff);
distance = getDistance(latitude, longitude, initialLatitude, initialLongitude);
Serial.print("Latitude= "); Serial.println(latitude, 4);
Serial.print("Longitude= "); Serial.println(longitude, 4);
Serial.print(F("Speed:"));
Serial.println(gps.speed.kmph());
Serial.print(F("Course:"));
Serial.println(gps.course.deg());
delay(500);
{
}
}
}
// Calculate distance between two points
float getDistance(float flat1, float flon1, float flat2, float flon2) {
// Variables
float dist_calc=0;
float dist_calc2=0;
float diflat=0;
float diflon=0;
// Calculations
diflat = radians(flat2-flat1);
flat1 = radians(flat1);
flat2 = radians(flat2);
diflon = radians((flon2)-(flon1));
dist_calc = (sin(diflat/2.0)*sin(diflat/2.0));
dist_calc2 = cos(flat1);
dist_calc2*=cos(flat2);
dist_calc2*=sin(diflon/2.0);
dist_calc2*=sin(diflon/2.0);
dist_calc +=dist_calc2;
dist_calc=(2*atan2(sqrt(dist_calc),sqrt(1.0-dist_calc)));
dist_calc*=6371000.0; //Converting to meters
Serial.print("DİSTANCE = ");
Serial.println(distance);
return dist_calc;
}
Last edited by a moderator: