make temp setpoint adjustable
This commit is contained in:
@@ -141,6 +141,9 @@ void ioHelperEdgeDetector(void);
|
|||||||
#define BTN_HEIZEN_AN 13
|
#define BTN_HEIZEN_AN 13
|
||||||
#define BTN_HEIZEN_AUS 14
|
#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_FUELLEN 18
|
||||||
#define BTN_SLAVE_BECKEN_LEEREN 19
|
#define BTN_SLAVE_BECKEN_LEEREN 19
|
||||||
|
|
||||||
|
|||||||
57
heizung.c
57
heizung.c
@@ -4,41 +4,60 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "mqtt.h"
|
||||||
|
extern Client mqtt_client;
|
||||||
|
|
||||||
uint8_t heizung_state = 0;
|
uint8_t heizung_state = 0;
|
||||||
uint8_t heizung_ontemp = 0;
|
uint8_t heizung_ontemp = 0;
|
||||||
|
float heizung_setpoint = 40;
|
||||||
|
|
||||||
void do_heizung(){
|
void do_heizung(){
|
||||||
|
|
||||||
if(ADC_reading[1] > 69)
|
if(ADC_reading[1] > heizung_setpoint)
|
||||||
heizung_ontemp = 1;
|
heizung_ontemp = 1;
|
||||||
if(ADC_reading[1] < 66)
|
if(ADC_reading[1] < heizung_setpoint)
|
||||||
heizung_ontemp = 0;
|
heizung_ontemp = 0;
|
||||||
|
|
||||||
if(heizung_state && !heizung_ontemp){
|
if(read_Input(BTN_HEIZEN_PLUS, LEVEL) && heizung_setpoint < 80){
|
||||||
gtf_write_register(5, 56, 500);
|
heizung_setpoint += 0.2;
|
||||||
gtf_write_register(6, 56, 500);
|
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
|
||||||
gtf_write_register(7, 56, 500);
|
|
||||||
set_Output(LED_HEIZUNG, BLINK);
|
|
||||||
}
|
}
|
||||||
else if(heizung_state && heizung_ontemp){
|
|
||||||
gtf_write_register(5, 56, 0);
|
if(read_Input(BTN_HEIZEN_MINUS, LEVEL) && heizung_setpoint > 5){
|
||||||
gtf_write_register(6, 56, 0);
|
heizung_setpoint -= 0.2;
|
||||||
gtf_write_register(7, 56, 0);
|
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung_sp", heizung_setpoint);
|
||||||
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_AN, LEVEL)){
|
if(read_Input(BTN_HEIZEN_AN, LEVEL)){
|
||||||
heizung_state = 1;
|
heizung_state = 1;
|
||||||
|
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(read_Input(BTN_HEIZEN_AUS, LEVEL)){
|
if(read_Input(BTN_HEIZEN_AUS, LEVEL)){
|
||||||
|
send_value(&mqtt_client, "/Filamentanlage/02_Wasserbecken/state/heizung", 0);
|
||||||
heizung_state = 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);
|
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){
|
void send_temperatures(void){
|
||||||
for(uint8_t i=0; i<sizeof(ADC_reading)/sizeof(ADC_reading[0]);i++){
|
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);
|
printf("--MQTT Connected ERROR: %ld\r\n", mqtt_rc);
|
||||||
while(1); //Reboot the board
|
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
|
#endif
|
||||||
|
|
||||||
|
set_Output(LED_PLC_OK, BLINK);
|
||||||
ioHelperSetBit(outStatesBlinking, LED_PLC_OK, 1);
|
|
||||||
//ioHelperSetBit(outStatesBlinking, OUT_VENTIL_ABLASS, 1);
|
|
||||||
//ioHelperSetBit(outStatesBlinking, OUT_VENTIL_PUMPE, 1);
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t timer_blink_outs = millis();
|
uint32_t timer_blink_outs = millis();
|
||||||
uint32_t timer_send_uptime = millis();
|
uint32_t timer_send_uptime = millis();
|
||||||
uint32_t timer_send_temps = 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/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(5);
|
||||||
gtf_init(6);
|
gtf_init(6);
|
||||||
@@ -248,14 +206,6 @@ int main()
|
|||||||
if(millis() - timer_send_temps > 5000){
|
if(millis() - timer_send_temps > 5000){
|
||||||
timer_send_temps = millis();
|
timer_send_temps = millis();
|
||||||
send_temperatures();
|
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));
|
//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
|
// send misc info
|
||||||
if(millis() - timer_send_uptime > 5000){
|
if(millis() - timer_send_uptime > 5000){
|
||||||
timer_send_uptime = millis();
|
timer_send_uptime = millis();
|
||||||
@@ -281,12 +236,14 @@ int main()
|
|||||||
do_notaus();
|
do_notaus();
|
||||||
do_heizung();
|
do_heizung();
|
||||||
|
|
||||||
#if PLC_MQTT_ENABLED
|
|
||||||
ioHelperSetBit(outStates, LED_BUS_OK, 1);
|
ioHelperSetBit(outStates, LED_BUS_OK, 1);
|
||||||
ioHelperSetOuts();
|
ioHelperSetOuts();
|
||||||
|
#if PLC_MQTT_ENABLED
|
||||||
MQTTYield(&mqtt_client, 10); //blocking call
|
MQTTYield(&mqtt_client, 10); //blocking call
|
||||||
ioHelperSetBit(outStates, LED_BUS_OK, 0);
|
#else
|
||||||
|
_delay_ms(1);
|
||||||
#endif
|
#endif
|
||||||
|
ioHelperSetBit(outStates, LED_BUS_OK, 0);
|
||||||
ioHelperSetOuts();
|
ioHelperSetOuts();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user