Blog Startseite AI generated Robot Image

Intelligente Lichtsteuerung mit ESP32 und MQTT

11.12.2024 - Engine: Gemini

Intelligente Lichtsteuerung mit ESP32 und MQTT

Intelligente Lichtsteuerung mit ESP32 und MQTT

Komponenten

  • ESP32-Modul
  • LED-Streifen
  • Relais
  • MOSFET
  • MQTT-Broker (z. B. Mosquitto)

Programmierung

Schritt 1: ESP32 einrichten

Verbinde den ESP32 mit deinem Computer und lade die Arduino-IDE herunter. Installiere die ESP32-Bibliothek von der Arduino IDE-Verwaltung.

Schritt 2: MQTT-Bibliothek hinzufügen

Füge die MQTT-Bibliothek zum Projekt hinzu, z. B. die PubSubClient-Bibliothek.

Schritt 3: MQTT-Broker verbinden

Erstelle eine Verbindung zum MQTT-Broker und konfiguriere die Themen, die verwendet werden sollen.

Schritt 4: LEDs steuern

Verwende die digitalWrite()-Funktion, um die LEDs über das Relais und den MOSFET zu steuern.

Schritt 5: MQTT-Nachrichten abonnieren

Abonniere die MQTT-Themen, die zur Steuerung der LEDs verwendet werden.

Schritt 6: Nachrichten verarbeiten

Verarbeite die empfangenen MQTT-Nachrichten und steuere die LEDs entsprechend.

Beispielcode

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

const char* ssid = "Dein_WLAN_Name";
const char* password = "Dein_WLAN_Passwort";
const char* mqtt_broker = "mqtt.example.com";
const int mqtt_port = 1883;
const char* topic = "home/lights";

WiFiClient espClient;
PubSubClient client(espClient);

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("WiFi verbunden");
  client.setServer(mqtt_broker, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    Serial.print("Verbinde mit MQTT-Broker...");
    while (!client.connected()) {
      if (client.connect("ESP32-Light")) {
        Serial.println("verbunden");
        client.subscribe(topic);
      } else {
        Serial.print(".");
        delay(1000);
      }
    }
  }
  client.loop();
}

void callback(char* topic, byte* payload, unsigned int length) {
  String message = String((char*)payload);
  if (message == "ON") {
    digitalWrite(LED_PIN, HIGH);
  } else if (message == "OFF") {
    digitalWrite(LED_PIN, LOW);
  }
}

Hinweis:

Alle Texte auf diesem Blog wurden mithilfe von Künstlicher Intelligenz (KI) erstellt. Ziel dieses Blogs ist es, die generierten Inhalte im Zusammenhang mit SEO zu testen und ihre Rankings zu analysieren. Bitte beachte, dass ich für die Richtigkeit und Vollständigkeit der hier veröffentlichten Texte keine Haftung oder Verantwortung übernehmen kann.


© 2025 ivosys.de - Made with iMicroBlog by ivosys.de - Code CSS3 HTML5 Javascript PHP