Jump to content
FaahWl

Comunicação Serial PHP + Arduino (Monitor Serial)

Recommended Posts

Boa tarde meus amigos!

 

Estive testando algumas funções para ler a porta COM através do PHP, com um Arduino Uno na outra ponta.

 

Na IDE Arduino, é possível ver em tempo real o que o Arduino está imprimindo como por exemplo, Serial.println("OK...") através da ferramenta Monitor Serial.

Alguém saberia como fazer um Monitor Serial com o PHP?

 

Eu tentei fazer, porém sem sucesso. Parece que o PHP espera acumular um buffer e depois solta tudo de uma vez, não consegui fazê-lo funcionar.

Share this post


Link to post
Share on other sites

Acho embaçado comunicação de baixo nivel com linguagem server-side.

 

Seria menos traumático fazer um web service que espera comunicação HTTP.

 

Tem uma porrada de SHIELD com comunicação Wifi/RJ45.

Ai se basicamente efetuava um POST/GET no webserice no php.

 

 

Claro, tudo isso depende muito da sua latência

 

Alguns termos legais a buscar:

Arduino + php + iot

webservice php with arduino

 

Share this post


Link to post
Share on other sites

Na verdade é um projeto da faculdade, já foi comprado o Arduino Uno e a única maneira de fazer a comunicação é através da Serial. Consegui fazer ele exibir o que o Arduino printa, através da comunicação pela Serial, porém queria algo rápido semelhante ao Monitor Serial da IDE Arduino.

Share this post


Link to post
Share on other sites

Algo assim será q ajuda?

 

https://www.paulotrentin.com.br/eletronica/controlando-arduino-com-php-via-serial/

http://php.net/manual/pt_BR/book.sockets.php

 

é que sei lá...

Pensa comigo php em sua maioria esmagadora é Web.

 

A partir do momento que você faz isso:

exec("MODE $port BAUD=9600 PARITY=n DATA=8 XON=on STOP=1");

Deixa de ser php e vira execução do S.O.

 

Comunicação serial com php é insanidade na minha visão:sweat_smile: 

 

Share this post


Link to post
Share on other sites

Um tempo brinquei com esse carinha aqui:

 

http://www.filipeflop.com/pd-1f55ad-modulo-wifi-esp8266-esp-01.html

 

Segui a receita:

http://blog.filipeflop.com/wireless/esp8266-arduino-tutorial.html

 

Foi sucesso haha rolou umas luz acendedo via POST da web kkkk

 

Bons estudos manolo, posta depois o projeto,se deu certo se deu errado fiquei curioso kkkk

 

 

 

 

Share this post


Link to post
Share on other sites

Rsrs

 

Se for o caso eu troco de linguagem, mas seria muito mais fácil pra mim fazer em PHP. Eu já consegui fazer a comunicação, porém só estou preocupado com a velocidade da leitura.

 

Já li todos os tópicos possíveis sobre o assunto, inclusive esse que mandou, mas não acho de jeito nenhum. :tired:

Share this post


Link to post
Share on other sites

@gabrieldarezzo Estudei bem pouco sobre Arduino na faculdade, e a linguagem usada foi C++. Meio doideira usar PHP para resolver problemas de hardware. Antes gerar uma bin em C, que dará menos trabalho e as sintaxes são parecidas com as do php. E usara a linguagem correta a meu ver.

  • +1 2

Share this post


Link to post
Share on other sites

O PHP apresenta uma demora no fgets e não faço ideia do porque. Resolvi usando Python, pois quando ele faz a leitura da serial já mostra em tempo real no console, não apresenta a mesma demora do PHP.

Share this post


Link to post
Share on other sites

@FaahWl estava vendo a palestra do Imasters.

Peguei o finalzinho de uma sobre/IoT + php do Marabesi.

 

Da uma fuçada, veja se atende: 

https://github.com/marabesi/arduino-php-wrapper

 

Mesmo se já tenha resolvido de outra forma, fica a dica se alguem cair aqui pelo SEO/Google xD

 

 

Abraços

Share this post


Link to post
Share on other sites

