Ajuda em: Comunicação Raspberry PI Com Servidor PHP e Arduino mega USB.

Ola pessoal,

Estou com o seguinte  problema :

  Tenho um arduino mega que está  programado  para realizar algumas funções, chaveamento de relés, leitura de temperatura, leitura de corrente dentre outras.

 

   O controle das funções esta sendo feito via interface web PHP em um computador Windows, onde tudo funciona perfeitamente.

 

  Porem preciso migrar o sistema para rodar em uma Raspberry PI com raspbian instalado mas não consegui fazer o sistema funcionar o php não comunica com o arduino que esta na porta serial : /dev/ttyACM0.

Alguém poderia me ajudar com um tutorial ou algum link?

Desde já muito obrigado.  

Exibições: 2214

Responder esta

Respostas a este tópico

Tiiago!!!

    Tente usar "/dev/ttyUSB0" ao invés do "/dev/ttyACM0"!!!!!

    Qual o modelo do seu Arduino MEGA? Se for com o Atmega1280 este usa um chip FTDI como conversor serial/USB, em algumas distribuições os drivers deste já estão nativos no kernel do linux. Conecte o seu arduino na RaspberryPi e no console digite o comando "dmesg" e olhe as mensagens do kernel verificando se o arduino foi detectado ou algum conversor serial/USB FTDI foi detectado e verifique na pasta "/dev" se algum dispositivo USB foi montado, neste caso use este!!!!

    Se o Arduino MEGA utilizar o Atmega2560, este deve estar usando um Atmega 8U2 ou 16U2, responsáveis por funcionar como conversor serial/USB. Conforme o site do Arduino (http://arduino.cc/en/Main/arduinoBoardMega2560) seção "Communication", explica que em sistemas Linux e OSx, a porta serial é reconhecida automaticamente sem a necessidade de instalação de um driver.

    Por favor se possível, post aqui a saída do comando "dmesg" realizado após conectar o arduino na RaspberryPI!!!

Qualquer coisa estou a disposição!

    

Ola celso, Boa noite!

A minha placa e um ARDUINO MEGA 2560 R3.

A porta serial /dev/ttyACM0 esta funcionando normalmente pois consigo comunicação com a ide do arduino,

o que nao estou conseguindo fazer funcionar e a comunicação via PHP > /dev/ttyACM0,

no windows o php comunica normalmente PHP>COM3, eu ja estava usando o sistema normalmente, porem preciso migrar para a raspberry mas nao consegui fazer funcionar no Raspbian.

quanto aos dados do dmesg seguem abaixo:

[    3.844213] usb 1-1.3: new full-speed USB device number 5 using dwc_otg
[    3.983555] usb 1-1.3: New USB device found, idVendor=2341, idProduct=0042
[    4.001214] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[    4.015542] usb 1-1.3: Manufacturer: Arduino (www.arduino.cc)
[    4.028072] usb 1-1.3: SerialNumber: 55330343731351207161
[    4.268438] udevd[156]: starting version 175
[    5.769744] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
[    5.868035] usbcore: registered new interface driver cdc_acm
[    6.020712] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

E agora o codigo php que estou usando:

<?php
  $ca = fopen ("/dev/ttyACM0","w");
  fwrite ($ca,13579);
  fclose($ca);
  header("refresh:;index.php");
?>

 Desde já muito obrigado.

As permissoes de escrita para o PHP no dispositivo estao corretas?

Tenta rodar o script PHP direto via linha de comando como root com "php -f arquivo.php".

Se funcionar é problema de permissoes mesmo, se nao funcionar é problema com a instalacao do PHP.

Realmente pode ser problemas com permissão de leitura/escrita na porta, mas também pode ser que o módulo 'com_dotnetnão esteja habilitado no PHP.

Para verificar se está habilitado rode um script PHP com o comando 'phpinfo()', aí será possível ver se a extensão com_dotnet está habilitada. Se não estiver, você terá que liberá-la no arquivo 'php.conf'.

Oi,

Tente:

Deixar aberto o Serial Monitor (da IDE arduino);

Abra o console e como root digite: "chmod a+rw /dev/ttyACM0"   (ACM0, ACM1 . . .  dependendo da porta que reconheceu o arduino).

E caso ainda nao funcione de permissão (chmod) também no diretório do seu código PHP.

abraço.

Eduardo  boa tarde!, Deu certo sim, porém so funciona quando o serial monitor esta aberto, se reiniciar o raspberry tem que abrir o IDE do arduino e o Serial monitor novamente para funcionar, existe algum modo de o sistema funcionar sem ter que abrir o serial monitor?

Desde já muito obrigado.   

sim, ja tive este problema mais não tive tempo de mergulhar profundamente numa melhor resolução, porém,  segue o link do tópico que eu criei aqui no Lab de Garagem: http://labdegaragem.com/forum/topics/linux-e-serial-monitor-ardu-no...

Eu estava com o mesmo problema porém com a leitura de caracteres. =/

abraço

Se tiver usando Apache com PHP acrescente o usuario www-data (usado pelo apache) ao grupo dialout (dispositivos seriais)

sudo usermod -a -G dialout www-data

Coloquei o sudo so para facilitar quem tiver o mesmo problema no Ubuntu, no raspbian a conta root esta habilitada.

Abraco.

Bom Dia Tiago!

conseguiste resolver o problema da comunicação do php com a serial, sem que a serial esteja aberta?

Estou com o mesmo problema e não estou conseguindo resolver.

Se puder me ajudar lhe agradeço

Abç

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço