Texto copiado
HomeBlog Configuración del entorno de IoT

Configuración del entorno IoT final a extremo en Raspberry Pi

por Ponlakshmi


mqtt broker on raspberry pi

En los últimos años,MQTTtiene comenzó a establecerse como el más común protocolo de mensajería usado para proyectos de IoT. Este documento proporciona a los desarrolladores un completo guía sobre cómo configurar y ejecutar unMQTT Brokeren Raspberry Pi en unos minutos. También verá lo fácil que puede agregar inteligencia a su Edge dispositivo con ESP8266. Una vez que usted ha ganado el conocimiento deMQTT Brokery cómo utilizar serás capaz de hacer sus propios proyectos de IoT.

Sinopsis:

Los pasos involucrados en la creación de un MQTT Broker en Raspberry Pi son

  • Instalación de MQTT Broker en Raspberry Pi
  • Configuración de MQTTBroker
  • Configuración del ESP8266
  • Flashing ESP8266
  • Conexión ESP8266 con MQTT Server
  • Interfaz de usuario de MQTT

MQTT

MQTTes un mensaje ligero protocolo que le permite enviar mensajes arbitrarios a través de un red a cualquier dispositivo interesado. Utiliza el método publicado/subscribe para intercambiar datos entre clientes y el servidor.

Instalación de MQTT Broker en Raspberry Pi

Vamos a usarBevywise MQTT Brokery el Raspberry Pi 3 ejecuta la última versión de Raspbian Jessie en este tutorial.

Para instalar el Bevywise MQTT Broker y sus paquetes cliente siguen los siguientes pasos

  • Puede descargar el broker desde
  • En el formulario de descarga, proporcionar todos los detalles requeridos, elegir el sistema operativo Raspberry, y descargar el MQTT Broker.
  • El archivo descargado estará en un formato zip.
  • Desactiva la carpeta zip descargada usando el comando
  • unzip Bevywise_MQTT_Route_Raspbian.zip
  • Una vez que descifra el archivo, se creará la carpeta Bevywise.

Configuración de MQTTBroker en Raspberry Pi

  • Para configurar el broker ir las Descargas - confiar Bevywise - confiar MQTTRoute - título Carpeta Conf.
  • En la carpeta conf, habrá dos archivos conf.
  • broker.conf
  • data_store.conf

broker.conf

  • Para configurar el broker MQTT, utilice elbroker.confarchivo dentro de la carpeta conf del paquete Bevywise.
  • Por defecto, el corredor se ejecutaránon-TLSmodo con el puerto1883, y elautenticaciónestá desactivado.
  • MQTT broker ofrece una opción para permitir la transferencia de datos cifrados y la autenticación.
  • Para ejecutar su producto con soporte SSL/TLS, cambieTLS_ENABLED = TRUEy cambiar el número de puerto a8883.
  • También puede conectar sus dispositivos de borde con mayor seguridadMQTT autenticación.
  • Para permitir el cambio de autenticaciónAUTHENTICATION_ENABLED = Sí.
  • Al habilitar esto, usted necesita proporcionar un MQTTnombre de usuarioycontraseñacuando el dispositivo del borde está conectado.
  • El nombre de usuario y la contraseña están disponibles en la interfaz de usuario de Broker.
  • Una vez que ejecute el broker, aparecerá la interfaz de usuario.
  • En la interfaz de usuario debajo de la“Authentication”tab, ahí será un nombre de usuario y contraseña.
  • Puede utilizar ese nombre de usuario y contraseña para una conexión segura del dispositivo.
MQTTRoute conf

data_store.conf

  • SQLitees el almacenamiento de datos predeterminado en MQTT broker.
  • Para almacenar una gran cantidad de datos, puede cambiar la configuración de almacenamiento aMySQL o MSSQL.
  • Para la visualización y análisis de datos de gran alcance, puede almacenar los datos enBúsqueda elásticao cualquier otroGran motor de datosusando una implementación personalizada.
  • Estas opciones configuradas utilizandodata_store.confarchivo dentro de la carpeta conf.
  • Para utilizar MySQL como cambio de almacenamiento de datos,DB_SERVER= MySQL.
  • Y proporcionar el nombre de usuario y contraseña requeridos para MySQL.
  • Ahora los datos se almacenarán dentro de la carpeta de datos en el nombre del archivo especificado paraMYSQL_DB.
MQTT Broker conf
  • Después de la configuración del corredor, ahora puede comenzar el MQTT Broker.
  • Para ejecutar el MQTTBroker como servicio, utilice la versión 5,25 Monit.

El procedimiento para establecer el dinero:

  • Descargue el Monit para Raspberry Pi 3, basado en sus servidores.
  • Extraer el archivo usandotar -xzf = archivo descargado.
  • Ve a monit-5.25.2/bin.
  • Copiar monit a /usr/bin carpeta utilizando el comando
  • sudo cp monit /usr/bin
  • Ve al monit-5.25.2/conf.
  • Utilizando el siguiente comando copiar el archivo monitrc a “/etc/”
  • sudo cp monitrc /etc/.

Configuración del mono:

  • Modificar el archivo monit conf.
  • Monit viene con su servidor web funcionando en el puerto 2812.
  • Para configurar la interfaz web, une la sección que comienza con el puerto httpd 2812 dentro/etc/monitrcarchivo.

Entonces usa

  • sudo vi /etc/monitrc.
  • Y, cambiar elnombre de usuario y contraseñasegún su necesidad.

Agregar servicios de vigilancia:

  • Al final del/etc/monitrcarchivo , añadir el siguiente.

Comprobar proceso MQTT broker, con pidfile Bevywise/MQTTRoute/Broker.pid.

programa de inicio = “Bevywise/MQTTRoute/bin/runbroker.sh” con tiempo de salida 2 segundos. stop program = “Bevywise/MQTTRoute/bin/stopbroker.sh” con tiempo de salida 2 segundos.

  • Para recargar los cambios de configuración, ejecutar

sudo monit reload

  • Para añadir el proceso de corretaje MQTT a monitorizar, utilizar

sudo monit start MQTTRoute

  • Reinicie el Raspberry Pi.
  • Ahora, el corredor empezará a correr en el fondo.

Configuración del ESP8266

Los siguientes pasos explican cómo destellar una biblioteca de clientes en ESP8266 utilizando el Arduino IDE.


Paso 1: Conecta tu PC con internet

  • Conecta tu PC a Internet en el que vas a flashear el ESP8266.
  • Puede conectarlo usando un cable Ethernet o WiFi.

Paso 2: Instalar el último Arduino IDE

  • Para instalar el último Arduino IDE, vaya a Arduino la página utilizando lo siguiente link https://www.arduino.cc
  • Seleccione su sistema operativo y descargue el último software.

Paso 3: Instalar el ESP8266 Junta

  • Una vez que instale el software Arduino, ábrelo.
  • Navegue a Archivo - confiar Preferencias - URLs Administrador de Juntas adicionales.
  • En este cuadro de texto, copiar y pegar el siguiente enlacehttp://arduino.esp8266.com/stable/package_esp8266com_index.json

Arduino preference

  • Haga clic en "ok" para guardar sus cambios.
  • Ahora abre el administrador de la Junta.
  • Ir a Herramientas - titulado Board - título Director de la Junta.

sketch tools

  • Seleccioneesp8266 por ESP8266 Comunidadpaquete e instalar Es.
board manager

  • Luego elija su tabla ESP8266 de Herramientas - título Board - confiar Genérico ESP8266 Módulo (ESP8266-01).
  • Herramientas - título Board - título NodeMCU 1.0 ESP-12 E Module (ESP8266-12 E & Development Board)
  • Finalmente, vuelva a abrir su IDE Arduino.

Paso 4: Instalar el software controlador de dispositivos – CDM21226

  • Descargar software de controlador para FTDI USB a TTL Adaptador serie Módulo desde el archivo zip.
  • Ahora descifra la carpeta descargada.
  • Ejecutar el archivo CDM21226_setup.exe e instalarlo.
  • Ahora, Conecta el ESP8266 al USB de tu PC.

Paso 5: Descargar e instalar las bibliotecas necesarias

  • Antes de programar el ESP8266, necesita instalar las bibliotecas en la biblioteca Arduino gerente.
  • Actualmente hay varios clientes compatibles con Arduino.
  • Uno de los clientes más conocidos es PubSubClient.
  • Funciona muy bien y es simple de usar.
  • Ahora, descargar la Biblioteca deGitHub.
  • Para instalar la Biblioteca PubSubClient, copiar y pegarlo en Documentos - título Arduino - título Biblioteca.
  • Y reiniciar Arduino IDE.

Paso 6: Compilar el programa principal

  • Una vez que haya instalado esas bibliotecas, podrá ejecutar el código.
  • Actualmente, antes de comenzar la programación, tenemos que elegir un par de varios alternativas.
  • En la opción de menú Herramientas, seleccione ESP8266 para Tablero, 80 MHz para la frecuencia CPU, 4M para el tamaño de Flash, y 115200 para el Sube la velocidad.
  • Además, trate de elegir el puerto COM que está utilizando (esto dependerá de su configuración).
  • Ahora, abra la interfaz de usuario de MQTT Broker paradescarga la biblioteca predeterminadade Bevywise MQTT Broker.
  • Debajo de la pestaña Clientes MQTT, descargue el código cliente compatible con su sistema operativo.
  • Una vez que inicie el Arduino, Abrir archivo - nuevos títulos en Arduino IDE.
  • Copia el programa en ESPMQTT_Client.
  • Pruébalo en un nuevo archivo.
  • Para compilar el programa principal, vaya a ArduinoIDE Sketch - plata verificar/compilar.

ESPMQTT_Client

ESPMQTT_Client#include ■ESP8266WiFi.h
#include ■PubSubClient.h
const char* ssid = “nombre de Wifi”;
const char* password = “contraseña de wifi”;
const char* mqtt_server = “localhost”;
WiFiClient espClient;
PubSubClient client(espClient);
int RECV_PIN = 5;
vaciado ()
{}
(!client.connected()))
{}
Serial.print(“Intento de conexión MQTT...”);
si(client.connect(“ESP8266Client”))
{}
Serial.println(“conectado”);
cliente.subscribe(“ESP8266/LED”);
cliente.publish (“ESP8266/LED”,”on”);
}
más
{}
Serial.print(“failed, rc=”);
Serial.print(client.state());
Serial.println(” intentar de nuevo en 5 segundos”);
retraso(5000);
}
}
}
configuración de vacío()
{}
pinMode (RECV_PIN,OUTPUT);
Serial.begin(115200);
digitalWrite(RECV_PIN,HIGH);
setup_wifi();
client.setServer(mqt_server, 1883);
client.setCallback(callback);
reconnect();
}
void setup_wifi()
{}
demora(10);
Serial.print(“Connecting to “);
Serial.println(ssid);
WiFi.begin(ssid, password);
(WiFi.status() != WL_CONNECTED)
{}
retraso(500);
Serial.print(“).
}
Serial.println (“WiFi conectado”);
Serial.println (“dirección IP: “);
Serial.println(WiFi.localIP());
}
callback (tópico de caracteres*, carga útil byte*, longitud de entrada sin señal)
{}
Serial.print(“El mensaje llegó [“);
Serial.print(topic);
Serial.print(“)”);
para (int i = 0; i)
{}
Serial.print(char)payload[i]);
}
if(char)payload[0] == ‘o’ " прены (char)payload[1] == ‘n’)
{}
digitalWrite (RECV_PIN,LOW);
}
}
vacío loop()
{}
si (!client.connected())
{}
reconnect();
}
cliente.loop();
}

A continuación hemos explicado el código para ayudarle a entender lo que está pasando.

Aquí, hemos configurado WIFI:

const char* ssid = “nombre de Wifi”;
const char* password = “contraseña de wifi”;

Luego la configuración MQTT:

const char* mqtt_server = “localhost”;
client.setServer(mqt_server, 1883);

  • En elcliente.setServer, proporcionar el número de puerto de corredor a configure el MQTT.

Ahora, hemos creado las pilas MQTT y WiFi:

WiFiClient espClient;
PubSubClient client(espClient);

  • Hemos creado la biblioteca PubSubClient, que hemos descargado antes.

Función de configuración de Arduino:

configuración de vacío()
{}
pinMode (RECV_PIN,OUTPUT);
Serial.begin(115200);
digitalWrite(RECV_PIN,HIGH);
setup_wifi();
client.setServer(mqt_server, 1883);
client.setCallback(callback);
reconnect();
}

  • Esta es la función de configuración Arduino.
  • En primer lugar, el LED configurado, luego el puerto serie se establece, y el WiFi configurado.
  • Finalmente, el cliente establece elMQTT serverdirección como 1883, y la función callback.

Configuración de un MQTT Publish/Subscribe:

vaciado ()
{}
(!client.connected())))
{}
Serial.print(“Intento de conexión MQTT...”);
si(client.connect(“ESP8266Client”))
{}
Serial.println(“conectado”);
cliente.subscribe(“ESP8266/LED”);
cliente.publish (“ESP8266/LED”,”on”);
}
más
{}
Serial.print(“failed, rc=”);
Serial.print(client.state());
Serial.println(” intentar de nuevo en 5 segundos”);
(5000)
}
}
}

  • En esta fase se realizará el proceso de publicación y suscripción.
  • Elcliente.connectintentará establecer el Conexión.
  • Elcliente.publishpublicará el tema “ESP8266/LED” con el valor “on”.
  • Si tiene éxito, el cliente publica el mensaje “on”.
  • Incliente., el cliente se suscribirá al tema “ESP8266/LED”.
  • Si ocurre un fracaso, intentará reconectarse.

Flashing ESP8266

  • Para flashear el ESP8266, vaya a ArduinoIDE - título Sketch - confianza subir.
circuit

Diagrama de circuito para Flashing el programa en ESP-12E

Conexión ESP8266 con MQTT broker en Raspberry Pi

  • Una vez subido el programa, el ESP8266 se iniciará y conectará al servidor MQTT.
  • Para asegurarse de que esté conectado, vaya a la interfaz de usuario MQTT.
  • Compruebe si el cliente está conectado o no.

Interfaz de usuario de MQTT

  • Una vez que se conecta al broker MQTT, puede verlo a través de la interfaz de usuario.
  • Utilice su navegador y abra la interfaz de usuario con la URL“http://localhost:8080”.
  • En la página de inicio de sesión, verá el predeterminado “Username” y “Password” como “admin”, utilizarlo para iniciar sesión en el usuario de MQTT Interfaz.
  • Los usuarios también pueden cambiar el nombre de usuario y la contraseña a través de la interfaz de usuario.
MQTT UI

  • El corredor Dashboard de MQTT dará una vista rápida del dispositivo conectado.
  • Los detalles del dispositivo individual se pueden ver visitando la pestaña Dispositivos.
  • El estado de conexión y los mensajes publicados serán actualizados dinámicamente.

RefiriéndonosAyuda a un corredor documentaciónpara más información sobre nuestra interfaz de usuario MQTT Broker. Para saber más sobre las características, visiteMQTT Brokerpágina.


Nota : ¿Es usted la persona tecnológica que busca automatizar su casa en una caja de pi Raspbery? Aquí está tuFOREVER GRUTIS MQTT Brokercon todos los widgets y dashboard necesario para monitorear y controlar sus dispositivos MQTT.