SIM868模块+Arduino将位置信息上传到服务器

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);//这个指令可能返回是error,但也没问题的。所以没加else
	 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;//设备ID
    String s2="&lat="+lat;
    String s3="&lng="+lng;
    String s=s0+s1+s2+s3;//将数据拼接成URL地址,

    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);//10s内发送5次
    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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值