Pessoal, estou tentando ler a porta serial pelo PHP com o código abaixo:
$port = fopen('COM31', 'w');
sleep(2);
echo fgets($port);
fclose($port);
O Arduino enviando para essa porta a temperatura e gostaria de ler esse dado com o PHP, porém com código acima nada acontece.
att,
Emerson
Tags:
Em algumas leituras aqui dizem que o IO do php só enxerga até a COM5. Tenta trocar a COMx do seu arduino.
É isso ai troquei aqui a porta pra um valor alto e parou de retornar, alem cria um arquivo com o nome da com no diretório do source.
Matheus,
obrigado, estava também tentando com a COM27 e nada, mudei para COM2 e funcionou .
Valeu
Oi Matheus, obrigado pela resposta.
Eu já havia testado em portas menores mas o PHP sempre voltava o erro abaixo:
Warning: fopen(COM5) [function.fopen]: failed to open stream: No such file or directory in C:\inetpub\wwwroot\arduino\port.php on line 2
Estou rodando num Windows. Já testei com o IIS e com o Apache.
Valeu,
Emerson
Olá Emerson! Olha ai cara o exemplo:
<?php
$port = fopen('COM5', 'w+');
sleep(2);
echo fgets($port);
fclose($port);
?>
Veja ai no seu script se a COM5 está entre aspas, pq o erro relatado acontece se a COM estiver sem aspas. E outra coisa é o segundo parametro para leitura deve ser colocado "r" para apenas leitura ou "w+" para escrita e leitura da porta.
Pois é, esta assim:
<?php
$port = fopen('COM5', 'w+');
sleep(2);
echo fgets($port);
fclose($port);
?>
e mesmo assim:
Warning: fopen(COM5) [function.fopen]: failed to open stream: No such file or directory in C:\inetpub\wwwroot\arduino\port.php on line 2
Warning: fgets() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\arduino\port.php on line 4
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\arduino\port.php on line 5
Caro Emerson,
fiz alguns testes com comunicação de um arduino UNO com meu computador (rodando Windows 7). Tentei várias vezes e de várias formas (conforme várias sugestões na Internet) e em muitas ou não funcionava ou travava a porta e eu não podia usar nem o Arduino nem o programa. Pesquisei muito na Internet e testei uma solução proprietária chamada "PHP Serial Extension". Paguei pela extensão e após instalada funcionou muito bem e os problemas que tinha antes não apareceram mais. Não usei uma porta "alta". Sempre usei a porta COM3. Se quiser testar, segue o link para a extensão: http://thebyteworks.com/phpserial/index.html (Siga as instruções com bastante cuidado e paciência).
Abraços e boa sorte.
Galera estou passando pelo msm problema no meu projeto, não consigo ler dados do arduino, algum tem alguma sugestao
Pessoal tbm estou a ter o mesmo problema!
Alguém já consegui encontrar uma solução?
Olá, tentem usar os recursos do OS ou aplicativos externos e capturem a resposta com o PHP.
Por exemplo (no ruindows):
$r = shell_exec('type COMx')
echo $r;
ou algo como:
$path = "diretorio/arquivo.txt";
shell_exec("aplicativoParaLeitura COMx >> $path");
$r = file_get_contents($path);
Daew pessoal..
Esse site me ajudou muito quando eu inventei de usar a porta serial para comunicar minha aplicação web com o Arduino:
http://www.fritz-hut.com/php-serial-class/
Essa classe PHP é bem poderosa, salvou minha vida:
http://code.google.com/p/php-serial/
Espero que ajude aew...
use "r" ao inves de "w"
o modo write é quando temos que enviar dados escrevendo na porta
para ler, temos que usar o modo read
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por