Go Down

Topic: Problemas com Arduino+PHP (Read 4675 times) previous topic - next topic

kabixi

já alterei de "=" para "==" se esse foi o problema, mas continua dando o mesmo erro. o led somente pisca em vez de ficar ligado...

kabixi

Fabio vc falou de 3 possiveis erros, o do == ja tinha notado, mas e esse do <?php echo $PHP_SELF;?> e o chr(); o que seria esses erros? notei que existe um ; no antes do ?, e para enviar o código para o Arduíno retirei o chr() e continuou a mesma coisa, seria isso que  vc esta se referindo, pois de momento continua sem funcionar, estou até achando que pode ser alguma coisa de sistema operacional(Windows 7 Home Premium)?

fabio_h

Amigo, apenas coloquei em evidência as dicas dos outros colegas que tentaram ajudá-lo estão corretas...

1°  <form method="post" action="<?php echo $PHP_SELF;?>">
O conteúdo do action em um dos exemplos do Bruno Soares é vazio "" e foi como fiz porque com com seu ardumento dá erro.

2° Sugiro que você estude mais a linguagem de programação(o arduino no fundo é um C++ disfarçado),
No arduino você compara 
if (usbnumber = '1')   ; Esse '1' entre aspas quer dizer o caracter 1 que na tabela ASCII significa 49, então no PHP você tem que enviar o caracter 1, mas você manda
fwrite($fp, chr(1));
A função chr() pega o caracter referente aquela posição decimal 1, que na tabela ASCII não possui simbolo, apenas um nome SOH. Então pense, 49 é igual a 1? O correto seria

fwrite($fp, '1');

A minha parte PHP que rodou
Code: [Select]

<?php 
$Porta 
"com4";
if (isset(
$_POST["rcmd"])) { 
    
$rcmd $_POST["rcmd"]; 
switch (
$rcmd) { 
    case 
"desliga"
$fp =fopen($Porta"w+"); 
sleep(2);
fwrite($fp'1');

fclose($fp); 
    break; 
   case 
"liga"
        
$fp =fopen($Porta"w+"); 
sleep(2);
fwrite($fp'2');  
fclose($fp); 
break; 
default:
    } 


?>


<html>

<head><title>Controle Arduino</title>
</head>
<body>
<div align="center">
<form method="post" action="">
    <p>
      <input type="submit" value="desliga" name="rcmd" height="10%">
    </p>
   
    <p><br/>
      <input type="submit" value="liga" name="rcmd" height="10%"><br />

    </p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <body>
</form>
</div>
</center>
</body>
</html>



kabixi

Agradeço a Todos por terem me ajudado, consegui resolver os problemas do Arduino+PHP  , o grande problema estava no servidor apache, não estava se comunicando com a porta serial, ai foi só reinstalar o "Wampserv", e efetuar os ajustes nos códigos e deu tudo certo, segue os códigos que funcionarão:

Code: [Select]
<<Arduíno>>
int Pino = 13;
int usbnumber = 1 ;

void setup() {
    pinMode(Pino, OUTPUT); 
    Serial.begin(9600);
}
void loop() {
   if (Serial.available() > 0) {
        usbnumber = Serial.read();
   }
    if (usbnumber == '1') {
          digitalWrite(Pino, LOW); //desliga   
    }
    if (usbnumber == '2'){
          digitalWrite(Pino, HIGH); //liga
        }   
}




Code: [Select]

<?php 
$Porta 
"com4";
if (isset(
$_POST["rcmd"])) { 
    
$rcmd $_POST["rcmd"]; 
switch (
$rcmd) { 
    case 
"desliga"
$fp =fopen($Porta"w+"); 
sleep(2);
fwrite($fp'1');

fclose($fp); 
    break; 
   case 
"liga"
        
$fp =fopen($Porta"w+"); 
sleep(2);
fwrite($fp'2');  
fclose($fp); 
break; 
default:
    } 


?>


<html>

<head><title>Controle Arduino</title>
</head>
<body>
<div align="center">
<form method="post" action="">
    <p>
      <input type="submit" value="desliga" name="rcmd" height="10%">
    </p>
   
    <p><br/>
      <input type="submit" value="liga" name="rcmd" height="10%"><br />

    </p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <body>
</form>
</div>
</center>
</body>
</html>


Os códigos são as correções que o nosso amigo Fabio passou, Obrigado XD...
se precisar de algo tamos ai  ;)...

Numies

Olá a Todos

Peço desculpas desde já, visto ter adquirido um Arduino Uno apenas á dias, e não percebendo nada de programação tenho andado a ler uma serie de posts e tuturiais para me integrar minimamente.

Eu tenho instalado o windows xp + wampserver e coloquei os seus codigos na directoria www do wamp como codigo html e php, mas quando tento carregar na caixa de ligar nada acontece, apenas alterei a porta com que no meu caso é a COM11
Eu programei o codigo no IDE e quando vou a SerialMonitor carrego em 2 e liga o led 1 desliga por tanto a comunicação IDE/Arduino funciona.
Será que me podiam tentar esclarecer o que estarei a fazer mal.
O meu obrigado
Nuno

kabixi

aparece algum erro quando você aperta em algum botão, outra coisa, voce salvou o arquivo .php ou html, por que aqui ta funcionando .php, veja ai e me diga.

Numies

Olá Kabixi,

Tal como referi atras salvei os seus codigos na pasta www do wamp ou seja teste.html e teste.php só alterei a porta de serie para a COM11 que é a serial porta por mim utilizada.

Não existe qualquer funcionabilidade, clico no botão e fico na mesma pagina e não acontece nada no led.

kabixi

então é assim que vc ta abrindo:

http://localhost/teste.php



Numies

Não estou a abrir directamente pelo wamp

file:///C:/Programas/wamp/www/teste2.html

kabixi

pois o erro está ai meu amigo, vc esta acessando apenas um arquivo html e nao ao servidor de web, abre o arquivo .php e dentro do servidor que ficará mais ou menos assim:

http://localhost/teste.php

Go Up