Go Down

Topic: comunicare valori con arduino da php (Read 975 times) previous topic - next topic

izzusan

ciao ragazzi sono nuovo in questo forum e ho cominciato a pasticciare con arduino.

vi spiego il mio fantastico problemino, sto facendo un piccolo programmino con degli interruttori. i quali quando mi siedo su una sedia l'arduino mi butta fuori dei valori, e fin qui tutto ok!!!

ora devo leggerli con phpd dei valori...

io uso win xp e utilizzo questo codice e uso la classe: php_serial.class.php


<?php


/* Simple serial relay script for turning my sprinkler system on and off from the web!

Utilizes the PHP Serial class by Rémy Sanchez <thenux@gmail.com> (Thanks you rule!!)
to communicate with the QK108/CK1610 serial relay board!

*/


//check the GET action var to see if an action is to be performed
if (isset($_GET['action'])) {
	
//Action required
	

	
//Load the serial port class
	
require(
"php_serial.class.php");
	

	
//Initialize the class
	
$serial = new phpSerial();

	
//Specify the serial port to use... in this case COM1
	
$serial->deviceSet("COM3");
	

	
//Set the serial port parameters. The documentation says 9600 8-N-1, so
	
$serial->confBaudRate(9600); //Baud rate: 9600
	
$serial->confParity("none");  //Parity (this is the "N" in "8-N-1")
	
$serial->confCharacterLength(8); //Character length (this is the "8" in "8-N-1")
	
$serial->confStopBits(1);  //Stop bits (this is the "1" in "8-N-1")
	
$serial->confFlowControl("none"); //Device does not support flow control of any kind, so set it to none.

	
//Now we "open" the serial port so we can write to it
	
$serial->deviceOpen();

	
//Issue the appropriate command according to the serial relay board documentation
	
if (
$_GET['action'] == "on") {
	
	
//to turn relay number 1 on, we issue the command 
	
	
//$serial->sendMessage("1");
	
	
 
     
// Or to read from
     
print $serial->readPort();
     
    
	

	
} else if (
$_GET['action'] == "off") {
	
	
//to turn relay number 1 off, we issue this command
	
	
$serial->sendMessage("0");
	
}
	

	
//We're done, so close the serial port again
	
$serial->deviceClose();

}



/*
$fp = fopen('COM3', 'r+');

if(!$fp){

echo"Port not accessible";

}else{

echo"Port COM3 opened successfully";

}

$buffer = fgets($fp);

echo"Read from buffer: $buffer";

*/
?><!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>Sprinkler System Controller</title>
</head>
<body>

<h1>Sprinkler System Controller</h1>
<p><a href="<?php print $_SERVER['PHP_SELF'] . "?action=on" ?>">Click here to turn the system on.</a></p>
<p><a href="<?php print $_SERVER['PHP_SELF'] . "?action=off" ?>">Click here to turn the system off.</a></p>

</body>
</html>




pero' non legge nulla ... possibile che nn supporti win in lettura??

ke altre soluzioni posso adottare????

grazie a tutti in anticipo :smiley-surprise:

exurgit

Da quello che ho capito il web server con php lo devi installare su un server collegato su una specifica com sul quel server ad arduino poi dentro arduino devi creare un applicazione che comandi i led/luci o quello che vuoi tu in base hai dati inviati. Sarei felice di essere smentito, ma creado che questo è l'unico modo di cominicare con il pc e l'arduino.

Mauro_Titan

ma come sono collegati Arduino e il Pc ?
tramite cavo USB o tramite Ethernet ?

Se e' come USB secondo me la soluzione piu' semplice e' creare dua applicazioni differenti ..

Una su Arduino che Legge lo stato dell'interruttore e lo invia su seriale
Una su Pc che puo' esser fatta con PHP (su Linux perche' non so se c'e' PHP con lo shermo dos ) .. cmq. un programma che riceve i dati e li salva su un files .
Ultimo programma quello del server PHP che quando carichi la pagina ti estrae i dati dal files scritto.

Spero di esser stato chiaro e utile.
Ciaoooo.

gnusso

yes confermo, serve:

- php server installato su xp o usi IIS oppure APACHE
- su MAC us MIMP
- ubuntu penso si chiami LIMP o una cosa simile,

poi bisogna scaricare la libreria metterla nella stessa directory.

a questo punto inizializzare la seriale, io sono riuscito mandare dati ad arduino ma non a leggerli ...
il problema pare che arduino quando si chiude una connessione seriale es. chiudi il monitor integrato lui resettata la connessione ... ci deve essere il modo di saltarci fuori ...

Go Up