system
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 :
<?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 :
#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 :
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
bonjour,
as tu testé à la mano ton script php?
histoire de voir s'il fonctionne et fait bien la requete, tu peux ca
<?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());
}
?>
system
3
Salut, oui bien sûr ma requête fonctionne bien, je l'ai testée à la main.
je pense que c'est ca qui bloque, vu que tu as repris le code de démo webclient
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");
jfs
5
Essaie avec la version 1.1 pour HTTP.
Il faut rajouter deux chose dans ta requète :
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();
}
...
system
6
Effectivement, mes WWW n'était pas bon, et il manquait des balises d'entêtes.
Voilà le code fonctionnel :
#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
impec.
pense a mettre en résolu ton 1er post