Bonjour bonjour,
J'ai dans la tête un petit projet : celui de faire descendre de mon plafond des petites enceintes d'un home cinéma et de contrôler la monter descente des enceintes via un site internet de ma conception.
Alors histoire de débuter "facile" je souhaitais juste dans un premier temps allumer des LEDs via des boutons sur mon site internet et le tout sans shield ethernet.
Cette étape est très proche (identique même) à ce qui à été fait sur ce poste : http://arduino.cc/forum/index.php/topic,55784.0.html je me suis d’ailleurs beaucoup appuyé sur les différents codes fournis dans ce poste pour le miens.
Voici le principe de fonctionnement de ma commande des LEDs :
un site en PHP avec deux boutons (allumer et éteindre) ====> quand on appuis sur allumer, le mot "on" est écrit dans un fichier texte, si l'on appuie sur éteindre le mot off remplace on dans ce fichier texte ====> un script python viens lire le fichier texte en revoie une valeur sur le port série (COM3) en fonction de ce qui est écrit dans le fichier texte =====> l'arduino lit les valeurs renvoyé sur le port série et agit en conséquence.
Alors pour le site WEB, tout va bien, il fonctionne et remplit bien le fichier texte comme voulu. C'est après que ça se complique, je n'arrive pas à savoir si le problème biens de mon script Python ou bien de mon programme arduino ...
J'ai l'impression que lorsque je lance le script python, il s’exécute une seul fois et s’arrête (mes cours de pythons sont bien loin, je ne me rappelle plus s'il y a quelque chose de spécial à faire pour que le script tourne en boucle, mais je vois rien de spécial dans le script donné par Chicotore).
De plus quand le programme arduino tourne sur l'arduino, si j'ouvre le moniteur série et que j'envoie une des valeurs qui commande l'allumage d'une LED (en rentrant la valeur à la main et en appuyant sur send) il ne se passe rien.
Voila voila je suis donc en plein désarroi =( si quelqu'un pouvais me filer un coup de main en jetant un oeil sur mes script Python et arduino (très courts) je lui en serrais éternellement reconnaissant
voici mes programmes :
Site PHP (lui fonctionne parfaitement) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="style1arduino.css" title="Style1" />
</head>
<body>
<div id="fondblanc">
<div id="hautpage">
<p><br/ >Mon site perso !</p>
</div>
<div id="menu">
<ul>
<li><a href="accueil.html">Accueil</a></li>
<li><a href="presentation.html">Présentation</a></li>
<li><a href="projet.html">Projets</a></li>
<li><a href="cv.html">C.V.</a></li>
<li><a href="arduino.php">Arduino</a></li>
</ul>
</div>
<div id="deco"></div>
<div id="main">
<div id="contenu">
<H3 ALIGN=CENTER> LED rouge </H3>
<?php
$fichier="rouge.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton1']))
{
$ouverture=fopen("$fichier","w");
fwrite($ouverture,"on");
fclose($ouverture);
}
?>
<form method="post" action="">
<center>
<input type="submit" name="boutton1" value="Allumer"><input type="submit" name="boutton2" value="eteindre"></center>
</form>
<center><?php
$fichier="rouge.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton2']))
{
$ouverture=fopen("$fichier","w");
fwrite($ouverture,"off");
fclose($ouverture);
}
?>
<form method="post" action="">
<H3 ALIGN=CENTER> LED bleu </H3>
<?php
$fichier="bleu.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton3']))
{
$ouverture=fopen("$fichier","w");
fwrite($ouverture,"on");
fclose($ouverture);
}
?>
<form method="post" action="">
<center><?php
$fichier="bleu.txt"; // Nom du fichier à modifier
if(isset($_POST['boutton4']))
{
$ouverture=fopen("$fichier","w");
fwrite($ouverture,"off");
fclose($ouverture);
}
?>
</form>
<center>
<input type="submit" name="boutton3" value="Allumer"><input type="submit" name="boutton4" value="eteindre"></center>
</form>
</form>
</div>
</div>
</div>
</body>
</html>
Code Python (là je suis bien moins sûr de son fonctionnement) :
import feedparser
import serial
import time
import urllib
b = 0
r = 0
def recup():
b1 = urllib.urlopen("C:\wamp\www\Test\bleu.txt") ## Récup des valables; 1 fichier par led
r1 = urllib.urlopen("C:\wamp\www\Test\rouge.txt") ## Récup des valables; 1 fichier par led
if r1.readline != "":
r = r1.readline()
if r == "on":
ser.write("97")
print b
if r == "off":
ser.write("98")
print b
b = b1.readline()
if b == "on":
ser.write("99")
print b
if b == "off":
ser.write("100")
print b
recup()
print "ouverture du port"
ser = serial.Serial()
ser.setPort("COM3")
ser.baudrate = 9600
ser.close()
ser.open()
print "port ouvert"
recup()
if (ser.isOpen()):
recup()
Et enfin le clou du spectacle : le programme arduino :
int rouge = 8;
int bleu = 9;
int val;
void setup()
{
pinMode(rouge, OUTPUT);
pinMode(bleu, OUTPUT);
Serial.begin(9600);
Serial.flush();
digitalWrite(rouge, LOW);
digitalWrite(bleu, LOW);
}
void loop()
{
if (Serial.available()) //va consulter le port sérial
{
val = Serial.read();
Serial.write(val);
if (val == 97)
{
digitalWrite(rouge, HIGH);
}
if (val == 98)
{
digitalWrite(rouge, LOW);
}
if (val == 99)
{
digitalWrite(bleu, HIGH);
}
else if (val == 100)
{
digitalWrite(bleu, LOW);
}
}
}
Merci de votre aide par avance ! 8)