|
@@ -73,7 +73,10 @@ void display_process(therm_settings_t* s
|
|
|
|
|
|
case MODE_HEAT:
|
|
|
{
|
|
|
ssd1306_drawstring("-> heat ", 1, 40);
|
|
|
if(set->val.plant_type == PLANT_HEATER)
|
|
|
ssd1306_drawstring("-> heat ", 1, 40);
|
|
|
else
|
|
|
ssd1306_drawstring("-> cool ", 1, 40);
|
|
|
} break;
|
|
|
|
|
|
case MODE_SETUP:
|
|
@@ -101,7 +104,7 @@ void display_process(therm_settings_t* s
|
|
|
status->state = STATE_PREHEAT;
|
|
|
break;
|
|
|
case MODE_SETUP:
|
|
|
status->state = STATE_SETP;
|
|
|
status->state = STATE_SETMODE;
|
|
|
break;
|
|
|
case MODE_RESET:
|
|
|
status->state = STATE_RESET;
|
|
@@ -134,6 +137,73 @@ void display_process(therm_settings_t* s
|
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
|
|
|
case STATE_SETMODE:
|
|
|
{
|
|
|
// Write text to OLED
|
|
|
// [ therm :: set mode ]
|
|
|
// [ m = ]
|
|
|
ssd1306_drawstring("Control Mode", 0, 40);
|
|
|
ssd1306_drawlogo();
|
|
|
|
|
|
if(set->val.control_mode == MODE_PID)
|
|
|
ssd1306_drawstring("PID ", 1, 60);
|
|
|
else
|
|
|
ssd1306_drawstring("Thermostat", 1, 60);
|
|
|
|
|
|
ssd1306_drawstring("Press to accept", 3, 40);
|
|
|
|
|
|
// Button handler
|
|
|
if(SW_BTN_PRESSED) {
|
|
|
status->state = STATE_SETPLANTTYPE;
|
|
|
}
|
|
|
else if (!HAL_GPIO_ReadPin(SW_UP)) {
|
|
|
set->val.control_mode = MODE_PID;
|
|
|
}
|
|
|
else if(!HAL_GPIO_ReadPin(SW_DOWN)) {
|
|
|
set->val.control_mode = MODE_THERMOSTAT;
|
|
|
}
|
|
|
// Event Handler
|
|
|
// N/A
|
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
case STATE_SETPLANTTYPE:
|
|
|
{
|
|
|
// Write text to OLED
|
|
|
// [ therm :: set mode ]
|
|
|
// [ m = ]
|
|
|
ssd1306_drawstring("Plant Type", 0, 40);
|
|
|
ssd1306_drawlogo();
|
|
|
|
|
|
if(set->val.plant_type == PLANT_HEATER)
|
|
|
ssd1306_drawstring("Heater", 1, 60);
|
|
|
else
|
|
|
ssd1306_drawstring("Cooler", 1, 60);
|
|
|
|
|
|
ssd1306_drawstring("Press to accept", 3, 40);
|
|
|
|
|
|
// Button handler
|
|
|
if(SW_BTN_PRESSED) {
|
|
|
if(set->val.control_mode == MODE_PID)
|
|
|
status->state = STATE_SETP;
|
|
|
else
|
|
|
status->state = STATE_SETBOOTTOBREW;
|
|
|
}
|
|
|
else if (!HAL_GPIO_ReadPin(SW_UP)) {
|
|
|
set->val.plant_type = PLANT_COOLER;
|
|
|
}
|
|
|
else if(!HAL_GPIO_ReadPin(SW_DOWN)) {
|
|
|
set->val.plant_type = PLANT_HEATER;
|
|
|
}
|
|
|
// Event Handler
|
|
|
// N/A
|
|
|
|
|
|
} break;
|
|
|
|
|
|
|
|
|
case STATE_SETP:
|
|
|
{
|
|
|
// Write text to OLED
|
|
@@ -378,8 +448,12 @@ void display_process(therm_settings_t* s
|
|
|
// Write text to OLED
|
|
|
// [ therm : ready to brew ]
|
|
|
// [ 30 => 120 C ]
|
|
|
ssd1306_drawstring("Preheated!", 0, 0);
|
|
|
//ssd1306_drawlogo();
|
|
|
|
|
|
if(set->val.plant_type == PLANT_HEATER)
|
|
|
ssd1306_drawstring("Preheated!", 0, 0);
|
|
|
else
|
|
|
ssd1306_drawstring("Precooled!", 0, 0);
|
|
|
|
|
|
draw_setpoint(status);
|
|
|
status->pid_enabled = 1;
|
|
|
status->setpoint = set->val.setpoint_brew;
|