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