Objetivos

 

  • Instalar un servidor Web en la Raspberry Pi.
  • Crear una base de datos Mysql.
  • Aprender a usar PHPMyAdmin.
  • Crear una página para subir los datos con PHP.
  • Aprender cómo se suben los datos a la tabla.[/three-fourth] [clear/]
  •  

    Vista lateral  Una Raspberry Pi 3, aunque valen la 2 y la 1

     


    vista frontal
    Una micro SD de al menos 4Gb y preferiblemente de 8Gb, 16 Gb o 32 Gb.

     

    Vista lateral Una fuente de alimentación externa tipo teléfono móvil con micro USB
    video para raspberry pi Un cable HDMI

     

    Preparando la Raspi

     

    Para montar un servidor en la Raspberry necesitaremos tener instalado Raspbian, una conexión a Internet y tener asignada una IP estática.  Si habéis seguido los tutoriales de Prometec seguro que ya lo habéis hecho, pero si alguien que no la tiene configurada no tiene más que ir a los tutoriales que hay disponibles: https://www.prometec.net/indice-raspberry-pi/

    A modo de resumen, para conectaros a Internet y tener una IP estática tenéis que editar el archivo interfaces:

    sudo nano /etc/network/interfaces

    Y dejarlo tal que así, pero con vuestros parámetros. En nuestro caso está conectada mediante Wifi:

    auto lo
    iface lo inet loopback
    
    iface eth0 inet dhcp
    
    allow-hotplug wlan0
    auto wlan0
    
    iface wlan0 inet static
     address 192.168.0.100
     netmask 255.255.255.0
     gateway 192.168.0.1
     wpa-ssid "Euskaltel-cs7A"
     wpa-psk "PX9BK7rA"

  • Podéis mirar vuestos parámetros con la instrucción Route -ne.
  •  

    configurar internet raspi

     

    Instalar el servidor Web

     

    Una vez hayamos configurado la IP estática podemos empezar a instalar el sevidor Web. El tipo de servidor que vamos utilizar se denomina LAMP, que es un acrónimo de las herramientas que vamos a usar. No os asustéis si no conocéis alguna de ellas, o incluso ninguna, no nos va hacer falta profundizar mucho. De hecho yo nunca había usado Apache ni PHP

  • Linux como el sistema operativo. En nuestro caso Raspbian.
  • Apache como servidor web.
  • MySQL para gestionar la base de datos.
  • PHP como lenguaje de programación.
  •  

    Lo primero que vamos a hacer es actualizar los repositorios y los programas de nuestra Raspi, si es que no lo habéis hecho antes. Tardará un ratillo…

    sudo apt-get update
    sudo apt-get upgrade

    A continuación instalaremos Apache:

    sudo apt-get install apache2

    Vamos a comprobar que funciona todo hasta el momento escribiendo la IP que hemos otorgado a la Raspberry, en nuestro caso es 192.168.0.100. Deberíais ver una página como esta:

    Página de inicio apache2

    Ahora que sabemos que estamos en el buen camino vamos a instalar PHP, un lenguaje de programación diseñado para crear sitios web dinámicos:

    sudo apt-get install php7.0 libapache2-mod-php7.0

    Cuando termine reiniciamos la Raspi:

    sudo reboot

    Cuando vuelva a arrancar, vamos a comprobar que efectivamente funciona correctamente PHP creando este archivo:

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

    Tenemos que dejarlo así:

    <?php
          phpinfo();
    ?>

    Volvemos a abrir el navegador e introducimos la IP de la raspberry seguido de /info.php.

    servidor raspberry pi

     

    Instalación y configuración de MySQL y PHPMyAdmin

     

    En este punto vamos a instala MySQL, un sistema de gestión de bases de datos muy potente. Durante la instalación os pedirá una contraseña, aseguraros de recordarla. Cuando termine reiniciamos de nuevo la Raspberry.

    sudo apt-get install mysql-server mysql-client php5-mysql

    Una vez hayamos arrancado de nuevo vamos a instalar PHPMyAdmin. Esta herramienta escrita en PHP nos permite manejar la administración de MySQL a través de Internet de una forma relativamente sencilla.

    sudo apt-get install php5-mysql phpmyadmin

    Durante la instalación nos preguntará qué tipo de servidor estamos usando. Como ya imaginaréis marcaremos Apache. A continuación le diremos que sí queremos configurar una base de datos y nos pedirá que introduzcamos la contraseña que pusimos al instalar MySQL. Además tendremos que elegir una contraseña para acceder a PHPMyAdmin. Nuestro consejo es que pongáis la misma a todo y os dejéis de líos.

    Cuando haya terminado el proceso tenemos que editar el siguiente fichero para añadir al final del mismo Include /etc/phpmyadmin/apache.conf

    sudo nano /etc/apache2/apache2.conf

    servidor raspberry

    Si todo ha ido bien y escribís en el navegador la dirección IP de la Raspi seguida de /phpmyadmin veréis una pantalla en la que os pedirá las credenciales. El usuario es root y la contraseña la que hayáis elegido. En caso de que no os funcione, reiniciad la Raspberry,

    servidor raspberry

    Ahora vamos a crear una base de datos. Para ello pulsamos donde pone «Nueva». En la siguiente pantalla pondremos el nombre que elijamos, como nosotros la vamos a usar para subir los datos de un sensor de temperatura DHT11 (ya veremos en otra sesión como hacerlo) le llamaremos de esa de esa forma. En cotejamiento seleccionamos «utf8_general_ci» y pulsamos «Crear».

    servidor raspberry base de datos

    Si ahora seleccionamos en el menú desplegable de la izquierda la base de datos que hemos creado nos dará la opción de crear una tabla. Nosotros vamos a crear una tabla llamada valores y que tendrá 4 campos.

    servidor raspberry tabla mysql

    Los 4 campos serán:

  • ID: identificador del registro. Será la clave primaria y marcaremos la casilla de auto incremento.
  • Tiempo: este campo almacenará la fecha y la hora en que se ha tomado la muestra. El tipo sera TIMESTAMP y su valor por defecto CURRENT_TIMESTAMP.
  • Temperatura: en este campo se almacenará el valor de la temperatura del sensor. Será de tipo INT.
  • Humedad: este campo almacenará el valor de la humedad del sensor. Será de tipo INT.[/fancy-ul] [/three-fourth]
  •  

    servidor raspberry base de datos

     

    Crear la página para subir valores a la base de datos

     

    Para poder subir datos al servidor tenemos que crear una página con PHP. Para ello necesitamos crear dos archivos. Al primero de ellos lo llamaremos config.php y tendrá la la información necesaria para establecer la conexión con la base de datos que hemos creado. El segundo , dht11.php, es la página que usaremos para subir los datos. Los creamos y los editamos para dejarlo como estos, pero cambiando Prometec por la contraseña que hayáis elegido.

    sudo nano /var/www/html/config.php
    sudo nano /var/www/html/dht11.php
    <?php
     // config.php
     // Credenciales
     $dbhost = "localhost";
     $dbuser = "root";
     $dbpass = "Prometec";
     $dbname = "DHT11";
     //Conexion con la base de datos
     $con = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    ?>
    <?php
     // dht11.php
     //Importamos la configuracion
     require("config.php");
     // Leemos los valores que nos llegan por GET
     $Temperatura = mysqli_real_escape_string($con, $_GET['Temperatura']);
     $Humedad = mysqli_real_escape_string($con, $_GET['Humedad']);
     // EInsertamos los valores en la tabla
     $query = "INSERT INTO Valores(Temperatura, Humedad) VALUES('$Temperatura','$Humedad')";
     // Ejecutamos la instruccion
     mysqli_query($con, $query);
     mysqli_close($con);
     echo "Pagina para subir los datos<br />";
     echo "<br />Temperatura = $Temperatura ºC<br />";
     echo "<br />Humedad = $Humedad %<br />";
    ?>

    Y ahora sólo nos queda probar que funciona. Para ello vamos a subir un par de datos de temperatura y humedad a mano desde el navegador, por ejemplo 25ºC y 50% de humedad. La forma de hacerlo es poniendo la IP de la Raspberry, seguido de /dht11.php?Temperatura=25&Humedad=50

    Si todo ha va como debería, veréis una página como esta:

    página para datos servidor raspberry

    Y por supuesto estos datos deberían reflejarse en la tabla «Valores» que hemos creado dentro de la base de datos «DHT11». Para comprobarlo abrimos PHPMyAdmin y en el menú desplegable de la izquierda abrimos «DHT11» y seleccionamos «Valores». Veréis como tendremos nuestros primeros datos en la tabla, que son ,ni más ni menos, los que hemos subido nosotros hace un momentillo.

    servidor raspberry phpmyadmin

     

    Resumen de la sesión

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Hemos montado un servidor en la Raspberry usando Apache.
  • Instalamos PHP para poder crear contenido dinámico.
  • Creamos una base de datos usando MySQL.
  • Instalamos PHPMyAdmin para poder administrar la base de datos desde Internet de forma sencilla.
  • Creamos una base de datos nueva y una tabla para subir valores.
  • Hemos creado una página usando PHP para subir los valores a la tabla.[/three-fourth][margin value=»5″ /]
  •  

    Deja una respuesta