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![]()
Partager