|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  Raspberry Pi Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  AutoIt (Programación) Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Raspberry Pi

Tutorial de Raspberry Pi en español.
- Juan Antonio Villalpando -

Volver al índice del tutorial

____________________________

19.- Servidor Web Apache. PHP. Encendido de LED mediante página web.

- Vamos a instalar un Servidor Web Apache con PHP. Servirá una página web con dos botones, al pulsarlos se encenderá/apagará un LED que estará conectado al terminal GPIO26.

1.- WiringPi.

- Necesitamos la librería WiringPi. Se utiliza para controlar los terminales GPIO.

- Consulta el tutorial 6.- Teclado I2C y pantalla LCD para instalar el WiringPi, en caso que no lo tengas instalado.

- Bajamos: wiringPi-36fb7f1.tar.gz

$ sudo su
# mkdir /home/pi/teclado
# cd /home/pi/teclado
# cp /home/pi/Downloads/wiringPi-36fb7f1.tar.gz /home/pi/teclado/
# tar xfz wiringPi-36fb7f1.tar.gz
# cd /home/pi/teclado/wiringPi-36fb7f1
# ./build

- Se generará la librería wiringPi.

2.- Apache.

- Una vez que tengamos instalado el WiringPi, instalamos el Apache.

sudo apt-get update
sudo apt-get install apache2 -y

- Una vez instalado, vamos a un navegador web y escribimos la IP del Raspberry, ejemplo: http://192.168.1.4

- Deberá salir esta página web:

- Esa página está localizada en: /var/www/html/index.html

- El propietario es el root. Vamos a hacer propietario al usuario pi

sudo chown pi: /var/www/html/index.html

- Ya podemos editar esa página y cambiarle el contenido.

3.- PHP.

- Ahora vamos a instalar PHP que trabajará con los comandos PHP que le suministremos.

sudo apt-get install php libapache2-mod-php -y

- Vamos a borrar esta página:

sudo rm /var/www/html/index.html

- Y vamos a crear esta otra:

sudo nano /var/www/html/index.php

con este contenido:

<?php phpinfo(); ?>

[Para guardar Ctrl-O. Para Salir Ctrl-X]

- Ahora aparecerá esta página con información sobre PHP.

- En el archivo index.php vamos a borrar el <? php phpinfo (); ?>, que acabamos de poner y vamos a pegar este contenido:

- Podemos cambiarle el propietario y abrirlo con un Editor de texto gráfico.

sudo chown pi: /var/www/html/index.php

index.php

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Encendido y apagado de un LED.</title>
</head>
       <body>
       <center><h1>Control de un LED mediante página web</h1>
         <form method="get" action="index.php">
            <input type="submit" style = "font-size: 16 pt" value="Apagar" name="off">
            <input type="submit" style = "font-size: 16 pt" value="Encender" name="on">
         </form></center>
<?php
    shell_exec("/usr/local/bin/gpio -g mode 26 out");
    if(isset($_GET['off']))
        {
                        echo "LED apagado";
                        shell_exec("/usr/local/bin/gpio -g write 26 0");
        }
            else if(isset($_GET['on']))
            {
                        echo "LED encendido";
                        shell_exec("/usr/local/bin/gpio -g write 26 1");
            }
?>
   </body>
</html>	

4.- Conexión del LED.

- Conectamos un LED al GPIO26

- Mediante las órdenes de la librería WiringPi, podemos ejecutar estos comandos desde el terminal.

/usr/local/bin gpio -g mode 26 out

/usr/local/bin gpio -g write 26 0

/usr/local/bin/gpio -g write 26 1

___________________________________________________________
___________________________________________________________
___________________________________________________________

2.- Obtener el estado de un Pulsador conectado a GPIO15.

- Conectamos un pulsador al terminal GPIO15 de RP y a 3.3V.

- Creamos una página web con un Botón. Cuando pulsemos ese Botón obtendremos el estado del pulsador.

- Además se encenderá un LED conectado a GPIO26. El LED se encenderá/apagará cuando pulsemos el Botón "Consultar".

- 192.168.1.4/pulsador.php

pulsador.php


<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Juan A. Villalpando - KIO4.COM</title>
</head>
       <body>
       <center><h1>Consulta el estado de un Botón mediante página web</h1>
       <a href="http://kio4.com/raspberry/19_servidor_web.htm">kio4.com/raspberry</a><br><br>
         <form method="get" action="pulsador.php">
            <input type="submit" style = "font-size: 16 pt" value="Consulta">
         </form></center>
<?php
    shell_exec("/usr/local/bin/gpio -g mode 26 out");
    shell_exec("/usr/local/bin/gpio -g mode 15 in");
    shell_exec("/usr/local/bin/gpio -g mode 15 down");
    $boton = shell_exec("/usr/local/bin/gpio -g read 15");
    $boton = trim($boton);
    echo $boton;
    echo "<br>";
    if($boton == "1")
        {
            echo "Pulsado";
            shell_exec("/usr/local/bin/gpio -g write 26 1");
        }
   else 
        {
            echo "No Pulsado";
            shell_exec("/usr/local/bin/gpio -g write 26 0");
        }
?>
   </body>
</html>

- Comentarios.

http://wiringpi.com/

shell_exec("/usr/local/bin/gpio -g mode 26 out"); --> La g indica que el número de pin es GPIO26. Es de out porque conectaremos un LED
shell_exec("/usr/local/bin/gpio -g mode 15 in"); --> Un Pulsador se conectará entre el pin GPIO15 y 3,3V. Es in porque es una entrada, Pulsador.
shell_exec("/usr/local/bin/gpio -g mode 15 down"); --> Si lo hemos conectado a 3,3V, debemos poner su pin GPIO15 a down.
$boton = shell_exec("/usr/local/bin/gpio -g read 15"); --> Lee el estado del Pulsador que está en GPIO15.
$boton = trim($boton); --> La variable $boton tiene espacios, por ejemplo: "1 ". Mediante trim, quitamos ese espacio.
shell_exec("/usr/local/bin/gpio -g write 26 1"); --> Enciende el LED conectado a GPIO26

- Si queremos poner el número de pin en vez del número GPIO, escribiríamos sin -g y cambiamos a su número de pin, en este caso el 37:
shell_exec("/usr/local/bin/gpio mode 37 out");

- En action podríamos poner:

action="<?php print($_SERVER['PHP_SELF']); ?>"

___________________________________________________________
___________________________________________________________
___________________________________________________________

3.- Obtener un número aleatorio generado por el RP.

- El Raspberry genera un número aleatorio comprendido entre 0 y 100, cada 1 segundo.

- Una página web con un Botón. Cuando pulsemos ese Botón obtendremos en la página web el valor del número aleatorio que en ese momento haya generado el Raspberry.

aleatorio.php

					 
					 
					 
					 

$python_return = exec ( "script.py {$arg1} {$arg2}" );

http://raspberrywebserver.com/cgiscripting/sending-data-to-an-HTTP-server-get-and-post-methods.html

 

___________________________________________________

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información