Objetivos
Una Raspberry Pi 3, aunque valen la 2 y la 1
|
|
Una micro SD de al menos 4Gb y preferiblemente de 8Gb, 16 Gb o 32 Gb.
|
|
Una fuente de alimentación externa tipo teléfono móvil con micro USB | |
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"
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
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:
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.
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
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,
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».
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.
Los 4 campos serán:
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:
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.
Resumen de la sesión
En esta sesión hemos aprendido varias cosas importantes: