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.
Tags:
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_dotnet' nã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ç
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por