Arduino ecriture base Access ou SQL

l'ip qui a fonctionné chez moi est par exemple 173.194.34.100 (google en a plusieurs)…
ça devrait marcher…

cela ne fonctionne pas
peux tu me faire une copie d'ecran de ce que tu obtiens dans ton terminal serie stp ?

le serial monitor de l'arduino me donne ceci:

connecting...
connected
HTTP/1.0 200 OK
Date: Fri, 31 Aug 2012 06:57:29 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=9d01d78c5d4d4ecd:FF=0:TM=1346396249:LM=1346396249:S=hBpUP915vl9gGPiR; expires=Sun, 31-Aug-2014 06:57:29 GMT; path=/; domain=.google.com
Set-Cookie: NID=63=CM-JvJlh30f5llBHZJJdhWPxFDEcXc98zGr2aqjjOvTYSelSvKfvn5frDm6HsOYhTjl7IvJ89e2PSMilI63BQN2jVHqCe7oOttwROLDovTo652qVMsOJOyS40kX2SfAF; expires=Sat, 02-Mar-2013 06:57:29 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

(bla bla bla)

disconnecting.

tu es sur du dhcp chez toi ?
tu peux aussi essayer en mettant une adresse ip statique pour l'arduino:

par exemple

IPAddress ip(10,0,0,2);
IPAddress dnss(10,0,0,1);
IPAddress gw(10,0,0,1);

…

Ethernet.begin(mac, ip, dnss, gw);

J'ai essayé avec une ip fixe comme tu me l'as conseillé mais tjrs le même problème .....
c'est etrange que cela fonctionne chez tout le monde sauf chez moi :~

Comme ça a l'air de fonctionner sur ton pc mais pas sur ton arduino, essaie de brancher l'arduino sur le câble réseau Du pc, à la place du pc, avec l'adresse ip utilisée par le pc...

Question bête, comment tu alimentes ton arduino ?
Batterie ? Alim secteur ?

L'ethernet shield consomme beaucoup de courant, si elle en as pas assez elle marche de manière chaotique.

MErci à tous les deux
j'ai mis l'adresse ip du PC sur l'arduino meme probleme.
J'alimente l'arduino avec une alim secteur donc ce n'est pas cela non plus ... =(

Y a t'il autre chose branché en SPI sur l'arduino ? J'ai eu le cas avec un horloge ds3234 mal branchée, elle provoquait des erreurs sur l'ethernet et la carte SD...

non la carte ethernet est la seule branchée sur l'arduino

PITP2:
non la carte ethernet est la seule branchée sur l'arduino

C'est louche cette histoire ... l'ethernet shield est peu être défectueuse ?

Ma toute première ethernet shied avait des "ponts de soudures" (des billes de soudure pour être précis) non voulu qui foutaient la merde.
Regarde de plus prés ta carte (surtout au niveau du chipset Wiznet) peut être que tu as le même probléme ?

Truc bête à regarder : ta shield répond t'elle quand on la ping ?

la panne matérielle comme le suggère skywodd est effectivement une possibilité…

pas d'autres idées malheureusement…

cbrandt:
la panne matérielle comme le suggère skywodd est effectivement une possibilité…

pas d'autres idées malheureusement…

Sinon tu as pu tester si ta carte répond au ping ?
Si non le défaut hardware et plus que probable vu que le ping est géré en hardware par le chipset wiznet.

Désolé pour le temps de réponse ...

Oui j'arrive parfaitement à pinger la carte.
J'avais meme testé la mise à l'heure depuis un serveur ntp et cela fonctionnait bien

PITP2:
Désolé pour le temps de réponse ...

Oui j'arrive parfaitement à pinger la carte.
J'avais meme testé la mise à l'heure depuis un serveur ntp et cela fonctionnait bien

Donc le NTP marche !?
Ce serais un probléme dans le code du WebClient ... bizarre ...

tu dis bizarre je dis bizarre .. comme c'est bizarre :slight_smile:

j'ai pourtant regardé encore et encore le code et pourtant il semble bon ...

tu n'as pas la possiblité d'essayer sur un arduino et m'envoyer le code qui fonctionne chez toi ?

J'ai utilisé tout un tas de code différent mais avec tjrs le même résultat ... c'est rageant !

Oups désolé j'avais pas vu ton dernier message.

Chez moi le code WebClient en DHCP (avec juste l'adresse mac dans Ethernet.begin()) fonctionne nikel.

A ce stade je vois que deux choses possibles :

  • ton ethernet shield a quelque chose qui va pas
  • ton réseau est bizarrement câblé/configuré

J'ai réussi à le faire fonctionner avec ce code que j'ai pris directement depuis le soft arduino alors qu'avant j'avais fait un copier coller depuis le site arduino ..

j'ai juste changé l'IP du serveur google

Merci à tous pour votre aide

/*
  Web client
 
 This sketch connects to a website (http://www.google.com)
 using an Arduino Wiznet Ethernet shield. 
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 18 Dec 2009
 modified 9 Apr 2012
 by David A. Mellis
 
 */

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(173,194,34,34); // Google

// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connecting...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.println("GET /search?q=arduino HTTP/1.0");
    client.println();
  } 
  else {
    // kf you didn't get a connection to the server:
    Serial.println("connection failed");
  }
}

void loop()
{
  // if there are incoming bytes available 
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    for(;;)
      ;
  }
}

Je reviens sur ce sujet mais j'ai avancé depuis :slight_smile:
Serveur PHP et base Mysql prête !
j'arrive à y entrer des données via un script php sur mon serveur avec l'adresse
http://localhost/solaire/txp2.php?nom_inst=Dupont&date_prod=20121212121212&prod=6741&commentaires=cool2

par contre je n'arrive pas à le faire depuis l'arduino avec ce code

int annee=year();
    int jour=day();
    int mois = month();
    int heure= hour();
    int minut= minute();
    int sec= second();
    
    char date[15];
    sprintf(date,"%04d%02d%02d%02d%02d%02d",annee,mois,jour,heure,minut,sec);  //  %d pour un int 
  // if there's a successful connection:
  if (client.connect(srvphp, 80)) {
        
   // Serial.println("connected srvphp");
    // Make a HTTP request:
    client.println("GET /solaire/txp2.php?nom_inst=Dupont&date_prod=");
    client.print(date);
    
  // Serial.print(date);
    
   // Serial.print(jour);
   
    // Serial.print(heure);
    
    // Serial.print(minut);
    
    // Serial.print(sec);
    client.print("&prod=6741&commentaires=arduino");
   client.println(" HTTP/1.0");
    
  }

alors qu'avec celui ci cela fonctionne bien ..

if (client.connect(server, 80)) {
    Serial.println("connected");
    // Make a HTTP request:
    client.print("GET /solaire/txp2.php?nom_inst=Dupont&date_prod=20121212121212&prod=6741&commentaires=");
    
 client.print(test);
 client.println(" HTTP/1.0");
    
    
    
    client.println();

j'ai pourtant contrôlé avec un Serial.print que la date envoyée soit la bonne et c'est le bon format ..

Je pense que dans le 1er cas il te manque un println()

Il faut une ligne vide pour signifier la fin de la requête.