//ESP32 D1 Mini #include #include #include #include "CommandStation.h" #include #include #include #include "WiThrottle.h" #define CS_NAME "ESP32CommandStation" #define DCC_MAIN_PIN 18 //25 #define DCC_MAIN_PIN_EN 26 //32 #define DCC_MAIN_PIN_SENSE 36 //SVP DCCESP32Channel<10> dccMain(DCC_MAIN_PIN, DCC_MAIN_PIN_EN, DCC_MAIN_PIN_SENSE); DCCESP32SignalGenerator dccTimer(1); //timer1 WiThrottleServer withrottleServer(WiThrottleServer::DEF_PORT, CS_NAME); void setup() { Serial.begin(115200); Serial.println("DCC Command Station"); dccTimer.setMainChannel(&dccMain); CS.setDccMain(&dccMain); WiFiManager wifiManager; wifiManager.setConfigPortalTimeout(300); // 5 min if ( !wifiManager.autoConnect(CS_NAME " AP") ) { delay(1000); Serial.print("Failed connection"); ESP.restart(); } while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); MDNS.begin("ESP32Server"); MDNS.setInstanceName(CS_NAME); dccTimer.begin(); dccMain.setPower(false); withrottleServer.begin(); } void loop() { withrottleServer.loop(); CS.loop(); static uint32_t lastCurrentCheck = millis(); if(millis()-lastCurrentCheck > 1) { lastCurrentCheck = millis(); bool oc = dccMain.checkOvercurrent(); if(!oc) { withrottleServer.notifyPowerStatus(); Serial.println("Overcurrent on main"); } } }