Go Down

Topic: Récupérer une information d'une base sql (Read 2009 times) previous topic - next topic

saraza

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

Michel_B

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...

++

saraza

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

skywodd

#3
Mar 04, 2012, 01:45 pm Last Edit: Mar 06, 2012, 07:31 pm by skywodd Reason: 1
Bonjour,

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

Exemple :
Code: [Select]

<?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
Code: [Select]

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.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

saraza

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

jplaville

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.

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

jplaville


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 !?

Go Up