Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

MQTT-Kommunikation zwischen NodeMCU und Raspberry Pi 3 B+

Verwenden von MQTT, NodeMCU, DHT22, RaspberryPi und IoT MQTT Panel zur Überwachung von Temperatur und Luftfeuchtigkeit.

Verwendung eines Raspberry Pi 3 B+ als Broker für mehrere NodeMCU mit DHT-22-Sensoren, die Temperatur und Luftfeuchtigkeit messen und in der IoT MQTT Panel App überwachen. Ich habe den Algorithmus für NodeMCU und Raspberry eskalierbar gemacht. Ändern Sie einfach die veröffentlichten und abonnierten Themen und fügen Sie die IoT MQTT Panel App hinzu, um alle Daten jederzeit zur Hand zu haben.

Ich habe im Internet nach vielen Informationen gesucht, da ich keine Kenntnisse über Himbeere, Python und MQTT habe. Also habe ich alles, was ich gelernt habe, zusammengefasst und diesen Websites Anerkennung geschenkt.

Wenn Ihre Internetverbindung unterbrochen wird, senden Ihre Sensoren weiterhin Daten an Ihren Broker. Das heißt, Sie können Ihre Daten speichern!!! (natürlich musst du etwas programmieren)

Bitte folgen Sie mir für alle Updates. Bald werde ich ein Video von allem posten, was läuft!

1. Dinge verbinden:

So wird Ihr Netzwerk aussehen:

2. Dinge programmieren:

Zuerst müssen Sie sicherstellen, dass alle Bibliotheken auf Ihrer Arduino IDE und auf Ihrem Raspberry Pi 3B+ installiert sind.

2.1 Arduino

Installieren Sie die Bibliotheken auf Ihrer Arduino-IDE.

2.2 Raspberry Pi 3 b+

Installieren Sie die Bibliotheken auf Ihrer Python-IDE.

2.3 Hochladen von Codes

Laden Sie die Codes jeweils auf Ihre NodeMCU und Ihren Raspberry hoch.

2.4 Erklären des Codes – ARDUINO IDE

Dies sind die zuvor erwähnten Bibliotheken, die auf Ihrer Arduino-IDE installiert werden sollen.

#include  // Esp8266/NodeMCU Library#include  // MQTT Library#include "DHT.h" // DHT Sensor  

Variablen, die im gesamten Code verwendet werden sollen:

const char* mqtt_server ="Broker_IP_Address"; // MQTT-Server-IP-Adresse 

mqtt_server :Um die IP-Adresse auf Raspberry Pi zu erhalten, öffnen Sie einen Terminalbildschirm und geben Sie Folgendes ein:

[email protected]:~ $ ifconfigwlan0:flags=4163 mtu 1500 inet 192.168.1.200 Netzmaske 255.255.255.0 Broadcast 192.168.1.255  

In diesem Beispiel wäre die IP-Adresse 192.168.1.200

const char* clientID ="room1"; // Die Client-ID identifiziert das NodeMCU-Gerät. 

clientID :Ein beliebiger Name oder eine beliebige Nummer zur Identifizierung der von Ihnen verwendeten NodeMCU. In diesem Fall befindet es sich in Raum1. Also heißt es room1.

const char* topicT ="/room1/temperature"; // Topic temperatureconst char* topicH ="/room1/humidity"; // Thema Luftfeuchtigkeit 

thema :Thema zur Veröffentlichung der Temperatur. In diesem Beispiel für die Raumtemperatur lautet das Thema „/Raum1/Temperatur“.

ThemaH :Thema Luftfeuchtigkeit zu veröffentlichen. In diesem Beispiel für Raum1 Luftfeuchtigkeit lautet das Thema „/Raum1/Feuchtigkeit“.

const char* willTopic ="/room1/status"; // Thema Statusconst char* willMessage ="0"; // 0 - Getrennt 

willTopic :Thema zur Veröffentlichung des Testaments. Dies wird verwendet, um zu überprüfen, ob die NodeMCU angeschlossen/eingeschaltet ist. Wenn die Verbindung getrennt wird, wird die willMessage . veröffentlicht zum willTopic. In diesem Fall „/room1/status“

willMessage :Nachricht wird auf willTopic veröffentlicht wenn die NodeMCU getrennt/ausgeschaltet ist.

int willQoS =0;boolean willRetain =true; 

