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

Nahtlose MQTT-Integration: NodeMCU DHT22 Sensoren mit Raspberry Pi 3 B+ als Broker

Ein skalierbares IoT-Lösung deployen, das NodeMCU Mikrocontroller mit DHT22 Temperatur-/Feuchtigkeitssensoren an einen Raspberry Pi 3 B+ als MQTT-Broker koppelt. Daten werden in Echtzeit in der IoT MQTT Panel App visualisiert.

In diesem Guide gehe ich durch Hardware-Verbindungen, Software-Setup und Code-Struktur, die es erlauben, Sensorknoten einfach durch Editieren von MQTT-Themes hinzuzufügen oder zu entfernen. Fällt das Netzwerk aus, veröffentlicht jeder NodeMCU weiterhin lokal; später kann man sich wieder mit dem Broker verbinden, um gepufferte Daten wiederherzustellen.

1. Netzwerkarchitektur

Das typische Layout platziert den Raspberry Pi im LAN und jeden NodeMCU hinter demselben Wi-Fi-Router. Sensoren lesen Werte alle 10 Sekunden und veröffentlichen auf distincten Topics wie /room1/temperature und /room1/humidity. Der Broker lauscht auf Port 1883 und leitet Nachrichten an die MQTT Panel App weiter.

2. Software-Voraussetzungen

2.1 Arduino IDE Bibliotheken

2.2 Raspberry Pi Python Abhängigkeiten

3. Firmware hochladen

NodeMCU mit bereitgestelltem Sketch flashen, dann Python-Skript auf dem Raspberry Pi ausführen, um Topics zu abonnieren und Daten zu speichern.

4. NodeMCU Sketch Überblick

#include <ESP8266WiFi.h> // ESP8266 Wi‑Fi Bibliothek
#include <PubSubClient.h> // MQTT Client
#include "DHT.h" // DHT Sensor Bibliothek
const char* mqtt_server = "Broker_IP_Address"; // Mit Pi IP ersetzen
const char* clientID = "room1"; // Knoten-Identifikator
const char* topicT = "/room1/temperature"; // Temperatur Topic
const char* topicH = "/room1/humidity"; // Feuchte Topic
const char* willTopic = "/room1/status"; // Will Topic
const char* willMessage = "0"; // 0 = disconnected
int willQoS = 0;
boolean willRetain = true;
int counter = 0;
const char* swversion = "1.0";
WiFiClient wifiClient;
PubSubClient client(mqtt_server, 1883, wifiClient);
DHT dhtA(2, DHT22); // DHT22 an NodeMCU Pin D4 (GPIO2)
void setup() {
  Serial.begin(9600);
  Serial.print(swversion);
  dhtA.begin();
  delay(2000); // Wi‑Fi settling erlauben
  if (client.connect(clientID, "", "", willTopic, willQoS, willRetain, willMessage, true)) {
    Serial.println("Connected to MQTT broker");
  }
}

Ersetzen Sie Broker_IP_Address mit der lokalen IP des Pi (z. B. 192.168.1.200). Um sie zu finden, ifconfig wlan0 auf dem Pi ausführen.

Der willTopic und willMessage ermöglichen dem Broker, unerwartete Knotentrennungen zu detektieren, indem ein retained „0“ Status veröffentlicht wird, der im Panel visualisiert werden kann.

5. Raspberry Pi Subscriber Skript

Das Python-Skript erstellt eine persistente Verbindung zum Broker, abonniert relevante Topics und schreibt eingehende Daten in eine CSV-Datei für spätere Analyse.

6. System skalieren

Um einen neuen Raum hinzuzufügen, einfach den Sketch duplizieren, clientID, topicT, topicH und willTopic auf den neuen Raumnamen ändern und auf einen weiteren NodeMCU hochladen. Die MQTT Panel App erkennt neue Topics automatisch, wenn Sie sie in der UI hinzufügen.

Bei Netzwerkverlust veröffentlicht der NodeMCU weiterhin in seine lokale Broker-Queue. Sobald die Verbindung wiederhergestellt ist, werden die Nachrichten geleert, was keinen Datenverlust sicherstellt.

Folgen Sie mir für Updates, und bleiben Sie dran für ein Demo-Video des gesamten Systems in Aktion.

Herstellungsprozess

  1. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  2. Multi-Sensor Temperatur- & Licht-Überwachung mit Raspberry Pi & DS18B20
  3. Raspberry Pi Sensor & Aktuator Steuerung meistern: Beschleunigungsmesser, Servo und Datenstreaming
  4. Raspberry Pi 3 B+ – Aktualisierte Features, Specs & Kaufberatung
  5. Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
  6. Galvanisieren vs. Eloxieren: Wichtige Unterschiede bei Metall-Oberflächenbehandlungen
  7. Ferro- vs. Nichteisenmetalle: Unterschiede, Eigenschaften und Anwendungen
  8. Hartlöten vs. Weichlöten: Metallurgische Unterschiede und Praxiseinsatz
  9. Bohren, Aufbohren, Reiben: Unterschiede und Einsatzgrenzen
  10. Schleifmaschine vs. Hobelmaschine: Wesentliche Unterschiede im Vergleich