LusoRobótica - Robótica em Português
Software => Software e Programação => Tópico iniciado por: tcustodio em 28 de Maio de 2009, 22:56
-
Boa noite,
preciso de implementar um sistema de comunicação entre um script de php e o arduino.
Não pesco nada de php, mas uns colegas de turma orientaram-me no básico, mas tenho um problema:
quero que o script php mande ligar um led, para isso, meti este código no arduino:
int ledPin = 13;
boolean estado = false;
int val;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (Serial.available()) {
val = Serial.read();
if ((val == 48) && (estado == false)) {
digitalWrite(ledPin, HIGH);
estado = true;
}
else if ((val == 48) && (estado == true)) {
digitalWrite(ledPin, LOW);
estado = false;
}
}
}
e, recorrendo a uma pesquisa no fórum oficial do arduino, fiz este script:
<?php
include "php_serial.class.php";
$arduino = new phpSerial;
$arduino->deviceSet("COM4");
$arduino->confBaudRate(9600); //Baud rate: 9600
$arduino->confParity("none"); //Parity (this is the "N" in "8-N-1")
$arduino->confCharacterLength(8); //Character length (this is the "8" in "8-N-1")
$arduino->confStopBits(1); //Stop bits (this is the "1" in "8-N-1")
$arduino->deviceOpen();
$arduino->sendMessage(chr(48));
$arduino->deviceClose();
?>
portanto, o script php devia mandar um caracter "0" (zero) e o led da porta 13 devia acender, mas não acende, quando corro o script, o arduino recebe dados, o led 13 acende e apaga-se logo de seguida... pelo terminal do IDE do arduino tudo funciona normalmente.
Sei que tenho algo de errado no script php, mas não sei o quê, algum de vós que ande nisto à mais tempo que eu consegue ver o que eu não vejo? :-[
-
eu n vi o teu script pk tou com pouca cabeça pa isso de momento, mais logo passo cá pra ver o que posso fazer..
de qualquer forma tenho uma duvida: tu usaste algum programa intermédio pra fazer a comunicação entre arduino e php ou foi directo? eu pergunto isto pk já aí postei uns exemplos de interacção de arduino com flash, mas tinha um programa a direccionar sockets pelo meio..
eu mais logo já vejo isto com mais calma.. :)
-
Boas. Olha aqui este super hiper mega blog, extremamente interessante e com informação ultra valiosa elevada ao infinito:
http://ricardo-dias.com/node/35 (http://ricardo-dias.com/node/35)
Lol. Estou a fritar.
-
Boas. Olha aqui este super hiper mega blog, extremamente interessante e com informação ultra valiosa elevada ao infinito:
http://ricardodias.wordpress.com/2008/12/01/arduino-e-php/ (http://ricardodias.wordpress.com/2008/12/01/arduino-e-php/)
Lol. Estou a fritar.
não é por nada, mas já tinha essa página do teu blog nos meus marcadores do firefox à bastante tempo ;)
mas não me consegui guiar por aí, mas não funciona. Este método que estou a usar parece estar QUASE a dar :(
-
Hmmm. Pois mas falta o quase. Eu testei o meu código e até j+a liguei LEDs à distância com XBee pelo PHP.
De qualquer forma, posta aí a class php que estás a usar. ;)
-
a minha única dúvida restou no programa que estás a usar para o php. os meus colegas disseram pra eu usar o easyphp, mas reparei que usas um diferente, será que é por isso?
-
Tu tens que ter um servidor de php instalado no teu pc, é só para o caso de estar a passar ao lado este facto.
-
metRo_, o EasyPHP é um pacote, tal como o XAMPP, que reúne servidor de Apache (interpreta o PHP), base de dados MySQL, entre outros.
O que uso é o XAMPP, mas também já utilizei o easyphp.
tcustodio, podes sempre tentar com o Xampp. ;)
-
eu sei, só estou a dizer isto porque ele fala em programa e isto não é bem programa e podia estar a confundir. No easyphp não sei mas no xamp tenho que colocar os ficheiros php numa pasta própria. Não te estás a esquecer disso?
-
não, não me estou a esquecer, é numa pasta do easyphp, estou a programar isto no netbeans, e consigo correr o script, simplesmente não dá resultado... vou tentar o xampp, ou tentar arranjar outro método de código. Senão limito-me a uma interface em Processing e pronto, melhor que nada
-
Usa o meu, que funciona ;)
-
Usa o meu, que funciona ;)
Usei o teu código e também há comunicação, mas apenas pisca, não fica aceso, enquanto que se for pela consola do IDE do arduino, funciona como quero.