Text geknüpft
HomeBlog IoT-Umgebung konfigurieren

End-to-end IoT-Umgebung auf Raspberry Pi konfigurieren

von Ponlakshmi


mqtt broker on raspberry pi

In den letzten Jahren,MQThat begann sich als die am häufigsten verwendet Messaging-Protokoll für IoT-Projekte. Dieses Dokument bietet Entwicklern ein komplettes Anleitung zur Einrichtung und Durchführung einesMQTT Brokerauf Raspberry Pi in nur wenigen Minuten. Sie werden auch sehen, wie einfach Sie Intelligenz zu Ihrem Edge hinzufügen können Gerät mit ESP8266. Sobald Sie das Wissen über dieMQTT Brokerund wie man benutzt Sie werden in der Lage sein, Ihre eigenen IoT-Projekte.

Überblick:

Die Schritte bei der Einrichtung eines MQTT Broker auf Raspberry Pi sind

  • Installation von MQTT Broker auf Raspberry Pi
  • Konfiguration von MQTTBroker
  • Einrichtung des ESP8266
  • Flashing ESP8266
  • ESP8266 mit MQTT Server verbinden
  • MQTT Broker Benutzeroberfläche

MQT

MQTist ein leichtes Messaging Protokoll, mit dem Sie beliebige Nachrichten über eine Netzwerk an jedes interessierte Gerät. Es nutzt die Methode zur Veröffentlichung/Abmeldung, um Daten auszutauschen unter Clients und dem Server.

Installation von MQTT Broker auf Raspberry Pi

Wir werden benutzenBevywise MQTT Brokerund der Raspberry Pi 3 die neueste Version von Raspbian Jessie in diesem Tutorial.

Um den Bevywise MQTT Broker und seine Client-Pakete zu installieren, folgen Sie den folgenden Schritten

  • Sie können den Broker herunterladen
  • Im Download-Formular, stellen Sie alle Ihre erforderlichen Details, wählen Sie das Raspberry OS, und den MQTT Broker herunterladen.
  • Die heruntergeladene Datei wird in einem Zip-Format.
  • Entpacken Sie den heruntergeladenen Zip-Ordner mit dem Befehl
  • unzip Bevywise_MQTT_Route_Raspbian.zip
  • Sobald Sie die Datei entpacken, wird der Bevywise Ordner erstellt.

Konfiguration von MQTTBroker auf Raspberry Pi

  • Um den Broker zu konfigurieren gehen die Downloads -> Bevywise -> MQTTRoute -> Ordner konfiszieren.
  • Im conf-Ordner gibt es zwei conf-Dateien.
  • Broker.conf
  • data_store.conf

Broker.conf

  • Um den MQTT-Broker zu konfigurieren, verwenden Sie dieBroker.confDatei in der conf Ordner des Bevywise Pakets.
  • Standardmäßig wird der Broker eingeschaltetNicht-TLSModus mit dem Hafennummer1883, undAuthentisierungist deaktiviert.
  • MQTT Broker bietet eine Option, um verschlüsselte Datenübertragung und Authentifizierung zu ermöglichen.
  • Um Ihr Produkt mit SSL/TLS Support zu betreiben, ändern SieTLS_ENABLEN = TRund die Portnummer ändern8883.
  • Sie können auch Ihre Edge-Geräte sicherer mitMQT Authentifizierung.
  • Um die Authentifizierungsänderung zu aktivierenAUTHENTIC_ENABLED = Ja.
  • Indem Sie dies aktivieren, müssen Sie einen MQTT bereitstellenIch weiß nicht.undPasswort vergessen?bei angeschlossener Kanteneinrichtung.
  • Der Benutzername und das Passwort sind in der Broker Benutzeroberfläche verfügbar.
  • Sobald Sie den Broker ausführen, wird die Benutzeroberfläche angezeigt.
  • In der Benutzeroberfläche unterhalb der„Authentication“Tab, da wird ein Benutzername und Passwort sein.
  • Sie können diesen Benutzernamen und das Passwort für eine sichere Geräteverbindung verwenden.
MQTTRoute conf

data_store.conf

  • SQLiteist der Standarddatenspeicher im MQTT-Broker.
  • Um eine große Anzahl von Daten zu speichern, können Sie die Speicherkonfiguration ändernMySQL oder MSSQL.
  • Für eine leistungsfähige Visualisierung und Analyse von Daten können Sie die Daten inElastische Sucheoder andereBig Data Motormit einer benutzerdefinierten Implementierung.
  • Diese Optionen mitdata_store.confDatei in der conf Ordner.
  • Um MySQL als Datenspeicheränderung zu verwenden,DB_SERVER= MySQL.
  • Und geben Sie den gewünschten Benutzernamen und das Passwort für MySQL an.
  • Nun werden die Daten im Datenordner im Namen der fürMYSQL_DB.
MQTT Broker conf
  • Nach der Broker-Konfiguration können Sie jetzt den MQTT Broker starten.
  • Um den MQTTBroker als Service zu betreiben, verwenden Sie die Monit Version 5.25.

Das Verfahren zur Einrichtung des Monit:

  • Laden Sie den Monit für Raspberry Pi 3 auf Basis Ihrer Server herunter.
  • Extrahieren Sie das Archivtar -xzf < Dateie>.
  • Geh zu monit-5.25.2/bin.
  • Kopieren Sie Monit in /usr/bin Ordner mit dem Befehl
  • Sudo cp monit /usr/bin
  • Gehe zu monit-5.25.2/conf.
  • Mit dem folgenden Befehl kopieren Sie die Monitrc-Datei auf „/etc/“
  • )

Monit Konfiguration:

  • Ändern Sie die Monit conf-Datei.
  • Monit kommt mit seinem Webserver auf Port 2812.
  • Um die Web-Schnittstelle zu konfigurieren, deaktivieren Sie den Abschnitt, der mit gesetztem httpd-Port beginnt ANHANG in/etc/monitrcDatei.

Dann verwenden Sie

  • sudo vi /etc/monitrc.
  • Und, ändern Sie dieBenutzername und Passwortnach Ihren Bedürfnissen.

Begleitdienste hinzufügen:

  • Am Ende des/etc/monitrcDatei , fügen Sie folgendes hinzu.

Prüfen Sie den Prozess MQTT Broker, mit pidfile Bevywise/MQTTRoute/Broker.pid.

Startprogramm = „Bevywise/MQTTRoute/bin/runbroker.sh“ mit Timeout 2 Sekunden. Stoppprogramm = "Bevywise/MQTTRoute/bin/stopbroker.sh" mit Timeout 2 Sekunden.

  • Um die Konfigurationsänderungen neu zu laden, laufen

Nach oben

  • Um den MQTT-Brokerprozess zur Überwachung hinzuzufügen, verwenden

sudo monit start MQTTRoute

  • Starten Sie den Raspberry Pi.
  • Der Broker wird im Hintergrund laufen.

Einrichtung des ESP8266

Die folgenden Schritte erklären, wie man eine Client-Bibliothek in ESP8266 mit der Arduino IDE blinkt.


Schritt 1: Verbinden Sie Ihren PC mit Internet

  • Verbinden Sie Ihren PC mit dem Internet, in dem Sie den ESP8266 flash.
  • Sie können sie mit einem Ethernet-Kabel oder WLAN verbinden.

Schritt 2: Installieren Sie die neueste Arduino IDE

  • Um die neueste Arduino IDE zu installieren, navigieren Sie auf der Arduino die Seite mit der folgenden Link https://www.arduino.cc
  • Wählen Sie Ihr Betriebssystem und laden Sie die neueste Software herunter.

Schritt 3: Installieren der ESP8266 Vorstand

  • Sobald Sie die Arduino Software installieren, öffnen Sie sie.
  • Navigieren auf Datei -> Einstellungen -> Zusätzliche Boards Manager URLs.
  • In diesem Textfeld kopieren und fügen Sie den folgenden Link einhttp://arduino.esp8266.com/stable/package_esp8266com_index.json

Arduino preference

  • Klicken Sie auf „ok“, um Ihre Änderungen zu speichern.
  • Jetzt öffnen Sie den Board Manager.
  • Gehen Sie zu Tools -> Board -> Board Manager.

sketch tools

  • Wählen Sie dieEsp8266 von ESP8266 GemeinschaftPaket und Installation es.
board manager

  • Wählen Sie dann Ihr ESP8266 Board von Tools -> Board -> Generisches ESP8266 Modul (ESP8266-01).
  • Werkzeuge -> Board -> NodeMCU 1.0 ESP-12 E Module (ESP8266-12 E & Development Board)
  • Endlich, wieder öffnen Sie Ihre Arduino IDE.

Schritt 4: Installieren Sie die Gerätetreiber-Software – CDM21226

  • Treiber-Software für FTDI USB herunterladen auf TTL Serial Adapter Modul aus der Zip-Datei.
  • Jetzt unzip heruntergeladenen Ordner.
  • Führen Sie die CDM21226_setup.exe-Datei aus und installieren Sie sie.
  • Verbinden Sie nun den ESP8266 mit dem USB Ihres PCs.

Schritt 5: Downloaden und Installieren der benötigten Bibliotheken

  • Vor der Programmierung der ESP8266 müssen Sie die Bibliotheken in der Arduino-Bibliothek installieren Manager.
  • Es gibt jetzt einige Arduino-kompatible MQTT-Clients.
  • Einer der bekanntesten Kunden ist PubSubClient.
  • Es funktioniert sehr gut und ist einfach zu bedienen.
  • Jetzt die Bibliothek herunterladenGitHub.
  • Um die PubSubClient Library zu installieren, kopieren und in Dokumente einfügen -> Arduino -> Bibliothek.
  • Und starten Sie Arduino IDE neu.

Schritt 6: Kompilieren Sie das Hauptprogramm

  • Sobald Sie diese Bibliotheken installiert haben, können Sie den Code ausführen.
  • Zur Zeit, vor Beginn der Programmierung, müssen wir ein paar verschiedene Alternativen.
  • Wählen Sie in der Menüwahl Tools ESP8266 für Board, 80 MHz für die CPU-Frequenz, 4M für die Flash-Größe und 115200 für die Hochladengeschwindigkeit.
  • Darüber hinaus versuchen Sie, den COM-Port zu wählen, den Sie verwenden (dies wird sich auf Ihre verlassen Einrichtung).
  • Jetzt öffnen Sie die MQTT Broker Benutzeroberfläche, umZurück zur Übersicht Die Standardbibliothekvon Bevywise MQTT Broker.
  • Unterhalb der Registerkarte MQTT Clients laden Sie den Clientcode herunter, der mit Ihrem Betriebssystem kompatibel ist.
  • Sobald Sie die Arduino, Open-Datei -> neu in Arduino IDE starten.
  • Kopieren Sie das Programm in ESPMQTT_Client.
  • Fügen Sie es auf eine neue Datei.
  • Um das Hauptprogramm zu kompilieren, gehen Sie nach ArduinoIDE Sketch -> überprüfen/compile.

ESPMQTT_Client

ESPMQTT_Client#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = „wifi name“;
const char* Passwort = „Wifi-Passwort“;
const char* mqt_server = „localhost“;
WiFiClient espClient;
PubSubClient Client(espClient);
int RECV_PIN = 5;
Leere Wiederverbindung()
{\cHFFFF}
während (!client.connected()
{\cHFFFF}
Serial.print(“Versuche MQTT-Verbindung...”);
wenn(client.connect(“ESP8266Client“))
{\cHFFFF}
Serial.println („connected“);
client.subscribe(“ESP8266/LED”);
client.publish(“ESP8266/LED”,”on”);
}
andere
{\cHFFFF}
Serial.print(“failed, rc=”);
Serial.print(client.state());
Serial.println(” versuchen Sie erneut in 5 Sekunden”);
Verzögerung(5000);
}
}
}
Nichtigkeitseinstellung()
{\cHFFFF}
pinMode (RECV_PIN,OUTPUT);
Serial.begin(115200);
digitalWrite(RECV_PIN,HIGH);
Setup_wifi();
client.setServer(mqt_server, 1883);
client.setCallback (Callback)
Reconnect();
}
nicht vorhanden_wifi()
{\cHFFFF}
Verzögerung(10)
Serial.print(“Connecting to “);
Serial.println(ssid);
WiFi.begin(ssid, passwort);
während (WiFi.status() != WL_CONNECTED)
{\cHFFFF}
Verzögerung(500)
Serial.print(“);
}
Serial.println(“WiFi verbunden”);
Serial.println(“IP-Adresse: “);
Serial.println(WiFi.localIP());
}
Leer Callback(char*-Thema, Byte* Payload, unbezeichnet int Länge)
{\cHFFFF}
Serial.print(“Message eingetroffen [“);
Serial.print(topisch);
Serial.print(“);
für (in i = 0; i < Länge; i++)
{\cHFFFF}
Serial.print((char)payload[i];
}
wenn((char)payload[0] = „o“ && (char)payload[1] = „n“
{\cHFFFF}
digitales Schreiben (RECV_PIN,LOW);
}
}
Leerschleife()
{\cHFFFF}
wenn (!client.connected())
{\cHFFFF}
Reconnect();
}
Client.loop();
}

Im Folgenden haben wir den Code erklärt, um Ihnen zu helfen, zu verstehen, was vor sich geht.

Hier haben wir WIFI verdient

const char* ssid = „wifi name“;
! Passwort = „Wifi-Passwort“;

Dann die MQTT-Konfiguration:

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

  • In derClient.setServer, bieten die Broker-Port-Nummer zu Konfiguration des MQTT.

Jetzt haben wir die MQTT und WiFi-Stacks erstellt:

WiFiClient espClient;
PubSubClient Client(espClient);

  • Wir haben die PubSubClient Bibliothek erstellt, die wir zuvor heruntergeladen haben.

Arduino Setup Funktion:

Nichtigkeitseinstellung()
{\cHFFFF}
pinMode (RECV_PIN,OUTPUT);
Serial.begin(115200);
digitalWrite(RECV_PIN,HIGH);
Setup_wifi();
client.setServer(mqt_server, 1883);
client.setCallback (Callback)
Reconnect();
}

  • Dies ist die Arduino-Setup-Funktion.
  • Zuerst wurde die LED konfiguriert, dann der serielle Port eingerichtet und das WLAN konfiguriert.
  • Schließlich setzt der Client dieMQTT ServerAdresse als 1883, und die Rückruffunktion.

Einrichtung eines MQTT Publish/Subscribe:

Der Präsident
(STÖHNT)
(!client.connect()
(STÖHNT)
Serial.print(“Versuche MQTT-Verbindung...”);
wenn(client.connect(“ESP8266Client“)
(STÖHNT)
Serial.println („connected“);
client.subscribe(“ESP8266/LED”);
client.publish(“ESP8266/LED”,”on”);
}
andere
(STÖHNT)
Serial.print(“failed, rc=”);
Serial.print(client.state());
Serial.println(” erfordern Sie erneut in 5 Sekunden”);
Verzögerung(5000);
}
}
}

  • In dieser Phase wird der Veröffentlichungs- und Anmeldevorgang stattfinden.
  • DieClient.connectwird versuchen, die Verbindung.
  • DieIn den Warenkorbwird das Thema „ESP8266/LED“ veröffentlichen mit dem Wert "on".
  • Wenn erfolgreich, veröffentlicht der Client die "on" Nachricht.
  • InClient., der Client wird das Thema abonnieren „ESP8266/LED“.
  • Wenn ein Fehler auftritt, wird es versuchen, wieder zu verbinden.

Flashing ESP8266

  • Um den ESP8266 zu blinken, gehen Sie zu ArduinoIDE -> Sketch -> Upload.
circuit

Schaltplan zum Flashen des Programms in ESP-12E

Verbindung von ESP8266 mit MQTT Broker auf Raspberry Pi

  • Nach dem Upload des Programms wird der ESP8266 gestartet und mit dem MQTT Server verbunden.
  • Um sicherzustellen, dass es angeschlossen ist, gehen Sie auf die MQTT-Benutzeroberfläche.
  • Überprüfen Sie, ob der Client angeschlossen ist oder nicht.

MQTT Broker Benutzeroberfläche

  • Sobald Sie mit dem MQTT-Broker verbunden sind, können Sie es über die Benutzeroberfläche anzeigen.
  • Verwenden Sie Ihren Browser und öffnen Sie die Benutzeroberfläche mit der URL„http://localhost:80“.
  • Auf der Login-Seite sehen Sie den Standard “Username” und “Passwort” als “admin”, verwenden Sie es zum MQTT-Broker einloggen Schnittstelle.
  • Benutzer können auch den Benutzernamen und das Passwort über die Benutzeroberfläche ändern.
MQTT UI

  • Das Dashboard von MQTT Broker gibt einen schnellen Blick auf das angeschlossene Gerät.
  • Die einzelnen Gerätedetails sind durch den Besuch der Geräte-Tab zu erkennen.
  • Der Verbindungsstatus und die veröffentlichten Nachrichten werden dynamisch aktualisiert.

Wir empfehlenHilfe und Hilfe Dokumentationfür mehr Informationen Ã1⁄4ber unsere MQTT Broker User Interface. Um mehr über die Features zu erfahren, besuchen Sie dieMQTT BrokerSeite.


Anmerkung : Sind Sie die Technologie Person, die Ihr Haus auf einem Raspbery Pi-Box automatisieren will? Hier ist IhrFÜR KOSTENLOSE MQTT Brokermit allen Widgets und Dashboard benötigt, um Ihre MQTT-Geräte zu überwachen und zu steuern.