[RESOLU] Communication arduino - php

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Communication arduino - php

Re: [RESOLU] Communication arduino - php

par lalmat » 11 mai 2013, 15:24

ce type de mise à jour va alourdir pas mal la bande passante... entre le navigateur et le serveur web.

Mieux vaut appeler la page PHP à intervalle régulier pour obtenir la valeur des capteurs...

Je part du principe que tu as la fonction pour lire le port série de l'arduino (imaginons qu'elle s'appelle readArduino)

tu peux alors créer la page PHP Suivante (appelons la 'readArduino.php') :
<?php
function readArduino() {
  // Code PHP pour lire une ligne de ce qui est envoyé sur le port série de l'Arduino;
  return explode("\t",$line); // Transforme la ligne en tableau
}

try {
  $arduinoValues = readArduino();
  $json['isSuccess'] = true;
  $json['X'] = $arduinoValues[0];
  $json['Y'] = $arduinoValues[1];
  $json['Z'] = $arduinoValues[2];
  return json_encode($json);
}
catch (\Exception $e) {
  $json['isSuccess'] = false;
  $json['error'] = $e->getMessage();
  return json_encode($json);
}

Puis une page HTML (test.html) du style :
<!DOCTYPE html>
<html>
  <head>
    <title>Arduino Reader</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.0.min.js"></script>
    <script type="text/javascript">
      // Voir script dessous
    </script>
  </head>
  <body>
    <div id="maDivInfo"></div>
  </body>
</html>
Avec jQuery ca pourrait donner dans je JavaScript:
[javascript]
function getCapteurValue() {
var url = "readArduino.php";
$.getJSON(url, function(r)) {
if (r.isSuccess) {
$("#maDivInfo").html(r.X+","+r.Y+","+r.Z);
} else {
$("#maDivInfo").html("Erreur de lecture : "+r.error);
}
}
}
$(document).ready(function() {
setInterval("getCapteurValue()",500);
});
[/javascript]

Mais il faut aussi que ton arduino envoie rapidement ses valeurs sur le port série... Toutes les 50ms au lieu des 100ms (dernière ligne dans la fonction loop du code arduino) pour les premiers tests ca me parait pas mal.

Ensuite tu pourra baisser le délais de l'intervalle de 500ms à 100ms par exemple.

Re: Communication arduino - php

par madmax55 » 11 mai 2013, 10:28

C'est bon problème résolut , pour recevoir les données de mon accéléromètre il nous faut : http://www.doctormonk.com/2012/04/raspb ... duino.html

ainsi que le code arduino : ADXL3xx qui est dans le logiciel de programmation arduino Fichier/Exemple/Sensor/ADXL3xx

Pour obtenir les données que l'on peut voir sur l'image . Après tout sa , j'aimerais bien le mettre sur un php ou un html , pour le consulter via une page web dans un réseau local , et j'aimerais que sa soit assez " jolie " , dans un tableau qui s'actualisera en fonction des changements , es possible ?

Re: Communication arduino - php

par moogli » 10 mai 2013, 14:55

le code php que tu fournis, ou ceux indiqué dasn les liens de sirakawa son simple, dans les liens ils sont expliqué ligne a ligne, qu'est ce que tu ne comprend pas ?


je ne connais pas le module ARDUINO, il te faut par courir la doc pour voir comment il dialogue (dans les exemples il semble que la com soit à faire).

pour fgets http://www.php.net/fgets que te manque t'il ?


@+

Re: Communication arduino - php

par madmax55 » 10 mai 2013, 11:30

Donc je dois modifier le programme arduino et non le programme php c'est sa ?

Et peut tu me donnée plus d'explication sur le fget a quoi il sert ? comment s'en servir ? le placer après qu'elle balise ect

Re: Création d'un php besoin d'aide ( debutant )

par moogli » 10 mai 2013, 11:08

Tu as un exemple d'utilisation dans ton code.
Les exemples sont avec un fichier mais il faut faire une différence fgets travail sur une ressource fournit par fopen, dans ton cas la ressource c'est le dialogue que le port com, mais cela peux aussi être une socket, un flux http etc).

Quand au reste je pense qu'il te faut commencer par le programme de l'arduino afin qu'il réponde a tes demandes, la fait que tu regarde les tutos ;)

Ensuite tu as le principal de tes besoins dans ton code php pour réussir a avoir tes valeurs.


@+

Re: Création d'un php besoin d'aide ( debutant )

par madmax55 » 10 mai 2013, 10:47

Par contre petite question comment utiliser le fgets en regardant sur d'autre site j'ai vue qui faller un fichier .txt mais je ne comprend pas tous , quelqu'un pourrait m'expliquer svp ?

Re: Création d'un php besoin d'aide ( debutant )

par madmax55 » 10 mai 2013, 10:40

Oui mais rien ne s'affiche x) ! Je suis brancher sur les broches l'ace X = A3 et l'axe Y = A2 , D'accord un grand merci je teste sa et je reposte :)

Re: Création d'un php besoin d'aide ( debutant )

par moogli » 10 mai 2013, 10:31

Salut,

As tu testé ?

Il n'y a pas d'affichage dans ton code tu ne va pas pouvoir vérifier la chose ;)
Le port est bon ?

Le code du module semble afficher tout dans la méthode loop donc pas d'aide quand au fonctionnement.

Sinon, sur le principe je pense qu'il te faut un fgets après chaque fwrite pour récupérer l'affichage.


@+

Re: Création d'un php besoin d'aide ( debutant )

par madmax55 » 10 mai 2013, 09:53

Un grand merci pour tout ses sites ils me sont d'une grande utilité , par contre es que ce php est complet :
<?php
 exec("mode com3: BAUD=9600 PARITY=N data=8 stop=1 xon=off dtr=off");
 $fp = fopen("COM3", "w+");
 fwrite($fp, "<ReadAnalog|2>");
 sleep(2);
 fwrite($fp, "<ReadAnalog|3>");;
 sleep(1);
 $content = fgets($fp, 2096);
 fclose($fp);
 ?>
Avec un programme arduino :

Code : Tout sélectionner

/* ADXL3xx Reads an Analog Devices ADXL3xx accelerometer and communicates the acceleration to the computer. The pins used are designed to be easily compatible with the breakout boards from Sparkfun, available from: http://www.sparkfun.com/commerce/categories.php?c=80 http://www.arduino.cc/en/Tutorial/ADXL3xx The circuit: analog 0: accelerometer self test analog 1: z-axis analog 2: y-axis analog 3: x-axis analog 4: ground analog 5: vcc created 2 Jul 2008 by David A. Mellis modified 30 Aug 2011 by Tom Igoe This example code is in the public domain. */ // these constants describe the pins. They won't change: const int groundpin = 18; // analog input pin 4 -- ground const int powerpin = 19; // analog input pin 5 -- voltage const int xpin = A3; // x-axis of the accelerometer const int ypin = A2; // y-axis const int zpin = A1; // z-axis (only on 3-axis models) void setup() { // initialize the serial communications: Serial.begin(9600); // Provide ground and power by using the analog inputs as normal // digital pins. This makes it possible to directly connect the // breakout board to the Arduino. If you use the normal 5V and // GND pins on the Arduino, you can remove these lines. pinMode(groundpin, OUTPUT); pinMode(powerpin, OUTPUT); digitalWrite(groundpin, LOW); digitalWrite(powerpin, HIGH); } void loop() { // print the sensor values: Serial.print(analogRead(xpin)); // print a tab between values: Serial.print("\t"); Serial.print(analogRead(ypin)); // print a tab between values: Serial.print("\t"); Serial.print(analogRead(zpin)); Serial.println(); // delay before next reading: delay(100); }

Re: Création d'un php besoin d'aide ( debutant )

par sirakawa » 09 mai 2013, 20:15

Il y a plus complet et plus clair
http://ediy.com.my/index.php/blog/item/ ... hp-easyphp
mais ça suppose de connaître le langage arduino pour passer des commandes

Re: Création d'un php besoin d'aide ( debutant )

par madmax55 » 09 mai 2013, 19:57

Un grand merci :) , Par contre on pourrais me confirmer que c'est le "bon" php , vue que je suis vraiment pas fort dans cette discipline ?

Re: Création d'un php besoin d'aide ( debutant )

par sirakawa » 09 mai 2013, 10:08

Il me semble avoir déjà vu la question....
Pas le temps de faire plus pour l'instant mais google arduino php donne ça entre autres:
http://benjamin-balet.info/developpemen ... t-arduino/

Communication arduino - php

par madmax55 » 09 mai 2013, 09:41

Bonjours , je suis débutant et j'y connais vraiment pas grand chose en php , c'est pour sa que je m'adresse sur ce forum qui ma l'air assez spécialiste dans l'œuvre .

Alors j'aimerais faire un php pour ma raspberry pi qui reçoit les données d'une carte arduino avec les broches communiques des deux carte RX et TX
Le programme de l'arduino est un programme qui permet de recevoir l'inclinaison d'un accéléromètre , le but de tout sa c'est d'avoir les données sur une page web que je peut consulter en réseau local , voila vraiment besoin d'un gros coup de main Merci

Et voila le programme qui a dans ma carte arduino : http://arduino.cc/en/Tutorial/ADXL3xx


Moderation avec un bon titre tu attirera plus de personne