Lamp y MQTT
Lamp y MQTT
Lamp y MQTT
VLSI
Octavo” A”
Consulta N°
Integrante:
Miguel Bautista
Henry Pastuña
Karina Toaquiza
AMBATO - ECUADOR
2019
1. TEMA
Proceso de instalación de LAMP server y MQTT
2. OBJETIVOS
a. Objetivo General
b. Objetivos Específicos
3. FUNDAMENTACIÓN TEÓRICA
Raspberry PI
Figure 1. Raspberry PI
Raspberry PI es una mini computadora que funciona a 5VDC/2.5A, se trata de una diminuta
placa base de 85 x 54 milímetros en el que se aloja un chip Broadcom BCM2835 con procesador
ARM hasta a 1 GHz de velocidad, GPU VideoCore IV y hasta 512 Mbytes de memoria RAM.
Sus principales características son su tamaño reducido y gran capacidad de procesamiento. Por
este motivo es una de las tarjetas más usadas por desarrolladores de sistemas embebidos.
NOOBS.
RASPBIAN.
UBUNTU MATE.
WINDOWS 10 IOT MATE.
OSMC, etc.
Accesorios indispensables para una Raspberry:
Cargador de 5V/1A con salida a conector micro USB. Es importante señalar que si
requerirás de mucha capacidad de procesamiento (por ejemplo, usar opencv y una
cámara), es recomendable un cargador de 5V/2.5V.
Cargador 5V/2.5A
Cargador 5v/2A.
Memoria microSD. Primero y para este apartado, es muy importante que sea categoría 10
(CLASS10). Esto significa, que requiere de una memoria veloz. Mínimo recomiendo una
memoria de 16Gb, pero si pueden conseguir una de 32Gb es mejor. Todo dependerá de la
aplicación que quieren realizar.
Teclado y Mouse. Por lo tanto y al menos en la primera configuración siempre tengo que
conectar un mouse y un teclado para poder configurar a la raspberry PI para poder
controlarla remotamente vía algún VNC Viewer.
Raspberry tiene la capacidad de conexión con un monitor vía un puerto HDMI. Se puede conectar
nuestro monitor, televisor o incluso pantallas táctiles. De acuerdo al modelo de raspberry PI
tendrás distintas conexiones disponibles. Por ejemplo: [1]
HDMI
Jack de 3.5mm para salida de audio.
Puertos USB.
Puertos para cámara.
I2C.
SPI.
Serial TTL.
Pines entra/salida.
Wifi.
Bluetooth
SERVIDOR WEB
Servidor Web. Es un programa que gestiona cualquier aplicación en el lado del servidor
realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente
generando una respuesta en cualquier lenguaje o aplicación en el lado del cliente. El código
recibido por el cliente suele ser compilado y ejecutado por un Navegador Web. Para la transmisión
de todos estos datos se utiliza algún protocolo. Generalmente se utiliza el protocolo HTTP para
estas comunicaciones, perteneciente a la capa de aplicación del Modelo OSI. El término también
se emplea para referirse al ordenador que ejecuta el programa.
Servidor LAMP
Se trata de una combinación muy popular en los servidores de Linux, que obedece al acrónimo de
Linux, Apache, MySQL y PHP.
Para los que tengáis dudas al respecto:
Si quieres crear una página web utilizando algún CMS (sistema de gestión de contenidos) como
WordPress y te planteas utilizar tu propio ordenador como servidor, necesitas sin duda que estén
disponibles todos estos elementos
Soporte a gran cantidad de arquitecturas, como son Intel y compatibles, SPARC, Mips y PPC
(Macintosh).
LINUX
Andrew Tanenbaum desarrolló un sistema operativo parecido a Unix (llamado Minix) para enseñar
a sus alumnos el diseño de un sistema operativo. Debido al enfoque docente de Minix, Tanenbaum
nunca permitió que éste fuera modificado, ya que podrían introducirse complicaciones en el sistema
para sus alumnos.
Un estudiante finlandés llamado Linus Torvalds, constatando que no era posible extender Minix,
decidió escribir su propio sistema operativo compatible con Unix.
En aquellos momentos el proyecto GNU (GNU's Not Unix), que Richard Stallman había iniciado
hacía ya casi diez años, comprendía un sistema básico casi completo. La excepción más importante
era el kernel o núcleo, que controla el hardware.
Torvalds decidió aprovechar el sistema GNU y completarlo con su propio núcleo, que bautizó como
Linux (Linux Is Not UniX). El sistema conjunto (herramientas GNU y núcleo Linux) forma lo que
llamamos GNU/Linux.
APACHE
Apache es un poderoso servidor web, cuyo nombre proviene de la frase inglesa “a patchy server” y
es completamente libre, ya que es un software Open Source y con licencia GPL. Una de las ventajas
más grandes de Apache, es que es un servidor web multiplataforma, es decir, puede trabajar con
diferentes sistemas operativos y mantener su excelente rendimiento.
Usos de Apache
Apache es utilizado principalmente, para realizar servicio a páginas web, ya sean estáticas o
dinámicas. Este estupendo servidor se integra a la perfección con otras aplicaciones, creando el
famoso paquete XAMP con Perl, Python, MySQL y PHP, junto a cualquier sistema operativo, que
por lo general es Linux, Windows o Mac OS.
MySQL
Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas relacionales
orientados a objetos. MySQL, como base de datos relacional, utiliza multiples tablas para almacenar
y organizar la información. MySQL fue escrito en C y C++ y destaca por su gran adaptación a
diferentes entornos de desarrollo, permitiendo su interactuación con los lenguajes de programación
más utilizados como PHP, Perl y Java y su integración en distintos sistemas operativos.
También es muy destacable, la condición de open source de MySQL, que hace que su utilización sea
gratuita e incluso se pueda modificar con total libertad, pudiendo descargar su código fuente. Esto ha
favorecido muy positivamente en su desarrollo y continuas actualizaciones, para hacer de MySQL
una de las herramientas más utilizadas por los programadores orientados a Internet. [2]
PHP
PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser
incrustado en HTML. Es popular porque un gran número de páginas y portales web están creadas con
PHP. Código abierto significa que es de uso libre y gratuito para todos los programadores que quieran
usarlo. Incrustado en HTML significa que en un mismo archivo vamos a poder combinar código PHP
con código HTML, siguiendo unas reglas.El lenguaje PHP se procesa en servidores, que son potentes
ordenadores con un software y hardware especial. [3]
3.- Describir MQTT
MQTT fue creado por el Dr. Andy Stanford-Clark de IBM y Arlen Nipper de Arcom (ahora
Eurotech) en 1999 como un mecanismo para conectar dispositivos empleados en la industria
petrolera.
MQTT son las siglas MQ Telemetry Transport, aunque en primer lugar fue conocido como
Message Queing Telemetry Transport. Es un protocolo de comunicación M2M (machine-to-
machine) de tipo message queue. En el caso de MQTT cada conexión se mantiene abierta y se
"reutiliza" en cada comunicación. [4]
ARQUITECTURA
Sigue una topología de estrella, teniendo un nodo central que hace de servidor o “broker” con una
capacidad de hasta 10000 clientes. El broker es el encargado de gestionar la red y de transmitir los
mensajes, para mantener activo el canal. [4]
ESTRUCTURA
Es de gran importancia destacar los mensajes del protocolo MQTT. Puesto que se envían de forma
asíncrona, es decir, no hay que esperar respuesta una vez que se envía un mensaje. [4]
Encabezado fijo. Ocupa sólo 2 bytes y es obligatorio enviar esta parte en todos los mensajes.
Encabezado variable. Ocupa 4 bits y no es obligatorio que esté en todos los mensajes.
Mensaje o carga útil (del inglés payload). Puede tener un máximo de 256 Mb aunque en
implementaciones reales el máximo es de 2 a 4 kB.
Instalación de PHP
Instale el paquete PHP
/var/www/html $ sudo apt install php –y
Puede eliminar index.html y crear un script PHP para probar la instalación.
/var/www/html $ sudo rm index.html
/var/www/html $ sudo nano index.php
En archivo index.php agregue el siguiente código para hacer eco del mensaje " hello wor
ld "
<?php echo "hello world"; ?>
Finalmente, reinicie Apache2
/var/www/html $ sudo service apache2 restart
Si todo funciona, puede eliminar el archivo index.php del directorio
/var/www/html $ sudo rm index.php
Instalar MySQL
Instale el servidor MySQL y los paquetes PHP-MySQL
sudo apt-get install mysql-server php-mysql –y
Ahora reinicie Apache:
sudo service apache2 restart
Instale phpMyAdmin
Para instalar phpMyAdmin
/var/www/html $ sudo apt install phpmyadmin -y
Habilite la extensión PHP MySQLi
/var/www/html $ sudo phpenmod mysqli
Abra un navegador http://direccion/phpmyadmin
Página de error. Mover la carpeta phpmyadmin a / var / www / html
/var/www/html $ sudo ln -s /usr/share/phpmyadmin
/var/www/html/phpmyadmin
Abra un navegador http://direccion/phpmyadmin
4. DIAGRAMA
que funciona
gracias a un
sistema
operativo
es también un
tamaño Una sistema digital
reducido Raspberry de
procesamiento
gran capacidad
de
procesamiento.
Servidor LAMP
Apache
PHP
MySQL y
phpMyAdmin
5. CONCLUSIONES
La Raspberry Pi, con su tamaño y coste reducidos, abre perspectivas inmensas para realizar
aplicaciones.
Un servidor LAMP se refiere a una mezcla de subsistemas de software con fines de configurar
Sitios Web o Servidores Dinámicos de una manera más eficiente.
El protocolo MQTT se ha convertido en uno de los principales pilares del IoT por su sencillez
y ligereza. Ambos son condicionantes importantes dado que los dispositivos de IoT, a
menudo, tienen limitaciones de potencia, consumo, y ancho de banda.
Por último, hemos puesto los conocimientos adquiridos para el montando de LAMP y MQTT
Mosquitto en una Raspberry Pi. Utilizando como cliente tanto la Raspberry Pi como un
NodeMCU hemos visto cómo comunicar estos dos dispositivos y enviar mensajes entre ellos.
6. BIBLIOGRAFÍA
[4] L. d. V. Hernández, «Guía de introducción a MQTT con ESP8266 y Raspberry Pi,» [En línea].
Available: https://programarfacil.com/esp8266/mqtt-esp8266-raspberry-pi/. [Último acceso: 08
11 2019].
[5] P. Castro, «Cree un servidor web LAMP con WordPress,» [En línea]. Available:
https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. [Último acceso:
08 11 2019].