Intensité led (Arduino-RPI) Python/PHP
Bonjour les amis,
Dans le cadre d'un projet d'un laboratoire d’électronique embarquée, j'ai relié en serial un Arduino et un Raspberry Pi.
Le but de mon exercice est de créer une page PHP pour changer l'intensité de la led grâce à un script python qui communique directement avec l'arduino et ses GPIOS.
L'arduino utilise le GPIO 3 et il est relié à une led. L'arduino est lui même relié en serial (en USB).
Voici les différents codes :
Arduino :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| int led = 3; // led à la pin 3
int i = 0; // valeur envoyé par le RPI
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
if (Serial.available() > 0) // si le câble est bien branché
{
i = Serial.read(); // lire la donnée du RPI
Serial.println(i, DEC);
}
analogWrite(led,i); // envoie la donnée à la led qui s'allume
delay(20);
} |
PHP :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<?php
$var = $_POST["intensite"]; // on assigne la valeur intensité du formulaire à var
exec("python /serial/intensite.py ".$var); // exécution du script python
?>
<html>
<body>
<form method="post">
<label> Veuillez entrer la valeur de l' intensite : </label>
<p><input type="text" name="intensite" /></p>
<button name="On">Confirmer</button>
</form>
</body>
</html> |
Python :
Code:
1 2 3 4 5 6 7 8
|
import sys
import serial // importation de la librarie SERIAL
ser = serial.Serial('/dev/ttyAMA0', 9600, timeout=1) // assigne le port qui relie l'arduino
print sys.argv[1] # first parameter
intensite = sys.argv[1] // prend le premier paramètre envoyé (donc l'intensité)
ser.write(intensite) // envoie la donnée vers l'arduino |
Au final ça ne fonctionne pas, je suis certain que la communication en serial fonctionne et que ma led est bien branchée. Par contre je suis débutant en PHP donc c'est possible que l'erreur vienne de là ...
J'espère que quelqu'un sera m'aider
Merci d'avance :)