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 c : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 python : Sélectionner tout - Visualiser dans une fenêtre à part
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