# smart-oil-heating-control-system

## Software
### Design

```mermaid
classDiagram
Inputs <|-- Control
Outputs <|-- Control
Inputs <|-- Safety
Outputs <|--|> Safety

Inputs <|-- HTTP_Metrics
Outputs <|-- HTTP_Metrics
Control <|-- HTTP_Metrics
Safety <|-- HTTP_Metrics

    class Inputs{
        +initInputs()
        -taskInput()
        +getChamberTemperature()
        +getOutdoorTemperature()
        +getInletFlowTemperature()
        +getReturnFlowTemperature()
        +getBurnerError()
    }

    class Outputs{
        +initOutputs()
        +getCirculationPumpState()
        +setCirculationPumpState()
        +getBurnerState()
        +setBurnerState()
    }

    class Control{
        +taskControl()
        -timetable
    }

    class Safety{
        +initSafety()
        -taskSafety()
        -setSafeState()
        -checkSensorSanity()
        +getSensorSanityStates()
        +getSafetyState()
    }

    class Metrics{
        +initMetrics()
        -taskMetrics()
        -metrics
        +event_handler()
        +connect_wifi()
        +setMetrics()
    }
```

### Hardware


| Function| ESP32 | ES32C14 |
|-----------------------|-------|---------------------------|
| CirculationPump       | IO27  | Relay 1 NO1               |
| Burner                | IO14  | Relay 1 NC2               |
| Burner Fault          | IO19  | Digital Input IN1         |
| Temperature DS10B20   | IO04  | 1-Wire                    |