Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Controlando um Arduino pelo PHP

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Controlando um Arduino pelo PHP

    No PHP é possível se comunicar com a portal serial utilizando a função fopen(), Portanto é muito fácil controlar o Arduino através de uma página PHP.

    Segue o exemplo abaixo:

    Circuito:



    Como você pode ver, esse circuito é bem simples, Apenas um resistor, 2 jumpers e uma led.

    Arquivo PHP:

    Código PHP:
    <?php
    $enviou 
    $_POST["enviou"];

    //Variáveis que vieram do formulário, Controlam o ligamento e desligamento das leds na protoboard
    $ligar $_POST["ligar"];
    $desligar $_POST["desligar"];


    if(
    $enviou == "sim"//Verifica se usuário enviou formulário
    {
        if(
    $ligar == "LIGAR LED"//Envia informação para a porta serial que será lida pelo arduino
        
    {
            
    $porta fopen("COM4","w"); //COM4 é minha porta serial, Troque pela sua.
            
    fwrite($porta,"l"); //Liga led
            
    echo("LED LIGADA");
        }
        else if(
    $desligar == "DESLIGAR LED")
        {
            
    $porta fopen("COM4","w");
            
    fwrite($porta,"d"); //Desliga led
            
    echo("LED DESLIGADA");
        }
    }


    ?>

    <html>
    <head>
    <title>Controlando o arduino pelo PHP</title>

    </head>
    <body>

    <form method="post" action="<?php echo($_SERVER["PHP_SELF"]); ?>">
        <input type="submit" value="LIGAR LED" name="ligar">
        <input type="submit" value="DESLIGAR LED" name="desligar">
        <input type="Hidden" value="sim" name="enviou">
    </form>

    </body>
    </html>
    Queremos que ao clicar no botão "ligar led" ou "desligar led", A led do arduino acenda ou apague.

    Não vou entrar em detalhes sobre o script, Pois é bem simples e está bem comentado.

    Agora vamos ao Arduino:

    Código:
    /*
      Script desenvolvido por Lucas Santos da Silva
      
      Feito para controlar o arduino através de uma página php, Contato: chamycal@gmail.com
    */
    
    int led = 8; //Pino onde se localiza a led
    char valores; //Irá receber informações vindas do php pela porta serial 
    
    void setup()
    {
      //Configura pino para saída de energia
      pinMode(led,OUTPUT);
      
      Serial.begin(9600); //Prepara a porta serial para ser lida
    }
    
    void loop()
    {
      
      valores = Serial.read(); //Lê as informações vindas do PHP
      
      if(valores == 'l') //Se for l então liga a led
      {
        digitalWrite(led,HIGH);
      }
      else if(valores == 'd')
      {
       digitalWrite(led,LOW);
      }
      
    
    }
    Como você viu, Controlar o arduino através do PHP é bem simples.

    abrs
    "Não me sinto obrigado a acreditar que o mesmo Deus que nos dotou de sentidos, razão e intelecto, pretenda que não os utilizemos."
    - Galileu Galilei

  • Font Size
    #2
    Muito bom , vlw pelo código, fiz um curso de arduino e isso ai vai me ajuda mais ainda!

    abrass

    Comment


    • Font Size
      #3
      Otimo cara, muito obrigado
      "If you're good at something, never do it for free".
      Joker

      Não, eu não estou aqui para financiar a sua empresa!!!

      Comment


      • Font Size
        #4
        Hi.

        Há seus contras de usar PHP (desta forma) para isso.

        Se você tá pegando informações do usuário por $_POST, significa que o PHP tá integrado com algum webserver. Desta forma, por segurança, web servers devem rodar com menos permissões, ou seja, id/uid (user e group) diferentes. Dentre as restrições impostas, não podemos acessar a porta serial.

        Em suma eu diria que só funcionou porque você rodou o webserver como root ou tá usando Windows.

        []'s
        Desenvolvedor Perl, PHP, .NET (C#, VB.NET, ASP.NET), Java (J2EE), Shell Script, JavaScript/Ajax, C, amante de Linux e noob.

        twitter | last.fm

        Comment


        • Font Size
          #5
          Sim, é necessário estar logado como usuário root para ler ou escrever na porta serial (no Linux ou Windows), Mas eu não vejo pontos negativos em fazer isso, Afinal a idéia é utilizar isso em um servidor local para pequenas aplicações no Arduino.
          "Não me sinto obrigado a acreditar que o mesmo Deus que nos dotou de sentidos, razão e intelecto, pretenda que não os utilizemos."
          - Galileu Galilei

          Comment


          • Font Size
            #6
            tem jeito de fazer a comunicação por socket tbm


            "Só Deus pode me julgar" 2Pac Eterno.


            Comment


            • Font Size
              #7
              Postado Originalmente por Chemical Ver Post
              No PHP é possível se comunicar com a portal serial utilizando a função fopen(), Portanto é muito fácil controlar o Arduino através de uma página PHP.

              Segue o exemplo abaixo:

              Circuito:



              Como você pode ver, esse circuito é bem simples, Apenas um resistor, 2 jumpers e uma led.

              Arquivo PHP:

              Código PHP:
              <?php
              $enviou 
              $_POST["enviou"];

              //Variáveis que vieram do formulário, Controlam o ligamento e desligamento das leds na protoboard
              $ligar $_POST["ligar"];
              $desligar $_POST["desligar"];


              if(
              $enviou == "sim"//Verifica se usuário enviou formulário
              {
                  if(
              $ligar == "LIGAR LED"//Envia informação para a porta serial que será lida pelo arduino
                  
              {
                      
              $porta fopen("COM4","w"); //COM4 é minha porta serial, Troque pela sua.
                      
              fwrite($porta,"l"); //Liga led
                      
              echo("LED LIGADA");
                  }
                  else if(
              $desligar == "DESLIGAR LED")
                  {
                      
              $porta fopen("COM4","w");
                      
              fwrite($porta,"d"); //Desliga led
                      
              echo("LED DESLIGADA");
                  }
              }


              ?>

              <html>
              <head>
              <title>Controlando o arduino pelo PHP</title>

              </head>
              <body>

              <form method="post" action="<?php echo($_SERVER["PHP_SELF"]); ?>">
                  <input type="submit" value="LIGAR LED" name="ligar">
                  <input type="submit" value="DESLIGAR LED" name="desligar">
                  <input type="Hidden" value="sim" name="enviou">
              </form>

              </body>
              </html>
              Queremos que ao clicar no botão "ligar led" ou "desligar led", A led do arduino acenda ou apague.

              Não vou entrar em detalhes sobre o script, Pois é bem simples e está bem comentado.

              Agora vamos ao Arduino:

              Código:
              /*
                Script desenvolvido por Lucas Santos da Silva
                
                Feito para controlar o arduino através de uma página php, Contato: chamycal@gmail.com
              */
              
              int led = 8; //Pino onde se localiza a led
              char valores; //Irá receber informações vindas do php pela porta serial 
              
              void setup()
              {
                //Configura pino para saída de energia
                pinMode(led,OUTPUT);
                
                Serial.begin(9600); //Prepara a porta serial para ser lida
              }
              
              void loop()
              {
                
                valores = Serial.read(); //Lê as informações vindas do PHP
                
                if(valores == 'l') //Se for l então liga a led
                {
                  digitalWrite(led,HIGH);
                }
                else if(valores == 'd')
                {
                 digitalWrite(led,LOW);
                }
                
              
              }
              Como você viu, Controlar o arduino através do PHP é bem simples.

              abrs
              E como eu faço para o arduino se comunicar com meu site em php que esta hospedado na uol?

              Comment

              X
              Working...
              X