Go Down

Topic: Problemas com Arduino+PHP (Read 4828 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
 


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