En este enlace hicimos el primer ejercicio de prender y apagar un led en Raspberry Pi con python: https://redes-seguridad.blogspot.com.ar/2017/03/controlando-un-led-con-raspberry-pi-en.html
Ahora vamos a hacer un simple PHP con dos botones para prender el LED desde una web, pudiendo hacerlo desde la computadora, del celular o desde un lugar remoto:
Iniciamos el webserver apache:
root@kali:/home# /etc/init.d/apache2 start
[....] Starting apache2 (via systemctl): apache2.service
. ok
Tener en cuenta que tenemos que habilitar el sudo para el usuario www-data, lo configure rapido, sin seguridad dandole permiso a todo en el sudoers pero tengamos cuidado de no hacerlo asi porque es totalmente inseguro:
root@kali:~# visudo
# User privilege specification
www-data ALL=(ALL:ALL) NOPASSWD: ALL
Nos logueamos con el usuario www-data:
root@kali:~# su - www-data
www-data@kali:~$
Generamos los archivos que lo prenden, el python y el php:
www-data@kali:~$ sudo cd /var/www/html/
www-data@kali:~/html$ sudo vi prende.py
#!/usr/bin/python
print "LED prendido!!"
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17,1)
www-data@kali:~/html$ sudo vi prende.php
$a=exec('sudo python /var/www/html/prende.py');
echo $a;
?>
Ahora los que apagan:
www-data@kali:~/html$ sudo vi apaga.py
#!/usr/bin/python
print "LED apagado!!"
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17,0)
www-data@kali:~/html$ sudo vi apaga.php
$a=exec('sudo python /var/www/html/apaga.py');
echo $a;
?>
Lo prendemos y lo apagamos llamando al .php correspondiente desde un navegador:
http://192.168.1.40/prende.php
http://192.168.1.40/apaga.php
Ahora hacemos un unico php que tenga dos botones que prenderan o apagaran el led:
www-data@kali:~/html$ sudo vi boton.php
http://192.168.1.40/boton.php
Tenemos una opción mejor que encontré en el sitio de Jeferson Rivera: http://riverajefer.blogspot.com.ar/
La clonamos con el git y edigamos el procesa.php
root@kali:~# cd /var/www/html/
root@kali:/var/www/html# git clone https://github.com/rpi-jefer/rpi-led
root@kali:~# vi /var/www/html/rpi-led/procesa.php
Cambio a la ruta de mis pythones así no tengo que cambiar los pines uno por uno:
exec('sudo python /var/www/html/apaga.py');
y
exec('sudo python /var/www/html/prende.py');
Ingresamos a la url y vemos que prende tocando el pulsador:
2 comentarios:
hijo de puta esta todo mAL
El problema es tener que saber de diferentes programas, instalaciones de terceros softwares y la velocidad de ejecución. Yo he preparado una clase en PHP para usar los Leds directamente desde PHP nativo, sin necesidad de realizar llamadas shell_exec ni depender de terceros programas. Por si a alguien le sirve: https://rafamartin10.blogspot.com/2021/08/clase-en-php-para-encenderapagar-led-en.html
Publicar un comentario