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 mamotinho
      Olá pessoal , estou tendo um trabalho em defini a porta na qual eu quero que meu site se conecte. eu alterei a porta utilizada na minha máquina para eu utilizar somente ela no meu site porém quando eu acrescendo o campo da PORT da o seguinte erro.
      Connection Error: SQLSTATE[08001] SQLDriverConnect: 17 [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server inexistente ou acesso negado.  
      O Código de conexão na qual estou utilizando é esse.
       
      class Database { protected static $db; protected $db_host = DB_HOST; protected $db_usuario = DB_USER; protected $db_senha = DB_PASS; private function __construct() { try { self::$db = new PDO("odbc:Driver={SQL Server};Server=".$this->db_host.";port=8657; Uid=$this->db_usuario;Pwd=$this->db_senha; PDO::ATTR_PERSISTENT => true"); self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection Error: " . $e->getMessage()); } } public static function conexao() { if (!self::$db) { new Database(); } return self::$db; } } se alguém pude me ajuda ficarei bastante grato.
    • By Bassoli
      Olá, preciso de ajuda para meu sistema, preciso pegar o e-mail do usuário logado na conta, mais fiz um sistema que ele mostra todos email da mysql cadastrados, podem me ajudar?
       
      Meu sistema: 
      http://prntscr.com/qsm0tn (Puxar database)
      http://prntscr.com/qsm08u (Mostrar na label) 
      http://prntscr.com/qsm0n2 (Monstrando os emails no sistema)
    • By Good
      Boa noite,
      gostaria de saber como vocês fariam um sistema de delivery.
       
      Pensei em 3 soluções:
      1. Cadastrar as faixas de CEP que haverá sistema de entregas;
      2. Criar uma área delimitadora no google e exportar em KML para fazer a validação se o endereço do cliente está dentro do raio;
      3. Criar um raio de entregacom ponto fixo do estabelecimento, por exemplo, o estabelecimento só vai poder atender em um raio de até 10km.
       
      Qual método o ifood e outros gigantes trabalham? Existe algum código pronto para que eu possa dar uma olhada?
       
      Aguardo um contato, obrigado!
    • By marcossantana10
      Eu to fazendo uma aplicação que precisa trabalhar com valores e não to encontrando a solução ideal:
       
      preciso que o preço de um produto seja armazenado, precisamente, informando milhares, centenas, dezenas, todas as informações. exemplo:

      R$ 1.500,50 (mil e quinhentos reais e cinquenta centavos)
      eu já usei uma função (str_replace) pra substituir a virgula por pontos, porém o que vem depois da vírgula não está sendo considerado
      está salvando 1.500 apenas. Já tentei todo tipo de campo no banco (float, double, decimal, int).
       
      Como eu poderia solucionar isso?
    • By Lenon John
      Estou começando no PHP e preciso criar um simples sistema para emitir boletos na web com o SICOOB.
      OBS: Que quero me conectar a API SICOOB e não sei por onde começar.
       
      O SICOOB disponibiliza na página de developers.sicoob.com.br essas informações:
      GET https://sandbox.sicoob.com.br/oauth2/authorize?response_type=code&redirect_uri=[[callback_url]]&client_id=[[client_id]]&cooperativa=[[cooperativa]]&contaCorrente=[[conta]]&versaoHash=3&scope=[[escopos]]
      PARÂMETRO: response_type = Tipo de resposta gerada pelo fluxo authorize
      PARÂMETRO :redirect_uri = Endereço que será redirecionado após a autorização
      PARÂMETRO: client_id = Chave de acesso às APIs
       
      RESPOSTA:
      [[callback_url]/code=2eb7fd2c-aaf9-3655-bcf5-71972b50eb3d&state=0.3549351162541514

       
      Obtendo Access Token:
      POST https://sandbox.sicoob.com.br/token Headers Content-type: "www/form-url-encoded" Authorization: Basic [[token_basic]] Payload grant_type=authorization_code&code=2eb7fd2c-aaf9-3655-bcf5-71972b50eb3d&redirect_uri=[[callback_url]] E mais umas informações complementares aqui. Se alguém puder me ajudar, passo mais informações.
       
       
×

Important Information

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