Pages: [1] 2 3 4   Go Down
Author Topic: Arduino + Raspberry pi  (Read 5133 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjours a tous  , j'ai un petit soucie dans mon projet .  smiley-red
Le projet : je veut avoir les données d'un accéléromètre a signal analogique sur un Fichier html de ma raspberry pi , or je passe par l'intermédiaire d'une carte arduino .
Voici les programmes que j'ai trouver sur le web :

Programme arduino :
Code:
------------------------------domotique.ino

// Speak to arduino with PHP
// CC BY-NC-SA 2012 lululombard
// Made to work with statebeta.php and serial.sh
// Not yet commented, it's beta !

void setup() {
  Serial.begin(115200);
  for (byte i = 2; i <= 13; ++i)
    pinMode(i, OUTPUT);  
  }

void loop() {
  if (Serial.available()) {
    byte cmd = Serial.read();
    switch (cmd) {
    case '1':
      Serial.println();
      for (byte i = 2; i <= 13; ++i){
        Serial.print(digitalRead(i));
        if (i != 13)
        Serial.write(';');
      }
      break;
    case '2':
      for (byte i = 0; i <= 25; ++i){
        Serial.println("BOOT FILLING LINES FOR SCREEN");
      }
      break;

    case 'a'...'l': // GCC only (Not C standard)
      byte pin = cmd - 'a' + 2;
      if (digitalRead(pin) == LOW)
        digitalWrite(pin, HIGH);
      else
        digitalWrite(pin, LOW);
      break;
    }
  }
}

Php et fichier sh pour la raspberry pi :
Code:
---------------------statebeta.php

<?php
// Speak to arduino with PHP
// CC BY-NC-SA 2012 lululombard
// You need serial.sh with chmod 777 in /var/www to use this. 
// You need to disable terminal on /dev/ttyAMA0 : "nano /boot/cmdline.txt", and delete "console=ttyAMA0,115200 kgdboc=ttyAMA0,115200".  CTRL+X to save.
// Then, "nano /etc/inittab", go to the last line and add "#" in front of "2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"
// Made to work with "domotique.ino", with ardunio connected to rx/tx of the GPIOs
// Not yet commented, as the name says, it's beta !

        
$screen_name "arduino";
        
$user "www-data";

        
$list shell_exec("ls /var/run/screen/S-".$user);
        if (
strpos($list$screen_name) == FALSE) {
                
exec('screen15
 
                -dmS arduino /dev/ttyAMA0 115200'
);
                
sleep(1);
                
exec('screen -S arduino -X height 1');
                
exec('/var/www/serial.sh 2');
                
header('Location: '.$_SERVER['PHP_SELF']);
        }
        elseif (
$_GET['pin']) {
                
$allowed = array("a""b""c""d""e""f""g""h""i""j""k""l");
                if (
in_array($_GET['pin'], $allowed)) {
                        
exec('/var/www/serial.sh '.$_GET['pin']);
                        
header('Location: '.$_SERVER['PHP_SELF']);
                }
                else {
                       echo 
"Caractere non pris en charge.<br />";
                }
        }
         else {
         
exec('/var/www/serial.sh 1');
         
exec('screen -S arduino -X hardcopy /var/www/status.txt');
         
$serial exec('tail -1 /var/www/status.txt');
         
$status explode(";"$serial);
 
         
$on="ON";
         
$off="OFF";
         
$checked_pin 0;
         foreach (
$status as $actual_pin) {
                if(
$actual_pin == 1){$text[$checked_pin]=$off;}else{$text[$checked_pin]=$on;}
                
$checked_pin++;
        }
        
$pin 2;
        
$checked_pin 0;
        
$pins_order = array("a","b","c","d","e","f","g","h","i","j","k","l");
        foreach (
$text as $actual_pin) {
                echo 
"PIN ".$pin.": ".$status[$checked_pin]." <a href=\"?pin=".$pins_order[$checked_pin]."\">"$actual_pin ."</a><br />";
                
$checked_pin++;
                
$pin++;
         }
         }
?>


-------------------------------serial.sh


#!/bin/bash
# Made to work along with statebeta.sh

if [ $# = 0 ]
then
echo Usage : $0 *data*
else
screen -S arduino -X eval "stuff $1"
echo screen -S arduino -X eval "stuff $1"
fi

Voila maintenant la question est comment avoir les données sur un HTML , je voudrais comprendre comment sa marche et que mettre en place pour que cela fonctionne car je débute dans le milieux smiley-sweat . Un grand merci pour vos réponses   smiley-lol
« Last Edit: May 05, 2013, 12:05:53 pm by madmax55 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Si je te suis bien, tu aimerais faire un serveur web sur ton raspberry qui affiche l'état de ton accéléromètre sur une page web ?

Si oui, est-ce que tu as déjà mis en place le serveur web et affiché une page html classique ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui j'ai déjà mis en place un serveur apache et fait un html+css . Or j'ai trouver sur internet les .ino , .php et .sh qui en théorie fait en sorte de recevoir les données de l'accéléromètre brancher a l'arduino , or mon serveur ne veut pas lire le .php


* Capture.PNG (1107.87 KB, 681x969 - viewed 43 times.)
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu as quoi comme distribution sur ton raspberry ? une mini debian ?
Est-ce que tu as installé php ? (qui s'installe séparément d'apache)
Que te donne le résultat d'une page index.php avec
Code:
<?php
  phpinfo
();
?>

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors j'ai comme distribution debian , je ne suis pas sur d'avoir installer le php , par contre je veut bien la ligne de code  smiley-sweat Merci . Enfaite ton index.php répond a toute les questions ^^


* Capture.PNG (48.94 KB, 651x903 - viewed 35 times.)
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon, alors apache et php fonctionnent :-)

pour installer php c'était apt-get install php5

Est-ce que ton application fonctionne ? ou ça coince encore qq part ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Non il doit avoir une couille dans le programme car en essayant d'afficher le fichier statebeta.php , voila ce qui m'affiche sa  smiley-cry


* Capture.PNG (18.68 KB, 843x300 - viewed 42 times.)
Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Essaie de placer la commande

die("OK");

tout en haut de ta page php. Die interrompt le script et t'affiche ok

si tu vois le OK alors déplace le plus bas dans le code petit à petit cela
te permettra de voir jusqu'ou le script s'exécute correctement et de
trouver la ligne qui provoque l'erreur.

Si d'entrée tu vois pas le OK c'est qu'il trouve pas ta page. essaie
alors d'affiche la page avec le phpinfo à nouveau en la plaçant de le
même dossier.
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1968
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
déjà ou as tu mis cette page? dans le /var/www/ ou dans un autre répertoire?
par ce que si tu as mis le dezip dans le même répertoire, ca doit se trouver dans /var/www/Arduino-IO-master donc à l'ip http://xxxx/Arduino-IO-master/statebeta.php
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Marcha : J'ai essaye de mettre die("OK"); mais en affichant la mage toujours la même page erreur :/

Infobarquee : Je suis dans le répertoire /var/www a la base  mais en essayant de mettre un dossier "Arduino-IO-master" comme tu peut le voir dans les images , ne marche pas plus ^^


* Captgsfure.PNG (43.6 KB, 966x340 - viewed 29 times.)

* Capture.PNG (37.02 KB, 604x469 - viewed 29 times.)
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1968
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

tu as bien suivi les instruction?
Quote
// Speak to arduino with PHP
// CC BY-NC-SA 2012 lululombard
// You need serial.sh with chmod 777 in /var/www to use this.
// You need to disable terminal on /dev/ttyAMA0 : "nano /boot/cmdline.txt", and delete "console=ttyAMA0,115200 kgdboc=ttyAMA0,115200". CTRL+X to save.
// Then, "nano /etc/inittab", go to the last line and add "#" in front of "2:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100"
// Made to work with "domotique.ino", with ardunio connected to rx/tx of the GPIOs
// Not yet commented, as the name says, it's beta !

je vais tester sur mon rasp pour voir
Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1968
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bon alors, je viens de tester, il manque quelque chose.
dans les logs on retrouve ca
Quote
/var/www/serial.sh: line 8: screen: command not found
ls: cannot access /var/run/screen/S-www-data: No such file or directory
sh: 1: screen: not found
sh: 1: screen: not found
/var/www/serial.sh: line 8: screen: command not found
ls: cannot access /var/run/screen/S-www-data: No such file or directory
sh: 1: screen: not found
sh: 1: screen: not found
/var/www/serial.sh: line 8: screen: command not found
ls: cannot access /var/run/screen/S-www-data: No such file or directory
sh: 1: screen: not found
sh: 1: screen: not found
/var/www/serial.sh: line 8: screen: command not found
ls: cannot access /var/run/screen/S-www-data: No such file or directory
sh: 1: screen: not found

alors déjà comme dit plus haut, il manque des trucs
faire un
Quote
apt-get install screen
puis
Quote
chmod +x serial.sh
chown www-data:www-data statebeta.php
chown www-data:www-data serial.sh
visudo
ajouter à la fin du fichier
www-data ALL=(ALL) NOPASSWD: ALL
plus d'erreur de log après
« Last Edit: May 04, 2013, 06:25:02 am by infobarquee » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Après avoir fait toutes tes manipes , ça me donne toujours le même résultat :/ . Je vous envoie des photos de mon installations voir si elle est bonne ou pas
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Voila les photos .


* IMG_20130504_141730.jpg (28.03 KB, 448x336 - viewed 36 times.)

* IMG_20130504_141735.jpg (27.02 KB, 448x336 - viewed 36 times.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En essayant de compiler le php sous geany il m'affiche sa . Or je ne sais pas a quoi cela correspond , si quelqu'un peut m'aider :/


* Capture.PNG (106.09 KB, 1034x792 - viewed 33 times.)
Logged

Pages: [1] 2 3 4   Go Up
Jump to: