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.
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.
sudo apt-obtener actualización && sudo apt-obtener actualización
Instalar Mosquito
El software gratuito de código abierto "Mosquitto" se puede utilizar 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 verificar si esto funcionó con el siguiente comando:
estado de mosquitos del servicio sudo
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
En esta nueva ventana de masilla ingrese el siguiente comando:
mosquitto_pub -h localhost -t testTopic -m "Un mosquito vuela, un mosquito 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é. 🙂