Bonjour à tous,
Je travaille sur une carte Arduino Leonardo ainsi que sur une carte SIM908.
Je résolte des coordonées GPS qui sont dans un buffer.
Je dois aussi les envoyer sur un serveur web pourqu'elles soit enregistrée dans une base de donnée mysql.
Le serveur est pret pour recevoir l'URL
J'ai essayé plusisurs solution en m'inspirant d'exemple, mais au final, mon code me retounr un message comme quoi il y a eu un probleme avec l'URL
Donc sur le coup, je ne sais pas si je m'y suis bien pris,
Je suis aussi cette donc
http://www.dfrobot.com/image/data/TEL0051/3.0/SIM908_AT%20Command%20Manual_V1.01.pdf
Premierement, j'aurais voulu savoir si vous avec un exemple de code qui fonctionne
Si nous voici mon code.
void send_HTTP(){
char aux_str[90];
char fix[] = "g=2,195941,4613.161699,N,608.476854,E,1,9,1.398636,435.450073,M,48.200287,M,,0000";
if(debug) Serial.println(F("> Starting sending data"));
uint8_t answer=0;
Serial.println(strstr(read_AT_string("AT+SAPBR=3,1,\"Contype\",\"GPRS\"", 4000,true),"OK") != NULL);
Serial.println(strstr(read_AT_string("AT+SAPBR=3,1,\"APN\",\"intranet\"", 4000,true),"OK") != NULL);
Serial.println(strstr(read_AT_string("AT+SAPBR=1,1", 20000,true),"OK") != NULL);
// Les trois lignes ci-dessus, me retorunent 1
// Initializes HTTP service
if(debug) Serial.println(F("> HTTPINIT"));
answer = (strstr(read_AT_string("AT+HTTPINIT", 10000,true),"OK") != NULL);
if (answer == 1)
{
// Sets CID parameter
if(debug) Serial.println(F("> AT+HTTPPARA=\"CID\""));
answer = (strstr(read_AT_string("AT+HTTPPARA=\"CID\",1", 2000,true),"OK") != NULL);
if (answer == 1)
{
// Sets url
if(debug) Serial.println(F("> AT+HTTPPARA=\"URL\""));
Serial1.println("AT+HTTPPARA=\"URL\",\"http://aaaa.dyndns.org/opt/updatesql.php?");
Serial1.print("g=2,195941,4613.161699,N,608.476854,E,1,9,1.398636,435.450073,M,48.200287,M,,0000\"");
delay(10000);
//sprintf(frame, "visor=false&latitude=%s&longitude=%s&altitude=%s&time=%s&satellites=%s&speedOTG=%s&course=%s",latitude, longitude, altitude, date, satellites, speedOTG, course);
//Serial1.print(fix);
//read_AT_string(fix,1,false);
//read_AT_string("\"", 1,false);
if(debug) Serial.println(F("> AT"));
answer = (strstr(read_AT_string("AT", 5000,false),"OK") != NULL);
if(debug_buffer)
{
Serial.println(F("------- Show buffer------"));
Serial.println(buffer);
Serial.println(F("-------------------------"));
}
if (answer == 1)
{
answer = (strstr(read_AT_string("AT+HTTPACTION=0", 40000,false),"+HTTPACTION:0,200") != NULL);
if (answer == 1)
{
if(debug) Serial.println(F(" Done!"));
if(debug_buffer)
{
Serial.println(F("------- Show buffer------"));
Serial.println(buffer);
Serial.println(F("-------------------------"));
}
}
else
{
if(debug) Serial.println(F(" Error getting url"));
if(debug_buffer)
{
Serial.println(F("------- Show buffer------"));
Serial.println(buffer);
Serial.println(F("-------------------------"));
}
}
}
else
{
if(debug) Serial.println(F(" Error setting the url"));
}
}
else
{
if(debug) Serial.println(F(" Error setting the CID"));
}
}
else
{
if(debug) Serial.println(F("Error initializating"));
}
if(strstr(read_AT_string("AT+HTTPTERM", 5000,true),"OK") != NULL);
}
La fonction read_AT_string(), envoie la comment et met dans un buffer la réponse.
le parametre true ou false, dans cette meme comment, va utilier
Serial1.print("AT") //si false
Serial1.println("AT") //si true
Ce code me retourne toujours
Error setting the url
En fait, je me demande, si je me suis bien pris.
Ma grande question, pourriez-vous me dire les commandes AT a executer, et leur ordre pour l'envoie des données sur un serveur MySQL/PHP en GET (voir en POST)
Je ne pense pas être loin du résultat..
Milles mercis à vous