Go Down

Topic: [RESOLU] Shield ethernet -> Envoie de requête (Read 637 times) previous topic - next topic

Kouaaks

Feb 03, 2013, 05:14 pm Last Edit: Feb 04, 2013, 07:23 am by Jean-François Reason: 1
Salut,

j'ai un petit problème avec le shield ethernet : j'essaie de me connecter à mon hebergeur et d'envoyer une requête.

Mon script PHP est :

Code: [Select]
<?php
if (isset($_GET['a']))
{
mysql_connect('sql.free.fr''kouaaks''******');
mysql_select_db('kouaaks'); 

mysql_query("INSERT INTO arduino VALUES ('', '1')");
}
?>


et mon script arduino est :

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

char serverName[] = "www.kouaaks.free.fr";

EthernetClient client;

void setup()
{
 Serial.begin(9600);
  while (!Serial) {;}

 if (Ethernet.begin(mac) == 0) {
   Serial.println("Failed to configure Ethernet using DHCP");
   while(true);
 }
 delay(1000);
 Serial.println("connecting...");
 
 if (client.connect(serverName, 80)) {
   Serial.println("connected");
   client.println("GET /index.php?a=lol HTTP/1.0");
   client.println();
 }
 else
 {
   Serial.println("connection failed");
 }
}

void loop()
{
 if (client.available())
 {
   char c = client.read();
   Serial.print(c);
 }
 
 if (!client.connected())
 {
   Serial.println();
   Serial.println("disconnecting.");
   client.stop();
   
   while(true);
 }
}


Ensuite, quand je vais dans le serial, j'ai ceci comme message :
Code: [Select]

connecting...
connected

disconnecting.


Mais .. rien ne s'ajoute dans ma bdd.

Auriez-vous une petite idée ? Je débute dans ce domaine ( shield ethernet ) ..
Merci :-P

infobarquee

bonjour,
as tu testé à la mano ton script php?

histoire de voir s'il fonctionne et fait bien la requete, tu peux ca
Quote
<?php
if (isset($_GET['a']))
{
   mysql_connect('sql.free.fr', 'kouaaks', '******');
   mysql_select_db('kouaaks');
   
   $requete = "INSERT INTO arduino VALUES ('', '1')";
        echo $requete;exit();
        $enregistrement = mysql_query($requete) or die(mysql_error());
}
?>

Kouaaks

Salut, oui bien sûr ma requête fonctionne bien, je l'ai testée à la main.

infobarquee

je pense que c'est ca qui bloque, vu que tu as repris le code de démo webclient
Quote
char serverName[] = "www.kouaaks.free.fr";

essaye de mettre l'ip

et dans le Get le sous domaine
client.println("GET kouaaks/index.php?a=lol HTTP/1.0");

Jean-François

#4
Feb 03, 2013, 07:02 pm Last Edit: Feb 03, 2013, 07:06 pm by Jean-François Reason: 1
Essaie avec la version 1.1 pour HTTP.

http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP_1.1

Il faut rajouter deux chose dans ta requète :

Code: [Select]

IPAddress server(192,168,1,64);

...

  if (client.connect(server, 80)) {
    Serial.println("connected");

     // Make a HTTP request:
     client.println("GET /le/chemin/du/fichier HTTP/1.1");
     client.print("Host: turlututu chapeau pointu\n");
     client.print("Referer: turlututu chapeau pointu\n\n");
     client.println();
}

...
MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Kouaaks

Effectivement, mes WWW n'était pas bon, et il manquait des balises d'entêtes.

Voilà le code fonctionnel :

Code: [Select]
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

char serverName[] = "kouaaks.free.fr";

EthernetClient client;

void setup()
{
 Serial.begin(9600);
  while (!Serial) {;}

 if (Ethernet.begin(mac) == 0) {
   Serial.println("Failed to configure Ethernet using DHCP");
   while(true);
 }
 delay(1000);
 Serial.println("connecting...");
 
 if (client.connect(serverName, 80)) {
   Serial.println("connected");
   client.print("GET /index.php?a=lol");
   client.println(" HTTP/1.1");
   client.println("Host: kouaaks.free.fr");
   client.println("User-Agent: AVR ethernet");
   client.println("Accept: text/html");
   client.println("Keep-Alive: 300");
   client.println("Connection: keep-alive");
   client.println();
 }
 else
 {
   Serial.println("connection failed");
 }
}

void loop()
{
 if (client.available())
 {
   char c = client.read();
   Serial.print(c);
 }
 
 if (!client.connected())
 {
   Serial.println();
   Serial.println("disconnecting.");
   client.stop();
   
   while(true);
 }
}


Merci ;-)

infobarquee

impec.
pense a mettre en résolu ton 1er post ;)

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy