Bonjour,
j'aimerai bien pouvoir envoyer les valeurs de certaines variales de mon code arduino dans une base de donnée hébergée sur un serveur.
Savez vous si cela est possible ? et si oui auriez quelques pistes à me suggérer autant du côté Arduino que du coté serveur ?
Actuellement les données s'enregistrent bien sur la carte SD du shield Ethernet.
Je pense utiliser un GET en direction du serveur mais j'avoue ne pas avoir la bonne méthode pour coder cela dans l'arduino.
Je ne penses pas que tu puisses faire directement du SQL depuis l'Arduino.
Toutefois, tu peux faire des GET ou POST vers un script PHP hébergé à l'extérieur qui lui va se charger de se connecter à ta base SQL et y écrire les données.
Réponse super rapide !
ok pour la deuxième phase je vais passer par de l'ASP plutot car je maitrise mieux ... enfin maitriser ...
Par contre as tu la syntaxe et la manière de faire un GET depuis l'arduino ?
J'ai essayé avec le webclient mais je n'ai rien d'affiché dans le moniteur série ou plutot je n'ai pas le résultat de la requete j'ai juste ceci
connecting...
connected
disconnecting.
???? Etrange, j'ai pourtant mis la bonne adresse de google (qui est fausse dans l'exemple ...)
/*
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(74,125,79,94); // 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(;;)
;
}
}
PITP2:
J'ai essayé avec le webclient mais je n'ai rien d'affiché dans le moniteur série ou plutot je n'ai pas le résultat de la requete j'ai juste ceci
(...)
???? Etrange, j'ai pourtant mis la bonne adresse de google (qui est fausse dans l'exemple ...)
Essaye avec autre chose que les serveurs de google, comme l'ip de ta box par exemple.
J'ai pas mal de probléme avec mes scripts Ethernet et google ... à croire qu'il détecte et ignore les requêtes ne provenant pas d'un "vrai" navigateur.
Question bête mais qui (je crois) n'as pas était posé :
Sous quelle version de l'ide travaille tu (>=0023 ou <=1.0) ?
C'est peut être un probléme de configuration (logicielle et/ou matérielle).
En fait l'idée est de faire les requêtes à la main avec le telnet du Pc, et quand ça marche alors implémenter les mêmes requêtes et paramètres dans l'Arduino.