willQoS :Wird verwendet, um die Dienstqualität einzustellen. In diesem Fall 0.

wird behalten :Wird verwendet, um die Nachricht im Falle einer Trennung aufzubewahren. Auf Wahr setzen.

int counter =0; // Wird verwendet, um die Verbindung zum MQTT-Server wieder herzustellen const char* swversion ="1.0"; // Softwareversion 

Zähler :Zähler, der bei der Wiederverbindungsroutine verwendet wird.

swversion :verwendet, um meine Software-Revision zu kontrollieren.

WiFiClient wifiClient;PubSubClient client(mqtt_server, 1883, wifiClient); // 1883 ist der Listener-Port für den Broker 

wifiClient :Erstellt einen Client, der eine Verbindung zu einer angegebenen Internet-IP-Adresse und einem angegebenen Port herstellen kann, wie in client.connect() definiert.

client() :Client ist die Basisklasse für alle WiFi-Client-basierten Anrufe. Es wird nicht direkt aufgerufen, sondern immer dann aufgerufen, wenn Sie eine darauf basierende Funktion verwenden.

DHT dhtA(2, DHT22); // DHT-Instanz namens dhtA, Pin auf NodeMCU D4 und Sensortyp 

DHT :Erstellt eine Instanz namens dhtA und weist Pin 2 der NodeMCU V3 (D4) des Sensors DHT-22 zu. Gemäß den unten stehenden Schemata. Wenn Sie einen anderen Pin verwenden möchten, ändern Sie den Wert auf den richtigen Pin. Bevor Sie den verwendeten Pin ändern, überprüfen Sie die unten stehende Pinbelegung, um den richtigen Pin zuzuweisen.

Wenn Sie DHT-11 verwenden, wäre dies:

HINWEIS: Wenn Sie dieselbe Bibliothek verwenden wie ich. Wenn Sie eine andere Bibliothek verwenden, lesen Sie bitte in der Bibliotheksdokumentation nach, wie Sie Pins und Sensoren als verwendet deklarieren sollten.

Einrichtung ungültig() :Hier initialisieren wir die Dinge.

void setup() {Serial.begin(9600); // Debug-Zwecke prüfen, ob DHT und Verbindung mit MQTT Broker funktionierenSerial.print(swversion); // Debug. SoftwareversiondhtA.begin(); // Starten des DHT-22 

Verbindung mit MQTT-Broker herstellen.

Verzögerung(2000); // Verzögerung, um die erste Verbindung mit MQTT Broker zuzulassen 

Verspätung(2000) :Erhöhen Sie die Zeit, wenn die erste Verbindung fehlschlägt. In diesem Fall erlaubt 2000 der NodeMCU, sich mit dem Broker zu verbinden.

if (client.connect(clientID,"","", willTopic, willQoS, willRetain, willMessage, true)) { // Verbindung mit MQTT Broker 

client.connect() :unten erklärt. Aus: https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

Boolesche Verbindung (clientID, Benutzername, Passwort, willTopic, willQoS, willRetain, willMessage, cleanSession)

Verbindet den Client mit einer Will-Nachricht, einem Benutzernamen, einem Passwort und einem Flag für eine saubere Sitzung.

Hinweis :auch wenn die cleanSession ist auf false eingestellt /0 der Kunde wird nicht qos 1-Veröffentlichungen sind fehlgeschlagen. Dieses Flag ist nur von Nutzen, um Abonnements auf dem Broker aufrechtzuerhalten.

Parameter

Rückgabe

Quelle:MQTT-Kommunikation zwischen NodeMCU und Raspberry Pi 3 B+


Herstellungsprozess

  1. Python- und Raspberry Pi-Temperatursensor
  2. Raspberry Pi Temperatur- und Lichtsensor
  3. Raspberry Pi Sensor- und Aktuatorsteuerung
  4. NEUES HIMBEE PI 3 MODELL B + FUNKTIONEN UND KAUF
  5. Roboter bauen mit Raspberry Pi und Python
  6. Unterschied zwischen Galvanisieren und Eloxieren
  7. Unterschied zwischen Nichteisen- und Eisenmetallen
  8. Unterschied zwischen Hartlöten und Weichlöten
  9. Unterschied zwischen Bohren, Bohren und Reiben
  10. Unterschied zwischen Hobelmaschine und Hobelmaschine