Pages: [1]   Go Down
Author Topic: [RESOLU] Shield ethernet -> Envoie de requête  (Read 377 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
<?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:
#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:
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
« Last Edit: February 04, 2013, 01:23:10 am by Jean-François » Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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");
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 24
Posts: 3171
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:

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

...
« Last Edit: February 03, 2013, 01:06:00 pm by Jean-François » Logged

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

Offline Offline
Jr. Member
**
Karma: 0
Posts: 64
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Voilà le code fonctionnel :

Code:
#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 ;-)
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

impec.
pense a mettre en résolu ton 1er post smiley-wink
Logged

Pages: [1]   Go Up
Jump to: