add input for Burner Error
This commit is contained in:
parent
9ac3792c6c
commit
3c5f0835f5
@ -16,7 +16,8 @@ Control <|-- HTTP_Metrics
|
||||
Safety <|-- HTTP_Metrics
|
||||
|
||||
class Inputs{
|
||||
+loop()
|
||||
+ initInputs()
|
||||
-loop()
|
||||
+getChamberTemperature()
|
||||
+getOutdoorTemperature()
|
||||
+getInletFlowTemperature()
|
||||
@ -59,3 +60,4 @@ Safety <|-- HTTP_Metrics
|
||||
|------------------|-----------------|------------------|
|
||||
| CirculationPump | IO27 | Relay 1 NO1 |
|
||||
| Burner | IO14 | Relay 1 NC2 |
|
||||
| Burner Fault | IO19 | Digital Input IN1 |
|
||||
|
@ -0,0 +1,83 @@
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "driver/gpio.h"
|
||||
#include "esp_log.h"
|
||||
|
||||
#include "inputs.h"
|
||||
|
||||
static const char *TAG = "smart-oil-heater-control-system-inputs";
|
||||
const uint8_t uBurnerFaultPin = 19U;
|
||||
static eBurnerErrorState sBurnerErrorState;
|
||||
void loop(void *pvParameters);
|
||||
|
||||
void initInputs(void)
|
||||
{
|
||||
|
||||
gpio_config_t ioConfBurnerFault = {
|
||||
.pin_bit_mask = (1ULL << uBurnerFaultPin), // Pin mask
|
||||
.mode = GPIO_MODE_INPUT, // Set as inout
|
||||
.pull_up_en = GPIO_PULLUP_ENABLE, // Enable pull-up
|
||||
.pull_down_en = GPIO_PULLDOWN_DISABLE, // Disable pull-down
|
||||
.intr_type = GPIO_INTR_DISABLE // Disable interrupts
|
||||
};
|
||||
|
||||
gpio_config(&ioConfBurnerFault);
|
||||
|
||||
BaseType_t taskCreated = xTaskCreate(
|
||||
loop, // Function to implement the task
|
||||
"loop_inputs", // Task name
|
||||
2048, // Stack size (in words, not bytes)
|
||||
NULL, // Parameters to the task function (none in this case)
|
||||
5, // Task priority (higher number = higher priority)
|
||||
NULL // Task handle (optional)
|
||||
);
|
||||
|
||||
if (taskCreated == pdPASS)
|
||||
{
|
||||
ESP_LOGI(TAG, "Task created successfully!");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGE(TAG, "Failed to create task");
|
||||
}
|
||||
}
|
||||
|
||||
void loop(void *pvParameters)
|
||||
{
|
||||
// This task will run in a loop
|
||||
while (1)
|
||||
{
|
||||
ESP_LOGI(TAG, "Running task Input...");
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS); // Delay for 1 second
|
||||
|
||||
if (gpio_get_level(uBurnerFaultPin) == 1)
|
||||
{
|
||||
sBurnerErrorState = FAULT;
|
||||
}
|
||||
else
|
||||
{
|
||||
sBurnerErrorState = NO_ERROR;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float getChamberTemperature(void)
|
||||
{
|
||||
return 42.42;
|
||||
}
|
||||
float getOutdoorTemperature(void)
|
||||
{
|
||||
return 42.42;
|
||||
}
|
||||
float getInletFlowTemperature(void)
|
||||
{
|
||||
return 42.42;
|
||||
}
|
||||
float getReturnFlowTemperature(void)
|
||||
{
|
||||
return 42.42;
|
||||
}
|
||||
eBurnerErrorState getBurnerError(void)
|
||||
{
|
||||
return sBurnerErrorState;
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
typedef enum _BurnerErrorState{
|
||||
NO_ERROR,
|
||||
FAULT
|
||||
} eBurnerErrorState;
|
||||
|
||||
void initInputs(void);
|
||||
float getChamberTemperature(void);
|
||||
float getOutdoorTemperature(void);
|
||||
float getInletFlowTemperature(void);
|
||||
float getReturnFlowTemperature(void);
|
||||
eBurnerErrorState getBurnerError(void);
|
83
main/main.c
83
main/main.c
@ -13,6 +13,7 @@
|
||||
|
||||
#include "http_metrics.h"
|
||||
#include "outputs.h"
|
||||
#include "inputs.h"
|
||||
|
||||
#define I2C_MASTER_SCL 19
|
||||
#define I2C_MASTER_SDA 18
|
||||
@ -41,12 +42,13 @@ void app_main(void)
|
||||
ESP_ERROR_CHECK(i2cdev_init());
|
||||
|
||||
initOutputs();
|
||||
initInputs();
|
||||
|
||||
ESP_LOGI(TAG, "running");
|
||||
|
||||
while (1)
|
||||
{
|
||||
ESP_LOGI(TAG,"\n");
|
||||
ESP_LOGI(TAG, "\n");
|
||||
vTaskDelay(pdMS_TO_TICKS(5000));
|
||||
uint16_t u16MetricCounter = 0U;
|
||||
|
||||
@ -60,48 +62,59 @@ void app_main(void)
|
||||
|
||||
vSetMetrics(aMetrics, u16MetricCounter);
|
||||
|
||||
setCirculationPumpState(ENABLED);
|
||||
setBurnerState(ENABLED);
|
||||
|
||||
if (getBurnerState() == ENABLED)
|
||||
if (getBurnerError() == FAULT)
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner ENABLED");
|
||||
ESP_LOGI(TAG, "Burner FAULT");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner DISABLED");
|
||||
ESP_LOGI(TAG, "Burner OK");
|
||||
}
|
||||
|
||||
if (getCirculationPumpState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump DISABLED");
|
||||
}
|
||||
/*
|
||||
setCirculationPumpState(ENABLED);
|
||||
setBurnerState(ENABLED);
|
||||
|
||||
ESP_LOGI(TAG,"\n");
|
||||
vTaskDelay(pdMS_TO_TICKS(2000));
|
||||
setCirculationPumpState(DISABLED);
|
||||
setBurnerState(DISABLED);
|
||||
if (getBurnerState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner DISABLED");
|
||||
}
|
||||
|
||||
if (getBurnerState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner DISABLED");
|
||||
}
|
||||
if (getCirculationPumpState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump DISABLED");
|
||||
}
|
||||
|
||||
if (getCirculationPumpState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump DISABLED");
|
||||
}
|
||||
ESP_LOGI(TAG,"\n");
|
||||
vTaskDelay(pdMS_TO_TICKS(2000));
|
||||
setCirculationPumpState(DISABLED);
|
||||
setBurnerState(DISABLED);
|
||||
|
||||
if (getBurnerState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "Burner DISABLED");
|
||||
}
|
||||
|
||||
if (getCirculationPumpState() == ENABLED)
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump ENABLED");
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGI(TAG, "CirculationPump DISABLED");
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user