make temp setpoint adjustable
This commit is contained in:
@@ -141,6 +141,9 @@ void ioHelperEdgeDetector(void);
|
||||
#define BTN_HEIZEN_AN 13
|
||||
#define BTN_HEIZEN_AUS 14
|
||||
|
||||
#define BTN_HEIZEN_PLUS 15
|
||||
#define BTN_HEIZEN_MINUS 16
|
||||
|
||||
#define BTN_SLAVE_BECKEN_FUELLEN 18
|
||||
#define BTN_SLAVE_BECKEN_LEEREN 19
|
||||
|
||||
|
||||
57
heizung.c
57
heizung.c
@@ -4,41 +4,60 @@
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "mqtt.h"
|
||||
extern Client mqtt_client;
|
||||
|
||||
uint8_t heizung_state = 0;
|
||||
uint8_t heizung_ontemp = 0;
|
||||
float heizung_setpoint = 40;
|
||||
|
||||
void do_heizung(){
|
||||
|
||||
if(ADC_reading[1] > 69)
|
||||
if(ADC_reading[1] > heizung_setpoint)
|
||||
heizung_ontemp = 1;
|
||||
if(ADC_reading[1] < 66)
|
||||
if(ADC_reading[1] < heizung_setpoint)
|
||||
heizung_ontemp = 0;
|
||||
|
||||
if(heizung_state && !heizung_ontemp){
|
||||
gtf_write_register(5, 56, 500);
|
||||
gtf_write_register(6, 56, 500);
|
||||
gtf_write_register(7, 56, 500);
|
||||
set_Output(LED_HEIZUNG, BLINK);
|
||||
if(read_Input(BTN_HEIZEN_PLUS, LEVEL) && heizung_setpoint < 80){
|
||||
heizung_setpoint += 0.2;
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
|
||||
}
|
||||
else if(heizung_state && heizung_ontemp){
|
||||
gtf_write_register(5, 56, 0);
|
||||
gtf_write_register(6, 56, 0);
|
||||
gtf_write_register(7, 56, 0);
|
||||
set_Output(LED_HEIZUNG, ON);
|
||||
}
|
||||
else{
|
||||
gtf_write_register(5, 56, 0);
|
||||
gtf_write_register(6, 56, 0);
|
||||
gtf_write_register(7, 56, 0);
|
||||
set_Output(LED_HEIZUNG, OFF);
|
||||
|
||||
if(read_Input(BTN_HEIZEN_MINUS, LEVEL) && heizung_setpoint > 5){
|
||||
heizung_setpoint -= 0.2;
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
|
||||
}
|
||||
|
||||
if(read_Input(BTN_HEIZEN_AN, LEVEL)){
|
||||
heizung_state = 1;
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 1);
|
||||
}
|
||||
|
||||
if(read_Input(BTN_HEIZEN_AUS, LEVEL)){
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 0);
|
||||
heizung_state = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int8_t comm_heizung(){
|
||||
int8_t res = 0;
|
||||
if(heizung_state && !heizung_ontemp){
|
||||
res |= gtf_write_register(5, 56, 500);
|
||||
res |= gtf_write_register(6, 56, 500);
|
||||
res |= gtf_write_register(7, 56, 500);
|
||||
set_Output(LED_HEIZUNG, BLINK);
|
||||
}
|
||||
else if(heizung_state && heizung_ontemp){
|
||||
res |= gtf_write_register(5, 56, 0);
|
||||
res |= gtf_write_register(6, 56, 0);
|
||||
res |= gtf_write_register(7, 56, 0);
|
||||
set_Output(LED_HEIZUNG, ON);
|
||||
}
|
||||
else{
|
||||
res |= gtf_write_register(5, 56, 0);
|
||||
res |= gtf_write_register(6, 56, 0);
|
||||
res |= gtf_write_register(7, 56, 0);
|
||||
set_Output(LED_HEIZUNG, OFF);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
#include <stdint.h>
|
||||
|
||||
extern float heizung_setpoint;
|
||||
void do_heizung(void);
|
||||
int8_t comm_heizung(void);
|
||||
|
||||
71
main.c
71
main.c
@@ -112,39 +112,6 @@ void do_notaus(){
|
||||
}
|
||||
|
||||
}
|
||||
//void do_notaus(){
|
||||
// if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) || read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // NOTAUS
|
||||
// set_Output(LED_GRN_NOTAUS_SCHRANK, OFF); // disable green lamps
|
||||
// set_Output(LED_GRN_NOTAUS_ANLAGE, OFF);
|
||||
// }
|
||||
//
|
||||
// if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) && read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // both activated
|
||||
// set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK);
|
||||
// set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK);
|
||||
// }
|
||||
// else if(read_Input(IN_NOTAUS_ANLAGE, LEVEL)){ // top one activated
|
||||
// set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK);
|
||||
// set_Output(LED_ROT_NOTAUS_SCHRANK, ON);
|
||||
// }
|
||||
// else if(read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // bottom one activated
|
||||
// set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK);
|
||||
// set_Output(LED_ROT_NOTAUS_ANLAGE, ON);
|
||||
// }
|
||||
// else{ // none activated
|
||||
// set_Output(LED_ROT_NOTAUS_SCHRANK, OFF);
|
||||
// set_Output(LED_ROT_NOTAUS_ANLAGE, OFF);
|
||||
// if(!read_Input(IN_ANLAGE_EIN_INV, LEVEL)){
|
||||
// set_Output(LED_GRN_NOTAUS_ANLAGE, ON);
|
||||
// set_Output(LED_GRN_NOTAUS_SCHRANK, ON);
|
||||
// }
|
||||
// else{
|
||||
// set_Output(LED_GRN_NOTAUS_ANLAGE, ON);
|
||||
// set_Output(LED_GRN_NOTAUS_SCHRANK, ON);
|
||||
// set_Output(LED_ROT_NOTAUS_ANLAGE, ON);
|
||||
// set_Output(LED_ROT_NOTAUS_SCHRANK, ON);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
void send_temperatures(void){
|
||||
for(uint8_t i=0; i<sizeof(ADC_reading)/sizeof(ADC_reading[0]);i++){
|
||||
@@ -201,28 +168,19 @@ int main()
|
||||
printf("--MQTT Connected ERROR: %ld\r\n", mqtt_rc);
|
||||
while(1); //Reboot the board
|
||||
}
|
||||
|
||||
//// Subscribe to all topics
|
||||
//char SubString[] = "/Filamentanlage/02_Wasserbecken/#";
|
||||
////char SubString[] = "/Filamentanlage/03_Wasserbecken/#";
|
||||
//mqtt_rc = MQTTSubscribe(&mqtt_client, SubString, QOS0, messageArrived);
|
||||
//printf("Subscribed (%s) %ld\r\n", SubString, mqtt_rc);
|
||||
#endif
|
||||
|
||||
|
||||
ioHelperSetBit(outStatesBlinking, LED_PLC_OK, 1);
|
||||
//ioHelperSetBit(outStatesBlinking, OUT_VENTIL_ABLASS, 1);
|
||||
//ioHelperSetBit(outStatesBlinking, OUT_VENTIL_PUMPE, 1);
|
||||
|
||||
set_Output(LED_PLC_OK, BLINK);
|
||||
|
||||
uint32_t timer_blink_outs = millis();
|
||||
uint32_t timer_send_uptime = millis();
|
||||
uint32_t timer_send_temps = millis();
|
||||
uint32_t timer_gtf_comm = millis();
|
||||
|
||||
printf("anlage: %x\n\r", read_Input(IN_ANLAGE_EIN_INV, LEVEL));
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/connected", 1);
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/pumpe_warm", -1);
|
||||
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/pumpe_warm", 0);
|
||||
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 0);
|
||||
send_value_fl(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint, 0);
|
||||
|
||||
gtf_init(5);
|
||||
gtf_init(6);
|
||||
@@ -248,14 +206,6 @@ int main()
|
||||
if(millis() - timer_send_temps > 5000){
|
||||
timer_send_temps = millis();
|
||||
send_temperatures();
|
||||
//printf("gefran firm: 0x%02X\n", gtf_firmware_version(5));
|
||||
printf("gefran 5 OuP: 0x%02X\n", gtf_read_register(5, GTF_OuP));
|
||||
printf("gefran 6 OuP: 0x%02X\n", gtf_read_register(6, GTF_OuP));
|
||||
printf("gefran 7 OuP: 0x%02X\n", gtf_read_register(7, GTF_OuP));
|
||||
//printf("gefran stat3: 0x%02X\n", gtf_read_register(5, 117));
|
||||
////printf("gefran stell: 0x%02X\n", gtf_read_register(5, 56));
|
||||
////printf("gefran disp: 0x%02X\n", gtf_read_register(5, 0));
|
||||
//printf("gefran coil: 0x%02X\n", gtf_read_coil(5, 0));
|
||||
|
||||
//send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/gtf5_power", gtf_read_register(5, GTF_POWER));
|
||||
|
||||
@@ -271,6 +221,11 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
if(millis() - timer_gtf_comm > 200){
|
||||
timer_gtf_comm = millis();
|
||||
comm_heizung();
|
||||
}
|
||||
|
||||
// send misc info
|
||||
if(millis() - timer_send_uptime > 5000){
|
||||
timer_send_uptime = millis();
|
||||
@@ -281,12 +236,14 @@ int main()
|
||||
do_notaus();
|
||||
do_heizung();
|
||||
|
||||
#if PLC_MQTT_ENABLED
|
||||
ioHelperSetBit(outStates, LED_BUS_OK, 1);
|
||||
ioHelperSetOuts();
|
||||
#if PLC_MQTT_ENABLED
|
||||
MQTTYield(&mqtt_client, 10); //blocking call
|
||||
ioHelperSetBit(outStates, LED_BUS_OK, 0);
|
||||
#else
|
||||
_delay_ms(1);
|
||||
#endif
|
||||
ioHelperSetBit(outStates, LED_BUS_OK, 0);
|
||||
ioHelperSetOuts();
|
||||
}
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user