HowTo: RaspberryPi - Instalar el servidor MQTT en RaspberryPi

MQTT (Message Queue Telemetry Transport) es el protocolo que está cobrando cada vez más importancia en el mundo del Internet de las Cosas.

Con esto, diferentes datos pueden intercambiarse muy fácilmente entre diferentes sensores y actuadores. Todos los clientes conectados al servidor MQTT envían y reciben sus datos hacia y desde un servidor central.

En el protocolo MQTT, los clientes individuales conectados no se hablan entre sí directamente.
Al registrarse en el servidor MQTT, cada cliente puede especificar qué datos le gustaría recibir tan pronto como haya nuevos datos disponibles. Al mismo tiempo, cada cliente puede enviar datos al servidor. Estos datos enviados al servidor se distribuyen automáticamente a los clientes que se han registrado previamente para recibir los datos.
Un mensaje MQTT siempre consta de un nombre y los datos. El nombre (llamado tema) permite que los clientes se registren en el servidor como "interesados" de los datos enviados bajo este nombre.
Tan pronto como el servidor recibe datos con este nombre, estos se transmiten a todos los clientes que se hayan registrado previamente como "partes interesadas" para estos datos.

Esto en cuanto a la función aproximada del protocolo MQTT.
Para poder utilizar el protocolo MQTT en su red, necesita un servidor MQTT. En este artículo explicaré cómo instalar esto en la RaspberryPi.

Además de su propio servidor MQTT, también existe la opción de utilizar servidores MQTT externos disponibles a través de Internet. Algunos de estos se proporcionan de forma gratuita.

En mi opinión, esto tiene algunas desventajas:
– sus datos salen de la red doméstica. La probabilidad de que se genere una travesura con él o que pueda generarse no es alta. Sin embargo, de alguna manera me siento más cómodo cuando mis datos no salen de mis "propias cuatro paredes".
– usted depende del servidor MQTT externo. Si esto no está disponible, por ejemplo porque ha fallado o no se puede establecer su conexión a Internet, también fallará toda la comunicación interna de su red (MQTT).

Dado que instalar su propio servidor MQTT es rápido y gratuito, creo que esta es la mejor alternativa.


Instrucciones de seguridad

Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂 


Descripción general

Antes de que pueda comenzar a instalar el servidor MQTT, debe haber preparado el RaspberryPi para que se pueda acceder a él a través de Putty.
Los siguientes tres artículos describen lo que se debe hacer para preparar la RaspberryPi:
RaspberryPi: ¡configuración para nerdiys!
RaspberryPI – ¡La primera configuración!
RaspberryPi: controle el RaspberryPi a través de SSH

Material requerido:
-No-

Material requerido:

En la siguiente lista encontrará todas las piezas que necesita para implementar este artículo.


Inicie sesión en RaspberryPi a través de SSH

Para comenzar, primero debe iniciar sesión en Rasp Pi con Putty a través de SSH. Cómo hacer esto está en el artículo. RaspberryPi - Controle el RaspberryPi a través de SSH descrito.

Después de ingresar su nombre de usuario y contraseña, puede ingresar los primeros comandos.

Gestión de paquetes de actualización

La gestión de paquetes en Linux es un "lugar central" a través del cual se pueden instalar varios paquetes de software. Para que esto funcione de manera confiable, las listas y fuentes de administración de paquetes deben actualizarse antes de cada instalación de nuevos paquetes.

Para iniciar la actualización de la gestión de paquetes, debe ingresar el siguiente comando.
sudo apt-obtener actualización && sudo apt-obtener actualización
Dependiendo de cuánto tiempo hace que fue la última actualización de la administración de paquetes, este proceso ahora puede demorar un tiempo. Las listas que hacen referencia a las fuentes de paquetes individuales se actualizan primero.
Después de eso, los paquetes en sí se actualizan. Dado que la memoria adicional está ocupada, se le pedirá nuevamente su consentimiento. Tienes que confirmar esto con una "J" y "Enter".
Una vez que se complete la actualización, verá un pequeño resumen de la duración y el alcance de la actualización.

Instalar Mosquito

Puede utilizar el software gratuito de código abierto "Mosquitto" como servidor MQTT. Esto se puede instalar fácilmente a través del administrador de paquetes con el siguiente comando:

sudo apt-get install mosquitto mosquitto-clientes


Configurar el inicio automático para el servidor MQTT

Para que el servidor MQTT se inicie automáticamente después de reiniciar su RaspberryPi, ahora debe activar el inicio automático para ello. Esto se puede hacer con el siguiente comando.

sudo systemctl habilitar mosquitto.servicio

Comprobar el estado del servidor MQTT

Después de la instalación, "Mosquitto" se iniciará automáticamente. Puede comprobar si esto funcionó con el siguiente comando:

estado de mosquitos del servicio sudo
Debe ser legible en verde "activo (en ejecución)". Para salir de esta vista de estado, debe presionar CTRL+C.

El servidor MQTT se puede detener con el siguiente comando:

parada de mosquitos del servicio sudo

El servidor MQTT se puede iniciar con el siguiente comando:

inicio de mosquito del servicio sudo

Comprobar función

Para realizar una primera prueba, queremos intentar enviar un mensaje al servidor y recibirlo al mismo tiempo. Para hacer esto, necesitamos suscribirnos a un tema del servidor MQTT y al mismo tiempo enviar un mensaje a este tema suscrito desde otra ventana.
Para comenzar, primero debe ingresar el siguiente comando en Putty:

mosquitto_sub -h host local -v -t tema de prueba
Esto inicia el suscriptor MQTT. Entonces, un cliente que se conecta al servidor que se acaba de crear (por lo tanto, localhost) y escucha el tema "testTopic". Tan pronto como los datos se envían desde otro cliente MQTT al servidor bajo el tema "testTopic", se muestran aquí.
Ahora abre una nueva ventana de masilla (pero deja abierta la anterior).

En esta nueva ventana de masilla ingrese el siguiente comando:

mosquitto_pub -h localhost -t testTopic -m "Un mosquito vuela, un mosquito pincha".
Este comando envía el texto "Un Mosquitto vuela, un Mosquitto pincha".

Ahora debería ver el mensaje que acaba de enviar en la primera ventana de masilla.
Si esto funciona, su servidor MQTT ha pasado la primera prueba. 🙂

Nota de seguridad: Aún no está activo ningún cifrado o identificación de usuario. Esto significa que cualquiera que tenga acceso a su red puede iniciar sesión en el servidor MQTT y enviar o recibir datos de él. Explicaré cómo solucionar estos dos agujeros de seguridad en un artículo posterior.


Diviértete con el proyecto.

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂

PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂

Cómprame un café en ko-fi.com       

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.