hax0r3x 0 Denunciar post Postado Dezembro 6, 2011 Olá! Preciso criar um sistema web que fará leitura/escrita na USB. Já criei um script PHP que deveria enviar um dado para a USB e receber a resposta do dispositivo conectado (um Arduino). Mas ao executar o script nada acontece, e pelo que testei, o script não está conseguindo ter permissão para utilizar a USB. Alguem sabe se é alguma configuração do servidor Apache ou do próprio PHP? obs. Estou rodando o servidor no Debian GNU/Linux, e meu usuário está no grupo 'dialout', o que dá permissão de utilizar a USB. abs Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Dezembro 6, 2011 Opa, muita calma nessa hora. Você quer fazer isso no seu servidor local, não é? Não sei se é possível. Agora se você quer fazer isso a partir de um servidor remoto, esquece, impossível. O PHP roda do lado do servidor, ele não tem acesso nenhum ao computador cliente, muito menos às portas USB. Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 6, 2011 você tem q usar funcoes de leitura de memoria da maquina pra fazer isso... http://php.net/manua...rappers.php.php você tem q ver qual porta usb o disponitivo esta conectado e le-la, eu ja vi o php conectando a porta COM, no proprio site do arduino tem uns scripts @henrique, posteriormente procure um servidor chamado scada br...você vai gostar.... Compartilhar este post Link para o post Compartilhar em outros sites
hax0r3x 0 Denunciar post Postado Dezembro 6, 2011 Olá, obrigado por me responderem. O que gostaria de fazer é: Rodar um sistema web num servidor que tem um Arduino conectado na USB. O cliente apenas conecta ao sistema web para visualização e controle de dados, enviando comandos para o Arduino. Seria algo parecido com o software ScadaBr, só que bem mais simples. Mas assim pessoal, eu já consegui fazer isso num servidor Xampp no Windows. O problema é que preciso fazer em um servidor GNU/Linux (Debian) e parece que existe alguma permissão faltando. O usuário já está no grupo de acesso leitura/escrita na USB mas o serviço Apache parece não conseguir fazer essa comunicação. abs Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 6, 2011 se eu nao me engano, existe versao do xampp for unix like, da uma bisoiada.... Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Dezembro 6, 2011 você tem q usar funcoes de leitura de memoria da maquina pra fazer isso... http://php.net/manua...rappers.php.php você tem q ver qual porta usb o disponitivo esta conectado e le-la, eu ja vi o php conectando a porta COM, no proprio site do arduino tem uns scripts @henrique, posteriormente procure um servidor chamado scada br...você vai gostar.... E esse site aqui? :seta: http://www.scadabr.org.br Se for, na própria página sobre o projeto diz que ele é implementado em Java EE. 3. Como funciona o software ScadaBR? O ScadaBR roda em qualquer computador que execute Java, ou seja, PCs rodando o Windows, Linux e outros sistemas operacionais. O ScadaBR executa dentro de um servidor de aplicações (sendo o Apache Tomcat a escolha padrão, incluída em algumas versões). Compartilhar este post Link para o post Compartilhar em outros sites
hax0r3x 0 Denunciar post Postado Dezembro 8, 2011 Olá! Fiz o seguinte. Instalei o Xampp no servidor Debian e rodei meu script porem deu os seguintes erros: Warning: fopen(/dev/ttyACM0) [function.fopen]: failed to open stream: Permissão negada in /opt/lampp/htdocs/comunicacaoSerial.php on line 7 Warning: fwrite() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/comunicacaoSerial.php on line 10 Warning: fgets() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/comunicacaoSerial.php on line 13 Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/comunicacaoSerial.php on line 15 Alguem sabe como dou permissão de acesso (leitura/escrita) na USB para o serviço Xampp? abs Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 9, 2011 provavelmente...pera, você chegou a montar o dispositivo? pode nao estar lendo, pelo dispositivo nao estar montado. @henrique, como dito por mim acima, eu OUVI DIZER, ou seja ,(nao tenho certeza e nao posso afirmar) eu nunca trabalhei com ele, apenas um amigo indicou...e o mesmo keria usar php pra fazer algo parecido com o amigo... Compartilhar este post Link para o post Compartilhar em outros sites
hax0r3x 0 Denunciar post Postado Dezembro 13, 2011 Olá amigos, desculpe pela demora em responder. Mas enfim, coloquei o Arduino na USB e verifiquei que o mesmo foi detectado no dispositivo /dev/ttyACM0 Então rodei meu script no Xampp e continuei com os erros que informei anteriormente :/ Segue meu código: <!DOCTYPE html> <?php if(isset($_POST['valor']) && !empty($_POST['valor'])) { $port = fopen('/dev/ttyACM0', 'w+'); sleep(2); fwrite($port, $_POST['valor']); sleep(2); $retorno = fgets($port); fclose($port); } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Arduino + PHP</title> </head> <body> <form method="post"> Valor: <input type="text" name="valor" id="valor" value=""/> <input type="submit" value="Enviar"/><br/><br/> Retorno: <input type="text" name="resposta" id="resposta" value="<?php echo $retorno; ?>"/> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 13, 2011 verifica antes se a porta esta sendo lida, você esta mandando direto...você deu chmod na porta? se eu nao me engano o dev seria uma pasta para links simbolicos...me corrijam se eu estiver errado... Compartilhar este post Link para o post Compartilhar em outros sites
hax0r3x 0 Denunciar post Postado Dezembro 13, 2011 Olá Igor, A permissão do dispositivo é a seguinte: crw-rw---- 1 root dialout 166, 0 Dez 13 10:45 /dev/ttyACM0 Ou seja, está para leitura/escrita (r/w) para o usuário 'root' e o grupo 'dialout'. O usuário que utilizo no servidor já está no grupo 'dialout', tanto que está funcionando a comunicação com o Arduino pela IDE dele. O script PHP está com as seguintes permissões: -rw-r--r-- 1 root root 724 Dez 8 12:13 comunicacaoSerial.php Será que está correto? Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 13, 2011 ae q ta, tudo tem um dono e mesmo assim cada dono cada arquivo tem permissoes diferentes... Compartilhar este post Link para o post Compartilhar em outros sites
hax0r3x 0 Denunciar post Postado Dezembro 13, 2011 Bom.. acabei de fazer o seguinte conforme você comentou: fiz um chmod 666 /dev/ttyACM0, ficando assim: crw-rw-rw- 1 root dialout 166, 0 Dez 13 11:00 /dev/ttyACM0 ai rodei o script e funcionou! só me preocupo com a segurança, pois agora todos podem ler/escrever na porta. mas pelo menos para testes já está bom hehe Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Dezembro 13, 2011 ae q ta, tudo tem um dono e mesmo assim cada dono cada arquivo tem permissoes diferentes... basta apenas add o usuario do php ao grupo q pode ler e escrever na porta... Compartilhar este post Link para o post Compartilhar em outros sites