Uncategorized

ESP32 MQTT: Sensordaten in 30 Minuten in die Cloud

Das Problem

Sie haben eine ESP32-Wetterstation gebaut. Temperatur und Luftfeuchtigkeit erscheinen perfekt auf Ihrem Serial Monitor. Aber hier ist das Problem — diese Daten stecken auf Ihrem Laptop fest. Sie können sie nicht vom Handy abrufen. Sie können sie nicht loggen. Sie können keine Automatisierungen auslösen.

MQTT löst das. Es ist das Kommunikationsprotokoll, das die meisten IoT-Systeme weltweit antreibt — von Smart Factories bis zu Home-Assistant-Installationen.

Was Sie bauen werden

Ein ESP32-Sensorknoten, der:

  • Alle 30 Sekunden Temperatur und Luftfeuchtigkeit liest
  • Daten an einen kostenlosen Cloud-MQTT-Broker veröffentlicht
  • Ihnen erlaubt, alles von jedem Webbrowser aus zu überwachen, egal wo

Schwierigkeit: Einsteiger  |  Zeit: 30 Minuten  |  Kosten: ~$23 an Teilen

Benötigte Hardware (Stückliste)

Teil Modell Anzahl Preis Kaufen
Mikrocontroller ESP32 DevKitC V4 1 $13.49 Produkt ansehen
Temperatur-/Feuchtesensor DHT22 1 $5.24 Produkt ansehen
Display (optional) 0.96″ OLED SSD1306 1 $5.99 Produkt ansehen
Breadboard 830-point 1 $4.49 Produkt ansehen
Jumper-Kabel M-M 40pcs 1 $2.99 Produkt ansehen

Schritt 1: Verkabelung

ESP32 ↔ DHT22

DHT22-Pin ESP32-Pin Hinweis
VCC 3V3 Strom
GND GND Masse
DATA GPIO 13 Datenleitung

ESP32 ↔ OLED (optional)

OLED-Pin ESP32-Pin Hinweis
VCC 3V3 Strom
GND GND Masse
SDA GPIO 21 I2C-Daten
SCL GPIO 22 I2C-Takt

Schritt 2: Bibliotheken installieren

Öffnen Sie Arduino IDE → Sketch → Include Library → Manage Libraries und installieren Sie:

  1. PubSubClient von Nick O’Leary (MQTT-Kommunikation)
  2. DHT sensor library von Adafruit (DHT22-Treiber)
  3. Adafruit SSD1306 (OLED-Display, falls verwendet)

Schritt 3: Code hochladen

#include <WiFi.h>
#include <PubSubClient.h>
#include "DHT.h"

// --- WiFi Settings ---
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

// --- MQTT Settings ---
const char* mqtt_server = "broker.hivemq.com";
const int mqtt_port = 1883;
const char* temp_topic = "sensbench/home/temperature";
const char* hum_topic = "sensbench/home/humidity";

// --- Sensor Settings ---
#define DHTPIN 13
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// --- Globals ---
WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() {
  delay(10);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("nWiFi connected! IP: ");
  Serial.println(WiFi.localIP());
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Connecting to MQTT...");
    String clientId = "sensbench-" + String(random(0xffff), HEX);
    if (client.connect(clientId.c_str())) {
      Serial.println("connected!");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" retrying in 5s");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  dht.begin();
  setup_wifi();
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) reconnect();
  client.loop();

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {
    Serial.println("Sensor read failed!");
    return;
  }

  char tempStr[8], humStr[8];
  dtostrf(t, 4, 2, tempStr);
  dtostrf(h, 4, 2, humStr);

  client.publish(temp_topic, tempStr);
  client.publish(hum_topic, humStr);

  Serial.printf("Temp: %s°C  Humidity: %s%%n", tempStr, humStr);
  delay(30000);
}

Schritt 4: Ihre Daten in der Cloud ansehen

  1. Öffnen Sie https://www.hivemq.com/mqtt-web-client/ in Ihrem Browser
  2. Klicken Sie auf Connect
  3. Fügen Sie unter Subscriptions das Topic hinzu: sensbench/home/#
  4. Beobachten Sie, wie Ihr ESP32 alle 30 Sekunden Echtzeitdaten sendet

Was kommt als Nächstes?

Jetzt, wo Ihre Daten in der Cloud sind, können Sie:

  • Ein Dashboard bauen mit Node-RED oder Home Assistant, um Daten zu visualisieren
  • Weitere Sensoren hinzufügen — BME280 für Luftdruck, Bodenfeuchte für Pflanzen
  • Automatisierungen auslösen — “wenn Temperatur > 30°C, Lüfter einschalten”
  • Auf Batteriebetrieb umstellen — Deep-Sleep-Modus für monatelangen Betrieb

Leave a Reply

Your email address will not be published. Required fields are marked *