Pages: [1]   Go Down
Author Topic: PHP Serial e comunicazione con Arduino  (Read 64 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve a tutti,
sto lavorando ad un progetto per la scuola con Arduino Uno, il quale si interfaccia con un sito in PHP (tutto questo in locale).
Il tutto funziona correttamente se il codice php invia un singolo carattere o cifra (es.: 1, 2, 3... oppure a, b, c...) ad arduino e mi fa accendere/spegnere il LED correttamente.
Il problema viene quando voglio inviare una stringa o un numero intero ad Arduino, ovviamente imposto sia lo sketch che il codice in php con la stessa variabile, esempio: "100".
Il monitor seriale di arduino mi restituisce i seguenti valori (che è il codice ascii): 49 48 48
invece di "LED accesso"

Vi posto il codice della pagina in PHP:
Code:
<?php
error_reporting
(E_ALL);
ini_set("display_errors"1);
define("PORT","/dev/ttyACM0");
 
if (isset(
$_GET['action'])) { 
        include 
"PhpSerial.php";
    
$serial = new phpSerial;
    
$serial->deviceSet(PORT);
        
$serial->confBaudRate(9600);
        
$serial->confParity("none");
        
$serial->confCharacterLength(8);
        
$serial->confStopBits(1);
        
$serial->confFlowControl("none");
        
$serial->deviceOpen();
        if (
$_GET['action'] == "on") { 
            
$serial->sendMessage('100');
    } else if (
$_GET['action'] == "off") { 
            
$serial->sendMessage('101'); 
        } 
    
$read $serial->readPort();
    print 
$read;
        
$serial->deviceClose(); 
}
 
?>

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta charset="utf-8">
<title>Test Arduino</title>
</head>
<body>
<br>
<h1>Test Arduino</h1>
 
<a href="<?=$_SERVER['PHP_SELF'] . "?action=on" ?>">
<button style="width:100px""><h1>ON</h1></button></a>
<a href="<?=$_SERVER['PHP_SELF'] . "?action=off" ?>">
<button style="width:100px""><h1>OFF</h1></button></a>
</body>
</html>

e il codice di arduino:
Code:
int LED = 13;
int val;
void setup() {
  pinMode(LED,OUTPUT);
  Serial.begin(9600);
}
 
void loop () {
  if (Serial.available() > 0) {
   
    val = Serial.read();
   
    if (val == '100') {
      Serial.print(val);
      digitalWrite(LED,HIGH);
      Serial.println("LED acceso");
    }
   
    else if (val == '101) {
      digitalWrite(LED,LOW);
      Serial.println("LED spento");
    }
   
    else {
      Serial.println(val, DEC);
   
    }
  }
}

Questo è il codice che dovrebbe funzionare ma arduino riconosce un carattere alla volta.
Spero possiate aiutarmi presto,
grazie anticipatamente!

(Spero di aver messo tutto ciò che vi serve per capire il mio problema)
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 79
Posts: 4666
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti invitiamo a presentarti qui: http://forum.arduino.cc/index.php?topic=113640.0
e a leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: http://forum.arduino.cc/index.php?topic=146152.0
- qui le pinout delle varie schede by xxxPighi: http://forum.arduino.cc/index.php?topic=151646.0
- qui una serie di link utili: http://forum.arduino.cc/index.php?topic=126861.0
Logged

my name is IGOR, not AIGOR

Pages: [1]   Go Up
Jump to: