Récupérer une information d'une base sql

Bonsoir, Je suis un peu perdu avec tout ce que j'ai pu lire. Avec un arduino Ethernet, j'aimerais pouvoir récupérer l'état d'une led qui se trouve dans la une base mysql.

Plus précisément : j'ai un site qui permet de changer l'état de la led. J'aimerais que à intervalle régulier l'arduino aille consulter la base SQL pour voir si l'état a changé.

D'après ce que j'ai compris, il n'est pas possible de se connecter directement en SQL. Ce que je pensais faire c'est sur une page PHP affichant l'état de la LED et donc que l'arduino aille récupérer l'état sur cette page.

Mais je ne vois pas comment faire.

Merci de votre aide

Bonjour,

J'ai bidouillé avec les bases de données mais uniquement dans le sens ou l'arduino alimente la BDD. Après j'exploite les données avec un prog en VB ou en PHP. Dans l'autre sens je n'ai jamais essayé.

Dans ton projet es-tu vraiment obligé de passer par une bdd ? Tu pourrais avoir un dialogue serveur-arduino.

Sinon les spécialistes du forum auront sûrement la solution...

++

C'est ce que j'avais commencé à faire, mais je me suis rendu compte que ça ne correspondait pas à ce que je voulais ...

Bonjour,

Le plus simple est de faire un script php qui affiche l’état de la led quand il est appelé.

Exemple :

<?php

if(!isset($_GET["led'"]))
  die("-1");

$led = intval($_GET["led'"]); 

$conn = mysql_connect("localhost", "username", "password");

if (!$conn)
  die("-1");

if (!mysql_select_db("dbname"))
  die("-1");

$sql = "SELECT etat FROM arduino WHERE led = $led";

$result = mysql_query($sql);

if (!$result)
   die("-1");

if (mysql_num_rows($result) == 0)
   die("-1");

$row = mysql_fetch_assoc($result);
echo $row["etat"];

mysql_free_result($result);

?>

Script Sql

CREATE TABLE arduino(
led INT(5) PRIMARY KEY,
etat INT(1)
);

Et il suffit d’utiliser l’exemple webClient arduino pour demander au serveur la page balbla.php?led=1 par exemple.
La page renverra le nombre qui correspond à la led voulu ou -1 en cas d’erreur.

Merci beaucoup ! J'aurais une petite question, il faudrait peut être que j'ouvre un nouveau sujet, je ne sais pas.

Pour l'exemple Webclient, ils mettent une adresse IP, est il possible de mettre une adresse web car je suis sur du mutualisé ?

Merci

Salut. Je n'ai pas encore reçu ma carte ethernet et je vais avoir le même problème que toi. Pas facile de trouver des réponses sur le sujet semble t'il. De plus, il semble qu'il n'y ai pas de solution simple, il faut passer par les DNS. J'ai trouvé cela : http://www.mcqn.com/files/Ethernet-DHCP-DNS.zip Cherche DNSExample dans l'archive. Il faut pas oublier d'inclure les .h Dans l'exemple tu verras, il y a l'IP qui est déclarés Mais il semble qu'ils utilisent quand même le hostname (www.google.com dans l'exemple). Redis-moi.

Finalement j'ai réussi grâce à l 'exemple arduino DnsWebClient. Merci jplaville, je n'avais pas pensé à regarder.

Comme j'avais des problèmes avec cet exemple, j'ai pris l'exemple donnée ici :http://arduino.cc/forum/index.php/topic,91642.msg688427.html#msg688427.

Bonne soirée

saraza: Finalement j'ai réussi grâce à l 'exemple arduino DnsWebClient. Merci jplaville, je n'avais pas pensé à regarder.

Comme j'avais des problèmes avec cet exemple, j'ai pris l'exemple donnée ici :http://arduino.cc/forum/index.php/topic,91642.msg688427.html#msg688427.

Bonne soirée

Salut.

En effet, l'exemple Arduino semple plus simple :)

J'ai pas bien compris, l'exemple DnsWebClient d'Arduino ne fonctionne pas ? L'autre exemple que tu donnes ne semble pas donner la solution !?