用代码实现SIM800C如何把接收到的GPS定位发送给用户手机
时间: 2024-02-16 19:02:17 浏览: 98
以下是使用Arduino和SIM800C模块实现把接收到的GPS定位发送给用户手机的示例代码:
```c++
#include <SoftwareSerial.h>
//定义软串口
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
//初始化串口和SIM800C模块
Serial.begin(9600);
mySerial.begin(9600);
delay(2000);
//设置SIM800C模块的GPS功能
mySerial.println("AT+CGPSPWR=1"); //打开GPS电源
delay(1000);
mySerial.println("AT+CGPSRST=0"); //重置GPS模块
delay(1000);
mySerial.println("AT+CGPSINF=0"); //打开GPS信息输出
delay(1000);
}
void loop() {
//读取GPS定位信息
mySerial.println("AT+CGNSINF"); //读取GPS位置信息
delay(1000);
while(mySerial.available()) {
char c = mySerial.read();
Serial.write(c); //将GPS信息输出到串口监视器
}
//发送GPS定位信息到用户手机
String gpsData = ""; //保存GPS定位信息
while(mySerial.available()) {
gpsData += String(mySerial.read());
}
if(gpsData.length() > 0) {
String smsData = "GPS:" + gpsData; //封装短信数据
mySerial.println("AT+CMGF=1"); //设置短信格式为文本模式
delay(1000);
mySerial.println("AT+CMGS=\"+86136xxxxxxxx\""); //用户手机的手机号码
delay(1000);
mySerial.println(smsData); //发送短信数据
delay(1000);
mySerial.write(26); //发送短信结束符
delay(1000);
}
delay(5000); //延时5秒后再次读取GPS定位信息
}
```
以上代码中,我们使用SoftwareSerial库来实现软串口通信,其中mySerial对象连接SIM800C模块,Serial对象连接Arduino开发板的硬串口。在setup()函数中,我们先初始化串口和SIM800C模块,并设置SIM800C的GPS功能。在loop()函数中,我们使用AT指令AT+CGNSINF从SIM800C读取GPS定位信息,并通过AT指令AT+CMGS将GPS定位信息封装成短信数据发送到用户手机上。需要根据实际情况修改代码中的手机号码和其他参数。
阅读全文