Bacana, assim que tiver um tempinho vou testar a biblioteca, porém acredito que seja uma falha do PHP, pois usa as mesmas funções que eu estava utilizando.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Pellegrini3834
      Ola galera do IMasters!!!!!!
       
      Estou com uma duvida eu tenho um CRUD em php MVC e queria saber em que camada fica as mensagens depois de uma realização de um evento por exemplo:
      Cadastro de Pessoa, depois de cadastrada quero que ele emita uma mensagem dizendo que a "PESSOA FOI CADASTRADA COM SUCESSO!!!!" e eu queria saber  em que parte ela fica se é no Controle ou na View porque sabemos que no modelo fica a parte referente a manipulação de dados.
      Obrigado.
    • By Henrique Augusto Rohloff
      Olá! Sou iniciante e estou treinando para configurar uma página de buscas de produtos em um banco de dados.
      Os produtos já estão sendo encontrados quando a palavra bate com os itens do banco. A conexão com o banco de dados está funcionando corretamente. Porém, quando nada é encontrado, queria que aparecesse uma mensagem "Nenhum resultado, tente novamente." Já tentei com  else de tudo que é jeito mas não aparece corretamente... Qual é o jeito certo?
       
      Segue o código:
       
       
    • By maruoppolo
      Olá, tenho 2 tabelas:
       
      tb_dados: ID - MUSICA
       
      tb_votos: ID - VOTO - RADIO - MUSICA
       
      Preciso fazer uma query que traga as musicas da tb_dados porém ordenando pelo número de votos que ela teve na tb_votos.
       
      Então assim, existem 2 tipos de voto 1 = like e 2 = dislike, cada ver que um usuário vota eu pego qual radio que ele esta ouvindo e salvo no campo radio, o id da musica na tb_dados e salvo no campo musica da tb_votos e coloco o número 1 para like e 2 para dislike no campo voto.
       
      A query precisa contar quantos likes teve na tv_votos filtrando por radio e mostrando os resultados em ordem decrescente as musicas com mais likes.
       
      A ideia é trazer as 10 musicas com mais like de cada radio
       
      Alguma ideia de como fazer?? Estou enroscado nisso a dias.
    • By Chester1
      oi, eu to tentando mexer com servidores agora no PHP e esta dando um erro muito estranho que quando eu procuro em um programa que acha erros de sintaxe ele me diz que o erro esta no </HTML>    se alguem puder me dizer qual foi o erro que eu cometi eu agradeceria
       

       
      <HTML> <HEAD><TITLE>incluindo no banco de dados</TITLE></HEAD> <body> <BODY bgcolor="#d0d0d0"> <center> <h3>Lanchonete coma bem (voltada para o internauta)</h3> <h1>24horas</h1> <?php $login_digitado=$_POST['login']; $senha=$_POST['senha']; $nome=$_POST['nome']; $email=$_POST['email']; $telefone=$_POST['telefone']; $celular=$_POST['celular']; $endereco=$_POST['endereco']; $complemento=$_POST['complemento']; if ($login_digitado == "" || $senha == "" || $nome =="" || $email == "" || $telefone == "" || $endereco == "" || $complemento == "") { echo "existem(m) campos(s) de preenchimento obrigatorio em branco,<BR> infelizmente tera que voltar para preenche-lo(s)."; echo "<BR><a href=\"cadastro.php\">clique aqui para tentar novamente</a>"; } else { { $link=mysql_connect("localhost", "root", "") or die ("<h1>nao foi possivel conectar !!!</h1> ".mysql_error());  
      obs :estou trabalhando com formularios e servidores
         
         
         
         
      ?>
      </BODY>
      </HTML>
    • By DavidPin94
      Boa tarde, estou tentando criar uma validação para saber se o usuário já está cadastrado no meu banco de dados para meu sistema ficar mais organizado, porém quando realizo o teste cadastrando um usuário já cadastrado, o cadastro ocorre sendo que não era para ocorrer
      <?php require_once("conexao.php");?> <?php if (isset($_POST['usuario'])) { $nome = utf8_decode($_POST['usuario']); $senha = utf8_decode($_POST['senha']); $inserir = "INSERT INTO cadastro "; $inserir .= "(usuario, senha) "; $inserir .= "VALUES "; $inserir .= "('$nome', '$senha')"; $query = "SELECT usuario FROM cadastro WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); $query = "SELECT usuario FROM clientes WHERE usuario = '$usuario' LIMIT 1"; $consulta = mysqli_query($conecta, $query); if (mysqli_num_rows($consulta) < 1) { $operacao_inserir = mysqli_query($conecta, $inserir); if (! $operacao_inserir) { die("Erro no banco"); }else header("location: login.php"); }else{ die("Usuário existente!"); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Cadastrar novo usuário</title> <link rel="stylesheet" type="text/css" href="estilo.css"> </head> <body> <nav> <ul> <li><a href="inicial.php">PÁGINA INICIAL</a></li> <li><a href="quem_somos.php">QUEM SOMOS</a></li> </ul> </nav> <div id="cadastro"> <form method="post" action="cadastro.php"> <label>Digite seu nome de usuário</label> <input type="text" name="usuario" placeholder="Ex: Usuario123" required size="50" minlength="5" maxlength="20" autofocus><br> <label>Digite sua senha</label> <input type="password" name="senha" placeholder="Deve conter mais de 5 caracteres" required size="50" minlength="5" maxlength="20" autofocus><br> <input type="submit" value="Cadastrar" id="enviar" name="enviar"> </form> </div> </body> </html> ,  alguém poderia me ajudar?  Meu código:
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.