我一直在尝试这样做2天。我可以将GPS lat,lang作为短信发送到接收号码。然而,我现在想要的是使用GPRS发送这个。我正在使用SIM900A GSM/GPRS模块。我是软件工程专业的学生,我对Arduino颇为陌生。这是我使用GSM的代码。与Arduino uno一起使用SIM900a将GPS位置发送到使用GPRS的服务器
#include <SoftwareSerial.h>
#include <TinyGPS.h>
TinyGPS gps;
SoftwareSerial ss(5, 6);
static void smartdelay(unsigned long ms);
void setup()
{
Serial.begin(115200);
ss.begin(9600);
}
void loop()
{
float flat, flon;
unsigned long age, date, time, chars = 0;
unsigned short sentences = 0, failed = 0;
gps.f_get_position(&flat, &flon, &age);
sendLatLang(flat, flon);
gps.stats(&chars, &sentences, &failed);
Serial.println();
smartdelay(1000);
}
static void smartdelay(unsigned long ms)
{
unsigned long start = millis();
do
{
while (ss.available())
gps.encode(ss.read());
} while (millis() - start < ms);
}
static void sendLatLang(float lat, float lang)
{
if (lat == TinyGPS::GPS_INVALID_F_ANGLE || lang == TinyGPS::GPS_INVALID_F_ANGLE) {
Serial.println("Searching for GPS fix...");
} else {
Serial.println("AT+CMGF=1");
delay(1000);
Serial.println("AT+CMGS=\"+94123445678\"");
delay(1000);
Serial.print("Latittude : ");
Serial.println(lat);
Serial.print("Longitude : ");
Serial.println(lang);
Serial.write(26);
delay(1000);
}
}
非常感谢您的回复!我会尝试所有你提到的事情并尽快报告。 –