使用 GPRS/GPS Shield (U-blox Sara G-350) 将数据发送到网络服务器
Sending data to a webserver with GPRS/GPS Shield (U-blox Sara G-350)
我正在做一个跟踪汽车的项目。我正在使用 Arduino UNO 从 GPS/GPRS 盾牌接收位置。我可以获取坐标位置。
现在我需要将位置发送到网络服务器,然后使用 Google 地图 API 在网页上显示它。它以 POST 或 GET 方法接受它。
这是屏蔽模型:
U-blox Sara G-350
这是它的手册 here
域:"www.navtec.16mb.com"(托管良好)
路径:“/test/getter.php”(经过测试并与浏览器 GET / POST 完美配合)
Apn:weborange(确定)
这是我的方法:
#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial gprsSerial(7 ,8);
void setup() {
// put your setup code here, to run once:
gprsSerial.begin(19200);
Serial.begin(19200);
delay(2000);
gprsSerial.println("AT+CGDCONT=3,\"IP\",\"weborange\"");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=2,1,\"www.navtec.16mb.com\"");
//AT+UHTTP=<profile_id>,<op_code>,<HTTP_server_name>
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0,5,80");
toSerial();
delay(2000);
}
void loop() {
//gprsSerial.println("AT+UHTTP=2,1,\"submit\"");
//AT+UHTTP=<profile_id>,<op_code>,<param_val>[,<param_val1>]
//toSerial();
//delay(2000);
gprsSerial.println("AT+UHTTPC=2,1,/test/getter.php,filename"); //Problem here!!!!!!!!
//AT+UHTTPC=<profile_id>,<http_command>,<path>,<filename>[,<param1>[,<param2>[,<param3>]]]
toSerial();
delay(2000);
}
void toSerial()
{
while(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read());
}
}
这是我得到的:
+CGDCONT=3,"IP","weborange"
OK
+UHTTP=0
OK
+UHTTP=2,1,"www.navtec.16mb.com"
OK
+UHTTP=0,5,80
OK
+UHTTPC=2,1,/test/getter.php,filename
ERROR
+UHTTPC=2,1,/test/getter.php,filename
ERROR
+UHTTPC=2,1,/test/getter.php,filename
ERROR
+UHTTPC=2,1,/test/getter.php,filename
ERROR ...
感谢您的宝贵时间,我正在等待您的支持,任何想法都可以提供帮助。抱歉我的英语不好
我曾参与过一个与您类似的项目,我认为您错过了 首先建立联系。
只需在 setup()
方法的 tor 中添加这些代码行:
gprsSerial.println("AT+UPSDA=2,0"); //Reset connexion
toSerial();
delay(2000);
gprsSerial.println("AT+UPSD=2,1,\"weborange\""); //Establish a new one
toSerial();
delay(2000);
gprsSerial.println("AT+UPSDA=2,3");
toSerial();
delay(2000);
gprsSerial.println("AT+UPSND=2,0");
toSerial();
delay(2000);
希望对你有用。否则,您毕竟可以使用 AT+UHTTPER=2
来检查错误来源。
我正在做一个跟踪汽车的项目。我正在使用 Arduino UNO 从 GPS/GPRS 盾牌接收位置。我可以获取坐标位置。 现在我需要将位置发送到网络服务器,然后使用 Google 地图 API 在网页上显示它。它以 POST 或 GET 方法接受它。 这是屏蔽模型: U-blox Sara G-350 这是它的手册 here
域:"www.navtec.16mb.com"(托管良好) 路径:“/test/getter.php”(经过测试并与浏览器 GET / POST 完美配合) Apn:weborange(确定)
这是我的方法:
#include <SoftwareSerial.h>
#include <String.h>
SoftwareSerial gprsSerial(7 ,8);
void setup() {
// put your setup code here, to run once:
gprsSerial.begin(19200);
Serial.begin(19200);
delay(2000);
gprsSerial.println("AT+CGDCONT=3,\"IP\",\"weborange\"");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0");
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=2,1,\"www.navtec.16mb.com\"");
//AT+UHTTP=<profile_id>,<op_code>,<HTTP_server_name>
toSerial();
delay(2000);
gprsSerial.println("AT+UHTTP=0,5,80");
toSerial();
delay(2000);
}
void loop() {
//gprsSerial.println("AT+UHTTP=2,1,\"submit\"");
//AT+UHTTP=<profile_id>,<op_code>,<param_val>[,<param_val1>]
//toSerial();
//delay(2000);
gprsSerial.println("AT+UHTTPC=2,1,/test/getter.php,filename"); //Problem here!!!!!!!!
//AT+UHTTPC=<profile_id>,<http_command>,<path>,<filename>[,<param1>[,<param2>[,<param3>]]]
toSerial();
delay(2000);
}
void toSerial()
{
while(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read());
}
}
这是我得到的:
+CGDCONT=3,"IP","weborange"
OK +UHTTP=0
OK +UHTTP=2,1,"www.navtec.16mb.com"
OK +UHTTP=0,5,80
OK +UHTTPC=2,1,/test/getter.php,filename
ERROR +UHTTPC=2,1,/test/getter.php,filename
ERROR +UHTTPC=2,1,/test/getter.php,filename
ERROR +UHTTPC=2,1,/test/getter.php,filename
ERROR ...
感谢您的宝贵时间,我正在等待您的支持,任何想法都可以提供帮助。抱歉我的英语不好
我曾参与过一个与您类似的项目,我认为您错过了 首先建立联系。
只需在 setup()
方法的 tor 中添加这些代码行:
gprsSerial.println("AT+UPSDA=2,0"); //Reset connexion
toSerial();
delay(2000);
gprsSerial.println("AT+UPSD=2,1,\"weborange\""); //Establish a new one
toSerial();
delay(2000);
gprsSerial.println("AT+UPSDA=2,3");
toSerial();
delay(2000);
gprsSerial.println("AT+UPSND=2,0");
toSerial();
delay(2000);
希望对你有用。否则,您毕竟可以使用 AT+UHTTPER=2
来检查错误来源。