My problem is that the longitude and latitude are being sent as zeros rather than their actual figures.
Any help is welcome, thanks.
My code is
#include <DFRobot_sim808.h>
#include <SoftwareSerial.h>
//Mobile phone number,need to change
#define PHONE_NUMBER "**********"
DFRobot_SIM808 sim808(&Serial);
#define MESSAGE_LENGTH 160
char message[MESSAGE_LENGTH];
int messageIndex = 0;
char phoneRX[16];
char datetime[24];
float lat, lon;
void setup() {
// put your setup code here, to run once:
//mySerial.begin(9600);
Serial.begin(9600);
//******** Initialize sim808 module *************
while(!sim808.init()) {
delay(1000);
Serial.print("Sim808 init error\r\n");
}
//************* Turn on the GPS power************
if( sim808.attachGPS())
Serial.println("Open the GPS power success");
else
Serial.println("Open the GPS power failure");
}
void loop() {
// put your main code here, to run repeatedly:
/* messageIndex = sim808.isSMSunread();
Serial.print("messageIndex: ");
Serial.println(messageIndex);
if(messageIndex > 0){
sim808.readSMS(messageIndex,message,MESSAGE_LENGTH,phone, datetime);
if(message == "GPS"){
GPSData();
}
}*/
if(sim808.getGPS()){
Serial.print("latitude :");
Serial.println(sim808.GPSdata.lat,6);
/* sim808.latitudeConverToDMS();
Serial.print("latitude :");
Serial.println(sim808.latDMS.degrees);*/
Serial.print("longitude :");
Serial.println(sim808.GPSdata.lon,6);
sim808.LongitudeConverToDMS();
Serial.print("longitude :");
Serial.println (sim808.longDMS.degrees);*/
char latCStr[20];
String latCPPStr = String (lat, DEC);
latCPPStr.toCharArray(latCStr, latCPPStr.length());
latCStr[latCPPStr.length()] = '\0';
Serial.print (latCStr);
sim808.sendSMS(PHONE_NUMBER, latCStr);
char lonCStr[20];
String lonCPPStr = String (lon, DEC);
lonCPPStr.toCharArray(lonCStr, lonCPPStr.length());
lonCStr[lonCPPStr.length()] = '\0';
Serial.print(lonCStr);
sim808.sendSMS(PHONE_NUMBER, lonCStr);
//************* Turn off the GPS power ************
sim808.detachGPS();
}
}