collapse

* Posts Recentes

é preciso ter cuidado com ESD? por edeweld
[Ontem às 23:44]


Potênciometro 4.7 ou 5 KOhm com switch por brunus
[Ontem às 19:35]


Bibliotecas para arduino e drivers de stepper - o problema da 'distracção' por SerraCabo
[Ontem às 02:12]


Zener BZW04-105? por brunus
[11 de Dezembro de 2018, 17:34]


Artigo 11, 13 e os restantes por jm_araujo
[10 de Dezembro de 2018, 11:05]


Compra Colectiva Mouser N3-2018 (limite 25 Nov) por Hugu
[10 de Dezembro de 2018, 01:07]


Ajuda para reparar Luzes de LED de Natal por brunus
[09 de Dezembro de 2018, 00:59]


Como reproteger as pontas de cobre do ferros de soldar? por brunus
[09 de Dezembro de 2018, 00:12]


Usar steppers de 5 pontas como se fossem de 4 pontas por SerraCabo
[08 de Dezembro de 2018, 21:18]


LusoRobótica - Website - Estado actual por Tech_JA
[06 de Dezembro de 2018, 09:18]

Autor Tópico: Arduino and PHP  (Lida 1330 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline kerwac

  • Mini Robot
  • *
  • Mensagens: 101
Arduino and PHP
« em: 01 de Novembro de 2012, 17:50 »
Boa tarde

Estou aqui com um problema e parece não perceber aonde está o erro.
É possivel obter ajuda?


Estou  a utilizar o widows 7 e o xamp para server. Ao clicar no site no botao desbloquear o servo roda.Mas estou  a obter o erro""Warning: fclose() expects parameter 1 to be resource, null given in C:\xampp\htdocs\Arduino\seguranca.php on line 50##

Código Arduino:
#include <Servo.h>
#define VERMELHO 2
#define VERDE 4

Servo objeto_Servo ;

void setup()
{

  Serial.begin(9600);

  objeto_Servo.attach(10);
  objeto_Servo.write(0);
  pinMode(VERMELHO, OUTPUT);
  pinMode(VERDE, OUTPUT);
  digitalWrite(VERMELHO, HIGH);
  digitalWrite(VERDE, LOW);

}

void loop()
{
  char senha;
  senha = Serial.read();
 

  if(senha == '1')
  {
     desbloqueia_Sistema();
  }
  else
  if(senha == '2')
  {
    bloqueia_sistema();
  }


}
void desbloqueia_Sistema()
{

    Serial.println("Sistema Desbloqueado");
    digitalWrite(VERMELHO, LOW);
    digitalWrite(VERDE, HIGH);
    objeto_Servo.write(90);
}
void bloqueia_sistema()
{
   Serial.println("Sistema Bloqueado");
    digitalWrite(VERMELHO, HIGH);
    digitalWrite(VERDE, LOW);
    objeto_Servo.write(0);
 
}


Código PHP:
<?php

   define('SENHA_DESBLOQUEIO', 123456);
   define('SENHA_CORRETA', 1);
   define('BLOQUEAR', 2);

   $senha = $_POST['txtSenha'];
   $contador = 3;

   if($senha == SENHA_DESBLOQUEIO)
   {
      //No windows basta mudar a porta.
           //$porta = fopen("COM3", "w");/dev/ttyUSB0
      $porta = fopen("COM3","w");
      if(!$porta)
      {
         echo "ERRO: A porta serial nao pode ser aberta!
               Verifique as permissoes da porta";
      }
      else
         fwrite($porta,SENHA_CORRETA);
         echo "O sistema foi destravado
               e o acesso foi permitido";
        fclose($porta);
   }
   else
      echo "ERRO: Senha INCORRETA";

   if($senha == BLOQUEAR)
   {
      $porta = fopen("COM3","w");
      if(!$porta)
      {
         echo "ERRO: A porta serial nao pode ser aberta!
               Verifique as permissoes da porta";
      }
      else
         fwrite($porta,BLOQUEAR);
}
   fclose($porta);

?>

Podemos não voltar.Mas vamos a todas.

Offline calibre12

  • Mini Robot
  • *
  • Mensagens: 1
Re: Arduino and PHP
« Responder #1 em: 01 de Novembro de 2012, 20:48 »
Penso que o problema estará no facto de estar a fazer o fclose 2 vezes e ao chegar ao ultimo fclose (quase no fim do script) a $porta já não existir. Talvez fosse solução, apenas usar o fclose apenas no final do script.

Além disso penso que no seguinte bloco de código, faltem as { } de modo a que as três linhas de código façam parte do bloco do "else":

else
{ // falta esta chaveta
     fwrite($porta,SENHA_CORRETA);
     echo "O sistema foi destravado e o acesso foi permitido";
     fclose($porta);
} // falta esta chaveta

Sem estas chavetas, o echo e o fclose são executadas mesmo que não tenha sido possivel abrir a porta.

Espero ter ajudado.