1. Configuração da execução do gpio
Adicionar no final do ficheiro de sudoers para dar permissão a www-data de execução apenas do comando gpio.$ whereis gpio
gpio: /usr/local/bin/gpio
$ sudo visudo
...
# GPIO
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/gpio
Em PHP depois é possível fazer a chamadas à ferramenta gpio com sudo.
2. Exemplo de ficheiro PHP para controlar LED
Seguindo o setup eletrónico feito aqui, é possível criar o ficheiro led.php que acende e apaga o led através do PHP.
Exemplo led.php:
if (isset($_GET['led'])&&$_GET['led']!=''){
exec("sudo gpio -g mode 7 out"); // Iniciar o GPIO07 = pino 26
if ($_GET['led']=='on'){
exec("sudo gpio -g write 7 1"); // Acender LED
}else{
exec("sudo gpio -g write 7 0"); // Apagar LED
}
}
if (isset($_GET['led'])&&$_GET['led']!=''){
exec("sudo gpio -g mode 7 out"); // Iniciar o GPIO07 = pino 26
if ($_GET['led']=='on'){
exec("sudo gpio -g write 7 1"); // Acender LED
}else{
exec("sudo gpio -g write 7 0"); // Apagar LED
}
}
Para verificar basta ter uma hiperligação ou inserir o URL que passe a variável led com o valor on para acender o LED e qualquer outro para o apagar.
Para acender:
http://rpi/led.php?led=on
Para apagar:
http://rpi/led.php?led=off
como faço para comunicar o raspberry pi com um microcontrolador via serial com gpio e ler os dados com php
ResponderEliminarViva,
ResponderEliminarDe facto até agora não precisei de trabalhar com a comunicação série.
Por acaso já fiz algumas pesquisas sobre isso, no sentido de comunicar por exemplo com o arduino e existe informação sobre isso, mas nunca me debrucei sobre o assunto...
Caso encontre algumas informações depois pode partilhar.
Boa sorte!
Olá amigo, nao estou tendo resultados tentando ligar os leds por meio de PHP. Consigo apenas utilizando comandos diretamente no terminal do raspberry. O que pode estar errado / faltando?
ResponderEliminarViva,
EliminarSe o comando gpio funciona na linha de comandos a única questão que vejo é a execução do gpio através do PHP.
Para que funcione é necessário garantir que o utilizador www-data (ou outro utilizador que esteja a correr o servidor web) esteja autorizado a executar o comando gpio com sudo.
Por isso é necessário garantir o passo 1. que falo, seja:
sudo visudo (para garantir que o comando gpio pode ser executado pelo utilizador www-data sem pedir password)
www-data ALL=(ALL) NOPASSWD: /usr/local/bin/gpio
Depois resta guardar e sair.
Rapha, Retire o sudo.
ResponderEliminar