Go Down

Topic: [RESOLU] Shield ethernet -> Envoie de requête (Read 828 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());
}
?>
AUCUNE AIDE PAR MP

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");
AUCUNE AIDE PAR MP

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();
}

...

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 ;)
AUCUNE AIDE PAR MP

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