Pages: [1]   Go Down
Author Topic: php e arduino  (Read 918 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
...
Logged

lucadentella.it

Pages: [1]   Go Up
Jump to: