Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« on: August 25, 2012, 04:35:05 am » |
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.
|
|
|
|
« Last Edit: November 05, 2012, 03:27:31 pm by PITP2 »
|
Logged
|
|
|
|
|
Ile-de-France (92 sud), France
Offline
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #1 on: August 25, 2012, 04:38:08 am » |
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.
|
|
|
|
|
Logged
|
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC# RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #2 on: August 25, 2012, 04:44:52 am » |
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 ?
|
|
|
|
|
Logged
|
|
|
|
|
Ile-de-France (92 sud), France
Offline
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #3 on: August 25, 2012, 04:58:47 am » |
|
|
|
|
|
Logged
|
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC# RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4331
Arduino Hacker
|
 |
« Reply #4 on: August 25, 2012, 08:24:09 am » |
Bonjour, J'ai posté un exemple trés simple en PHP + mySQL il y a déja quelques temps : http://arduino.cc/forum/index.php/topic,94887.msg713238.html#msg713238Côté arduino il suffit d'utiliser l'exemple WebClient. Exemple avec le code cité ci dessus : GET /index.php?led=13 HTTP/1.0
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #5 on: August 25, 2012, 03:01:44 pm » |
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(;;) ; } } Je devrais pourtant avoir autre chose non ?
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4331
Arduino Hacker
|
 |
« Reply #6 on: August 26, 2012, 10:13:05 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #7 on: August 26, 2012, 01:32:34 pm » |
Même chose je n'ai rien qui s'affiche ...
|
|
|
|
|
Logged
|
|
|
|
|
Ile-de-France (92 sud), France
Offline
Edison Member
Karma: 22
Posts: 1817
|
 |
« Reply #8 on: August 26, 2012, 01:41:33 pm » |
Wireshark ?
Hum. Mais il faudrait un hub ou un switch avec port mirroir. A moins de se mettre un petit serveur web sur le PC pour le test.
|
|
|
|
|
Logged
|
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC# RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?
|
|
|
|
Paris, France
Offline
Newbie
Karma: 0
Posts: 20
|
 |
« Reply #9 on: August 26, 2012, 02:12:25 pm » |
Et comme ça ? client.println("GET /search?q=Arduino HTTP/1.0"); client.println ("Host: google.com"); client.println ();
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #10 on: August 26, 2012, 02:47:02 pm » |
toujours rien .... malédiction sur mon arduino 
|
|
|
|
|
Logged
|
|
|
|
|
Paris, France
Offline
Newbie
Karma: 0
Posts: 20
|
 |
« Reply #11 on: August 26, 2012, 03:14:40 pm » |
et avec un mac (ou pc…), dans le terminal en tapant telnet google.com 80
tu obtiens quelque chose ? sur le mac il devrait afficher quelque chose comme Trying 173.194.34.100... Connected to google.com. Escape character is '^]'.
puis tu tapes GET /search?q=arduino HTTP/1.0
donc la ligne GET etc en terminant par entrée puis une deuxième fois entrée… là devrait apparaître la réponse du serveur: HTTP/1.0 200 OK Date: Sun, 26 Aug 2012 20:11:25 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1
…
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4331
Arduino Hacker
|
 |
« Reply #12 on: August 27, 2012, 08:30:46 am » |
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). Essaye l'exemple TelnetClient : http://arduino.cc/en/Tutorial/TelnetClientAvec l'ip de ton pc comme cible et une console netcat en écoute (nc -l -p 10002).
|
|
|
|
|
Logged
|
|
|
|
|
Paris, France
Offline
Newbie
Karma: 0
Posts: 20
|
 |
« Reply #13 on: August 27, 2012, 10:06:54 am » |
avec l'adresse 173.194.34.68 pour google, ça marche chez moi… (juste adapté le sketch pour l'ide 23 sur un mega2560)
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 81
|
 |
« Reply #14 on: August 28, 2012, 02:19:54 pm » |
pour l'ide je crois que je suis en 1.0.1 c'est possible ?
j'ai essayé la méthode exposée en telnet mais cela ne donne rien chez moi ... je suis sur PC alors la méthode change un peu je crois ?
|
|
|
|
|
Logged
|
|
|
|
|
|