Go Down

Topic: Arduino Perdendo Comunicação com PHP (Read 1 time) previous topic - next topic

kabixi

Boa Tarde, estou tendo um problema com a comunicação com o PHP e o Arduíno,
consigo ligar e desligar uma porta no Arduíno por um certo tempo, de repente do nada ele não comunica mais.

Ai tenho que desligar o Arduíno e ligar novamente, assim volta a funcionar.    :~

Estou usando:
Arduino MEGA 1280, e PHP + Jquery Mobile, WAMPSERV.


Segue o Código :

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 
$comPort 
"com2"
if (isset(
$_POST["rcmd"])) { 
    
$rcmd $_POST["rcmd"]; 
switch (
$rcmd) { 
    case 
"1"
$fp =fopen($comPort"w+"); 
fwrite($fp,'1'); 
fclose($fp); 
    break; 
   case 
"2"
        
$fp =fopen($comPort"w"); 
fwrite($fp,'2'); 
fclose($fp); 
break;    
default:
die('???'); 

}
?>


<html>
<head>
<title>SAR - Sistema de Automacao Residencial WEB</title>
<link href="_css/jquery.mobile.css" type="text/css" rel="stylesheet" />
<script src="_js/jquery-1.4.3.min.js"></script>
<script src="_js/jquery.mobile-1.0a3.min.js"></script>
</head>
<form method="post" action="">
<body>

<div data-role="page">
<div data-role="header">
<h1>Controle Arduino</h1>
</div><!-- /header -->
<div data-role="content">
<!-- ON/Off -->
<div data-role="fieldcontain">
<label for="slider2">Liga/Desliga 13:</label>
<!--<select name="slider2" id="slider2" data-role="slider" onchange="$.post('arduino.php',{rcmd:this.value},function(data){$('#resposta').empty().append(data)});">-->
<select name="slider2" id="slider2" data-role="slider" onchange="$.post('formulario.php',{rcmd:this.value});">
<!--<select name="slider2" id="slider2" data-role="slider"> -->
<option value="1">Ligar</option>
<option value="2">Desligar</option>
</select>
</div>

</div><!-- /content -->

<div data-role="footer">
<h2>SAR - Sistema de Automação Residencial WEB</h2>
</div><!-- /header -->
</div><!-- /page -->
</form>
</body>
</html>





Wagner Sartori Junior

tenta assim:
Code: [Select]

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   
        } else if (usbnumber == '2') {
              digitalWrite(Pino, HIGH); //liga
        } 
   }
}


desta maneira você só muda o pino quando recebe alguma coisa. é bem estranho porque o código é simples.

kabixi

mas será se implica na comunicação?

Wagner Sartori Junior


kabixi

A comunicação do Arduíno, por que do nada a pagina Web não se comunica com o Arduíno,  vc pode clicar em ligar ou desligar que nao responde nada.

Wagner Sartori Junior

tenta colocar um LED piscando igual o exemplo "Blinky" no seu código e ver se o arduino está travando mesmo(o LED parar de piscar)... como eu disse é muito estranho o que está acontecendo.

kabixi

Bom coloquei ele "Blinky" fica piscando normal, nao parou nem um pouco, agora to preocupado, será se o PHP irá trabalhar bem com a porta serial. Por que ta estranho, o site funciona normal, mas não comunica com o Arduino.

Wagner Sartori Junior

O mega1280 tem reset automático. Toda vez que a porta serial é aberta no PHP ele reseta o seu arduino. Isto deve estar causando algum problema já que você está resetando ele a cada chamada na sua página PHP.

Como eu disse tem algumas maneiras de fazer isso mas nenhuma é muito simples como adicionar o código. Da uma procurada que você vai achar um método de tirar um resistor do seu mega e resolver o seu problema.

kabixi

ja estou utilizando um resistor.    :~

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