bonjour,
alors voila j ai un probleme dans mon code je pense car quand j envoie les commande manuel ca marche
mon code bloque apres Serial.println(port); Serial.flush();
car il est censé lire REQUEST et continuer mais rien ...
char data[1024];
int data_size;
int led = 13;
int onModulePin = 2; // the pin to switch on the module (without press on button)
int x = 0;
char server[ ]="www.google.lu";
char port[ ]="80";
void switchModule(){
digitalWrite(onModulePin,HIGH);
delay(2000);
digitalWrite(onModulePin,LOW);
}
void setup(){
Serial.begin(115200); // UART baud rate
delay(2000);
pinMode(led, OUTPUT);
pinMode(onModulePin, OUTPUT);
switchModule(); // switches the module ON
for (int i=0;i< 5;i++){
delay(5000);
}
Serial.println("AT+CPIN=1234"); //active le code pin
delay(8000);
Serial.println("AT+CGDCONT=1,\"IP\",\"orange.lu\"");
Serial.flush();
while(Serial.read()!='K');
}
void loop()
{
Serial.print("AT+CHTTPACT=\""); //Connects with the HTTP server
Serial.print(server);
Serial.print("\",");
Serial.println(port);
Serial.flush();
x=0;
do{
while(Serial.available()==0);
data[x]=Serial.read();
x++;
}while(!(data[x-1]=='T'&&data[x-2]=='S')); //waits for response "REQUEST"
Serial.println("GET /index.html HTTP/1.1");
Serial.println("Host: www.google.lu");
Serial.println("Content-Length: 0");
Serial.write(0x1A); //sends ++
Serial.write(0x0D);
Serial.write(0x0A);
while(Serial.read()!='K');
while(Serial.read()!=' ');
data_size=0;
do{
data_size*=10;
data_size=data_size+(Serial.read()-0x30);
}while(Serial.peek()!=0x0D);
for(x=0;x< data_size;x++){
data[x]=Serial.read();
}
Serial.print(data);
while(1);
}
en manuel le code marche tres bien car j obtiens bien ce que je veux :
at+csq
+csq: 17,99
OK
AT+CGDCONT=1,"IP","orange.lu"
OK
AT+CHTTPACT="www.google.lu",80
+CHTTPACT: REQUEST
GET /index.html HTTP/1.1 Host: www.google.lu Content-Length: 0
OK
+CHTTPACT: DATA,1068
http/1.0 400 bad request
content-type: text/html; charset=utf-8
content-length: 925
date: thu, 10 may 2012 08:17:53 gmt
server: gfe/2.0
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content
="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 400 (Bad
Request)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px ar
ial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto
0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(/
/www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}
p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{b
order:0}@media screen and (max-width:772px){body{background:none;margin-top:0;ma
x-width:none;padding-right:0}}
</style>
<a href=//www.google.com/><img src=//w
ww.google.com/images/errors/logo_sm.gif alt=Google></a>
<p><b>400.</b> <ins>Tha
t’s an error.</ins>
<p>Your client has issued a malformed or illegal request.
<ins>That’s all we know.</ins>
+CHTTPACT: 0
bonjour,
bon je ne vois pas de chose anormal dans ton programme donc je ne serais pas te dire ce qui va pas, la vitesse est peut être inadapter? mais je ne crois, fait gaff avec le serial.println, il balance un fin de ligne + carriage return en fin de ce que tu envoie ce qui correspond a /r/n donc éssaye avec Serial.write(.. si tu veux mon avis.
Skizo !
le serial.println du port tu penses?
jai deja essayé de le modifier
c est une probleme avec request
car quand j enlève la verification de request ca va jusqu au get (ce qui est normal en meme tps)
du coup ca vient d avant ....
en gros un commentaire pour rien dire mais la flemme de l effacer
bonjour,
as tu essayé de remplacer
char server[ ]="www.google.lu";
par
char server[ ]={74,125,132,94};
system
May 10, 2012, 10:14am
7
c est ma réponse dans le sérial monitor
pour l instant jai rajouté la commande at+cgauth
plus que a avoir pourquoi jai pas la bonne réponse
AT+CPIN=1234
AT+CGAUTH=1,1,,
AT+CGDCONT=1,"IP","orange.lu"
AT+CHTTPACT="www.google.lu",80
GET /index.html HTTP/1.1
Host: www.google.lu
Content-Length: 0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑå
system
May 10, 2012, 11:30am
8
je n'ai pas tout compris, mais prend garde au terminal, parfois ta donnée est juste, elle est juste mal traduite et tu peut avoir des caractère bizarre alors que ta variable est niquel..
Skizo !
system
May 10, 2012, 11:42am
9
tu me conseil quoi alors pour vérifier
system
May 10, 2012, 11:45am
10
jai testé avec hypertherminal
mais a mon avis il ya un probleme avec la réponse
djo54150:
tu me conseil quoi alors pour vérifier
je dirais que le mieux serait d'interroger un server perso et regarder les logs apache avec une page toute bête.
system
May 10, 2012, 11:55am
12
ba déja quel le type de ce que tu veux? char? byte? int?
parce que si j'ai bien vue tu à des caractère bizarre ici:
Serial.println("Host: www.google.lu");
Serial.println("Content-Length: 0");
Serial.write(0x1A); //apartir d'ici
Serial.write(0x0D);
Serial.write(0x0A);
donc c'st que ton 0x1A etc s'affiche mal, donc c'est la qu'il va falloir essayer, j'ai tester ça pour toi:
Serial.write(byte(0x0D)); donne rien
Serial.write(0x0D+48); donne "="
Serial.write(0x0D); donne rien
.. déjà la on est mal tu vois donc cherche par la..
system
May 10, 2012, 11:58am
13
la réponse est juste mais je dois mal la traité
avez vous un moyen simple de l afficher
system
May 10, 2012, 12:02pm
14
a la ligne:
data[x]=Serial.read();
tu peut tenter de faire un cast byte ou char comme ça:
data[x]=char(Serial.read());
ou
data[x]=byte(Serial.read());
je propose des truc comme ça ^^
Skizo !
system
May 10, 2012, 12:05pm
15
Ce que tu reçois au final c'est une page web c'est ça? et tu comptait l'afficher comment? sur le terminal?
Skizo !
system
May 10, 2012, 12:27pm
16
quand ca marche sur le terminal j obtiens ca
+CHTTPACT: DATA,1068
http/1.0 400 bad request
content-type: text/html; charset=utf-8
content-length: 925
date: tue, 08 may 2012 07:48:01 gmt
server: gfe/2.0
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content
="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 400 (Bad
Request)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px ar
ial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto
0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(/
/www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}
p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{b
order:0}@media screen and (max-width:772px){body{background:none;margin-top:0;ma
x-width:none;padding-right:0}}
</style>
<a href=//www.google.com/><img src=//w
ww.google.com/images/errors/logo_sm.gif alt=Google></a>
<p><b>400.</b> <ins>Tha
t’s an error.</ins>
<p>Your client has issued a malformed or illegal request.
<ins>That’s all we know.</ins>
+CHTTPACT: 0
mais la c est en manuel
pour l instant j affiche dans le terminal mais par la suite je ferai autrment c est pour tester
system
May 10, 2012, 12:35pm
17
bon c'est que de l'ascii essaye le caste char(ton caractère) et surtout essaie de mettre ça dans un string et de l'afficher ça passera surement mieux.
Skizo !
system
May 10, 2012, 12:45pm
18
non mais j avais un pb de configuration avec AT+CGAUTH=1,1,,
et il sert a rien car en manuel ca marche sans
par contre si je le met jai erreur 227 ( erreur reseau)
donc je l enleve mais la il bloque à AT+CHTTPACT="www.google.lu",80
il doit y avoir une erreur avec les ""
system
May 10, 2012, 12:49pm
19
je vais te mettre un resumé des commande en manuel avec lesquelles le programme marche:
AT+CPIN=1234
AT+CGDCONT=1,"IP","orange.lu" (répond ok)
AT+CHTTPACT="www.google.lu",80 (répond request)
GET /index.html HTTP/1.1 Host: www.google.lu Content-Length: 0 (répond ok apres appuie de ctrl+z donc 0x0A)