#pragma once // ============================================================ // NETZWERK — ENC28J60 Ethernet (Bitbang-SPI auf Port C) // STM32F103RBT6, LQFP-64 // Hardware-SPI nicht nutzbar — alle SPI-Pins liegen auf Port C // ============================================================ // Bitbang-SPI Pins (alle gemessen) #define ETH_CS_PIN PC7 // ENC28J60 Pin 7 /CS → STM32 Pin 36 (gemessen) #define ETH_SCK_PIN PC6 // ENC28J60 Pin 6 SCK → STM32 Pin 35 (gemessen) #define ETH_MISO_PIN PC8 // ENC28J60 Pin 4 SO → STM32 Pin 37 (gemessen) #define ETH_MOSI_PIN PC9 // ENC28J60 Pin 5 SI → STM32 Pin ?? (noch unbekannt, Scan läuft) // ENC28J60 Reset #define ETH_RST_PIN PB13 // ENC28J60 Pin 18 /RESET → STM32 Pin 32, 500Ω // 0 = DHCP, 1 = Statische IP #define USE_DHCP 0 // 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.2.84" #define MQTT_PORT 1883 #define MQTT_USER "" // Leer lassen wenn kein Auth #define MQTT_PASSWORD "" #define MQTT_CLIENT "growatt-shinelan" // ============================================================ // RS485 / MODBUS // RS485 DE/RE → STM32 Pin 25 = PB1 (LQFP-64 neu gemessen) // USART1: TX=PA9 (Pin 40), RX=PA10 (Pin 41) // ============================================================ #define RS485_DE_PIN PB1 // RE/DE Steuerpin → STM32 Pin 25 #define MODBUS_BAUD 9600 // Growatt Standard-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