ESP32 und MAX485: Überwachung der Leistungsdaten eines Solax-Wechselrichters mit MQTT

Die Überwachung der Leistungsdaten eines Solax-Wechselrichters ist für die effiziente Nutzung von Solarenergie von entscheidender Bedeutung. In diesem Artikel werden wir zeigen, wie man einen ESP32-Mikrocontroller und den MAX485-Transceiver verwendet, um die Leistungsdaten eines Solax-Wechselrichters auszulesen und sie über MQTT (Message Queuing Telemetry Transport) zur Verfügung zu stellen. MQTT ermöglicht die einfache und effektive Übertragung der Daten an ein MQTT-Broker-System, das sie weiterverarbeiten und anzeigen kann.

Schritt 1: Hardware-Komponenten
Für dieses Projekt benötigen Sie einen ESP32-Mikrocontroller und einen MAX485-Transceiver. Der ESP32 wird verwendet, um die Kommunikation zwischen dem Solax-Wechselrichter und dem MQTT-Broker herzustellen, während der MAX485 den bidirektionalen Datenaustausch ermöglicht. Stellen Sie sicher, dass Sie die erforderlichen Verbindungen zwischen dem ESP32, dem MAX485 und dem Solax-Wechselrichter herstellen.

Schritt 2: Software-Konfiguration
Installieren Sie die erforderlichen Bibliotheken auf dem ESP32, um die Kommunikation mit dem Solax-Wechselrichter und MQTT zu ermöglichen. Sie benötigen die „ModbusMaster“ Bibliothek für die Kommunikation mit dem Solax-Wechselrichter und die „umqtt.robust“ Bibliothek für die MQTT-Kommunikation. Sie können diese Bibliotheken über den Bibliotheksverwalter in der Arduino-IDE installieren.

Schritt 3: ESP32-Code
Schreiben Sie den folgenden Code und laden Sie ihn auf den ESP32:

import time
from machine import UART
from modbus_master import ModbusMaster
from umqtt.robust import MQTTClient

# Modbus-Konfiguration
uart = UART(2, 9600, tx=17, rx=16)  # UART-Verbindung zum MAX485 (anpassen Sie die Pin-Nummern entsprechend Ihrer Verkabelung)
modbus = ModbusMaster(uart)

# MQTT-Konfiguration
mqtt_broker = 'mqtt.server.com'  # MQTT-Broker-Adresse
mqtt_topic = 'solax/leistungsdaten'  # MQTT-Topic zum Veröffentlichen der Leistungsdaten

# MQTT-Verbindung herstellen
mqtt_client = MQTTClient("esp32", mqtt_broker)
mqtt_client.connect()

while True:
    # Leistungsdaten vom Solax-Wechselrichter abrufen
    modbus.read_holding_registers(slave=1, start_register=0x3100, register_count=7)

    if modbus.last_error() == 0:
        # Leistungsdaten aus den empfangenen Registern extrahieren
        pv_power = modbus.get_float(0)  # PV-Leistung
        ac_power = modbus.get_float(2)  # AC-Leistung
        dc_voltage = modbus.get_float(4)  # DC-Spannung
        dc_current = modbus.get_float(6)  # DC-Strom

        # Leistungsdaten per MQTT veröffentlichen
        mqtt_client.publish(mqtt_topic, f"PV-Leistung: {pv_power}

 W, AC-Leistung: {ac_power} W, DC-Spannung: {dc_voltage} V, DC-Strom: {dc_current} A")

    time.sleep(10)  # Intervall zwischen den Abfragen anpassen

mqtt_client.disconnect()

Passen Sie die Konfigurationsvariablen entsprechend Ihren Einstellungen an. Stellen Sie sicher, dass Sie die richtigen UART-Pins für die Verbindung zum MAX485 definieren.

Schritt 4: Datenüberwachung
Sobald der Code auf den ESP32 geladen ist und er mit dem Solax-Wechselrichter und dem MQTT-Broker verbunden ist, werden die Leistungsdaten in regelmäßigen Abständen abgerufen und über MQTT veröffentlicht. Sie können einen MQTT-Subscriber verwenden, um die Daten zu empfangen und anzuzeigen oder sie in eine Datenbank speichern.

Fazit:
Die Kombination aus ESP32, MAX485 und MQTT ermöglicht es uns, die Leistungsdaten eines Solax-Wechselrichters einfach zu überwachen und weiterzuverarbeiten. Durch die Verwendung dieser Technologien können wir die Effizienz der Solarenergieerzeugung optimieren und fundierte Entscheidungen über den Energieverbrauch treffen. Experimentieren Sie mit diesem Setup und entdecken Sie weitere Möglichkeiten, um erneuerbare Energieressourcen zu überwachen und zu nutzen.