Go Down

Topic: php e arduino (Read 1 time) previous topic - next topic

Google93

salve a tutti... per chi si ricorda avevo già postato in merito circa un mio progetto... ora sono qua per domandare un'altra cosa... quest'oggi cono finalmente riuscito a "mettere in rete" arduino... in pratica accento e spengo un led da internet tramite una pagina php e il programma serproxy che mi instrada quello che riceve da php verso la seriale.
questo è il codice di arduino:
int ledPin13 = 13; // pin a cui é collegato il led
int incomingByte;      // a variable to read incoming serial data into
void setup() {
   
   Serial.begin(9600); // initialize serial communication
 
   pinMode(ledPin13, OUTPUT);  // initialize the green LED pin as an output
   
}
void loop() {
   // see if there's incoming serial data:
   if (Serial.available() > 0) {
     
     incomingByte = Serial.read(); // read the oldest byte in the serial buffer
//Preform the code to switch on or off the leds
    if (incomingByte == '1') {
    digitalWrite(ledPin13, HIGH); //If the serial data is 0 turn red LED on
  }
   if (incomingByte == '0') {
   digitalWrite(ledPin13, LOW); //If the serial data is 1 turn red LED off
}

questo invece il codice php della pagina...

<?php


function sendToSerial($message){
$serproxy=true;
  if ($serproxy) {
      //$fp = fsockopen ("192.168.0.50", 2001, $errno, $errstr, 30); // specificare ip del server
      $fp = fsockopen ("localhost", 5333, $errno, $errstr, 30);
       if (!$fp) {
               echo "$errstr ($errno)";
            }
      else
      {
        $string = $message;
             fputs ($fp, $string ); // invia il messaggio sul socket
             $string=fgets($fp); // legge il valore restituito dalla seriale
             fclose ($fp);
      }
        }
}



//controlla quale azione é stata impostata
if (isset($_GET['action'])) {
     if ($_GET['action'] == "on") {
        //invia il comando di accensione del led 
        sendToSerial("1");
     
    } else if ($_GET['action'] == "off") {
        //invia il comando di spegnimento del led
        sendToSerial("0");
    }

}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Arduino : controllo seriale LED</title>
</head>
<body>
<h1>Arduino: controllo seriale LED</h1>
<?php //exec("serproxy.exe");?>
<p><a href="<?php echo $_SERVER['PHP_SELF'] . "?action=on" ?>">
Accendi il led</a></p>
<p><a href="<?php echo $_SERVER['PHP_SELF'] . "?action=off" ?>">
Spegni il led</a></p>
</body>
</html>


ora quello che vorei fare è accenderne uno o più... ho provato...ma di php non sono proprio in gamba e se qualcuno qua è così gentile da darmi una mano grazie!

p.s.: che tag ci sono in questo forum per poter vedere meglio la pagina... con questi 2 codici ci sarà un casino!

lucadentella

ciao

(usa il tag CODE, è quello con icona a "cancelletto")

la tua pagina di partenza ha due link (quelli che iniziano con a href...) i quali richiamano la stessa pagina aggiungendo action=on o action=off
nella parte php tu leggi il valore di "action" e se questo è on invii "1" alla seriale, se off invii "0"
lato arduino se da seriale ricevi 1 metti high il pin, se ricevi 0 lo metti low

a questo punto devi solo inventarti altri possibili comandi!
Ad es. potresti fare una cosa molto banale:

lato arduino:
ricevo A uscita 1 ON
ricevo B uscita 1 OFF
ricevo C uscita 2 ON
...

lato php:
link con action=on_1 invio in seriale A
link con action=off_1 invio in seriale B
link con action=on_2 invio in seriale C
...
lucadentella.it

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy