SIM868模块+Arduino将位置信息上传到服务器
一、 简要介绍
商家提供的资料中,有将GPS信息发送到OneNet平台的源码,本文就是在此基础上进行修改,将数据发送到自己的服务器中。
二、源码
第一次写博客,格式什么的就别计较了,直接上源码。
GPRS初始化部分
void initGprs()
{
if (sendCommand("AT\r\n", "OK\r\n", 3000, 10) == Success);
else errorLog(1);
if (sendCommand("AT+CGATT?\r\n", "OK\r\n", 3000, 2) == Success);
else errorLog(5);
if (sendCommand("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"\r\n", "OK\r\n", 3000, 2) == Success);
else errorLog(7);
if (sendCommand("AT+SAPBR=3,1,\"APN\",\"CMNET\"\r\n", "OK\r\n", 3000, 2) == Success);
else errorLog(8);
if (sendCommand("AT+SAPBR=1,1\r\n", "OK\r\n", 3000, 2) == Success);
if (sendCommand("AT+HTTPINIT\r\n", "OK\r\n", 3000, 2) == Success);
}
说明:指令:AT+SAPBR=1,1类似打开手机的数据连接,第一次打开肯定是成功的,但若是没关闭,再打开就会返回error,所以返回error也是没问题的,同理,AT+HTTPINIT也是,初始化一次就行了。
发送数据到服务器
void postGpsDataToServer(char* lng_temp,char* lat_temp)
{
char send_buf[1000] = {0};
char lngi[15] = {0};
char lati[15] = {0};
dtostrf(longitudeToOnenetFormat(lng_temp), 3, 6, lngi);
dtostrf(latitudeToOnenetFormat(lat_temp), 2, 6, lati);
String lat=lati;
String lng=lngi;
String s1="&id="+id;
String s2="&lat="+lat;
String s3="&lng="+lng;
String s=s0+s1+s2+s3;
char Server[300];
strcpy(Server,s.c_str());
memset(send_buf, 0, 400);
strcpy(send_buf, "AT+HTTPPARA=\"URL\",\"");
strcat(send_buf, Server);
strcat(send_buf, "\"\r\n");
if (sendCommand(send_buf, "OK", 10000, 5) == Success);
else errorLog(7);
if (sendCommand("AT+HTTPACTION=0\r\n","OK\r\n\r\n+HTTPACTION\r\n",3000, 1) == Success);
if (sendCommand("AT+HTTPREAD\r\n","OK\r\n",10000, 1) == Success);
}
三、总结
这是第一次写博客,总结记录一下SIM868的使用经验,若有问题,欢迎指导交流,如需源码可以去GitHub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)