#pragma once // ============================================================ // Pin-Belegung — Quelle: https://github.com/mwalle/shinelanx-modbus // Gleiche Platine, verifizierte Pins // STM32F103RBT6, LQFP-64 // ============================================================ // ENC28J60 — SPI2 (Hardware-SPI) // LQFP-64: PB12=33, PB13=34, PB14=35, PB15=36, PC6=37, PC8=39 #define ETH_CS_PIN PB12 // ENC28J60 /CS (SPI2 NSS) #define ETH_SCK_PIN PB13 // ENC28J60 SCK (SPI2 SCK) #define ETH_MISO_PIN PB14 // ENC28J60 SO (SPI2 MISO) #define ETH_MOSI_PIN PB15 // ENC28J60 SI (SPI2 MOSI) #define ETH_RST_PIN PC8 // ENC28J60 /RESET #define ETH_INT_PIN PC6 // ENC28J60 INT# (optional, polling reicht) // LEDs #define LED_DEBUG PC7 // Debug-LED (grün o.ä.) #define LED_RED PB1 // RGB Rot #define LED_GREEN PB0 // RGB Grün #define LED_BLUE PC5 // RGB Blau // Taster #define BTN_USER PA3 // User-Taster (low-aktiv) // ============================================================ // NETZWERK // ============================================================ // 0 = DHCP, 1 = Statische IP #define USE_DHCP 1 // Nur relevant wenn USE_DHCP = 0 #define STATIC_IP 192,168,2,15 #define STATIC_GW 192,168,2,1 #define STATIC_SUBNET 255,255,255,0 #define STATIC_DNS 192,168,2,1 // MAC-Adresse — muss im Netzwerk eindeutig sein #define MAC_ADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED // ============================================================ // MQTT // ============================================================ #define MQTT_BROKER "192.168.1.1" #define MQTT_PORT 1883 #define MQTT_USER "mqtt" #define MQTT_PASSWORD "HIER_MQTT_PASSWORT_EINTRAGEN" #define MQTT_CLIENT "growatt-shinelan" // ============================================================ // MODBUS / WECHSELRICHTER-KOMMUNIKATION // Growatt kommuniziert über USB-CDC (virtueller COM-Port) bei 115200 Baud. // STM32 agiert als USB-Device (CDC), Wechselrichter ist USB-Host. // Physikalisch: PA11=D-, PA12=D+, PA8=USB-Pullup-Steuerpin // Kein RS485, kein DE/RE-Pin nötig. // ============================================================ #define MODBUS_BAUD 115200 // Growatt USB-CDC Baudrate #define MODBUS_ADDR 1 // Modbus Slave-Adresse des Wechselrichters // ============================================================ // GERÄT // ============================================================ #define DEVICE_ID "growatt_shinelan" #define DEVICE_NAME "Growatt ShineLAN-X" #define DEVICE_MODEL "ShineLAN-X" #define DEVICE_MFR "Growatt" // Abfrageintervall in Millisekunden #define UPDATE_INTERVAL 10000UL