Added working mode
This commit is contained in:
+18
-2
@@ -27,10 +27,14 @@ IPAddress subnet(MY_NET);
|
|||||||
#define TCP_PORT 15000
|
#define TCP_PORT 15000
|
||||||
#define T_UPDATE_INTERVAL 1000
|
#define T_UPDATE_INTERVAL 1000
|
||||||
|
|
||||||
|
#define MODE_OFF 0
|
||||||
|
#define MODE_ON 1
|
||||||
|
|
||||||
#define REGISTER_TARGET_T 0
|
#define REGISTER_TARGET_T 0
|
||||||
#define REGISTER_HYSTERESIS 1
|
#define REGISTER_HYSTERESIS 1
|
||||||
#define REGISTER_CUR_TEMP 2
|
#define REGISTER_CUR_TEMP 2
|
||||||
#define REGISTER_CUR_STATE 3
|
#define REGISTER_CUR_STATE 3
|
||||||
|
#define REGISTER_MODE 4
|
||||||
|
|
||||||
ModbusIP mb;
|
ModbusIP mb;
|
||||||
OneWire oneWire(TEMP_SENSOR_PIN);
|
OneWire oneWire(TEMP_SENSOR_PIN);
|
||||||
@@ -45,6 +49,7 @@ int t_target = 7000;
|
|||||||
int hyst = 200;
|
int hyst = 200;
|
||||||
int cur_t = 0;
|
int cur_t = 0;
|
||||||
int cur_state = 0;
|
int cur_state = 0;
|
||||||
|
int mode = 1;
|
||||||
|
|
||||||
bool TryLoad(char *filename)
|
bool TryLoad(char *filename)
|
||||||
{
|
{
|
||||||
@@ -54,6 +59,8 @@ bool TryLoad(char *filename)
|
|||||||
t_target = atoi(s.c_str());
|
t_target = atoi(s.c_str());
|
||||||
s = f.readStringUntil('\n');
|
s = f.readStringUntil('\n');
|
||||||
hyst = atoi(s.c_str());
|
hyst = atoi(s.c_str());
|
||||||
|
s = f.readStringUntil('\n');
|
||||||
|
mode = atoi(s.c_str());
|
||||||
f.close();
|
f.close();
|
||||||
if (t_target == 0) return false;
|
if (t_target == 0) return false;
|
||||||
return true;
|
return true;
|
||||||
@@ -71,6 +78,7 @@ void SaveTo(char *filename)
|
|||||||
if (!f) return;
|
if (!f) return;
|
||||||
f.println(t_target);
|
f.println(t_target);
|
||||||
f.println(hyst);
|
f.println(hyst);
|
||||||
|
f.println(mode);
|
||||||
f.close();
|
f.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,6 +122,7 @@ void setup()
|
|||||||
mb.addHreg(REGISTER_HYSTERESIS, hyst);
|
mb.addHreg(REGISTER_HYSTERESIS, hyst);
|
||||||
mb.addHreg(REGISTER_CUR_TEMP, cur_t);
|
mb.addHreg(REGISTER_CUR_TEMP, cur_t);
|
||||||
mb.addHreg(REGISTER_CUR_STATE, cur_state);
|
mb.addHreg(REGISTER_CUR_STATE, cur_state);
|
||||||
|
mb.addHreg(REGISTER_MODE, mode);
|
||||||
//
|
//
|
||||||
sensor.begin();
|
sensor.begin();
|
||||||
sensor.setResolution(12);
|
sensor.setResolution(12);
|
||||||
@@ -141,9 +150,14 @@ void loop()
|
|||||||
mb.task();
|
mb.task();
|
||||||
t_target = mb.Hreg(REGISTER_TARGET_T);
|
t_target = mb.Hreg(REGISTER_TARGET_T);
|
||||||
hyst = mb.Hreg(REGISTER_HYSTERESIS);
|
hyst = mb.Hreg(REGISTER_HYSTERESIS);
|
||||||
|
mode = mb.Hreg(REGISTER_MODE);
|
||||||
if (cur_t < t_target - hyst) cur_state = 1;
|
if (cur_t < t_target - hyst) cur_state = 1;
|
||||||
else if (cur_t > t_target + hyst) cur_state = 0;
|
else if (cur_t > t_target + hyst) cur_state = 0;
|
||||||
mb.Hreg(REGISTER_CUR_STATE, cur_state);
|
mb.Hreg(REGISTER_CUR_STATE, cur_state);
|
||||||
|
if (mode == MODE_OFF)
|
||||||
|
{
|
||||||
|
cur_state = 0;
|
||||||
|
}
|
||||||
digitalWrite(RELAY_PIN, cur_state);
|
digitalWrite(RELAY_PIN, cur_state);
|
||||||
if (u)
|
if (u)
|
||||||
{
|
{
|
||||||
@@ -157,11 +171,13 @@ void loop()
|
|||||||
lcd.print((cur_t) / 100.0, 2);
|
lcd.print((cur_t) / 100.0, 2);
|
||||||
lcd.print(" (");
|
lcd.print(" (");
|
||||||
lcd.print(t_target / 100);
|
lcd.print(t_target / 100);
|
||||||
lcd.print(")");
|
lcd.print(") ");
|
||||||
|
if (mode == MODE_ON) lcd.print("ON");
|
||||||
|
else lcd.print("OFF");
|
||||||
lcd.setCursor(0, 1);
|
lcd.setCursor(0, 1);
|
||||||
lcd.print("S: ");
|
lcd.print("S: ");
|
||||||
lcd.print(cur_state);
|
lcd.print(cur_state);
|
||||||
lcd.print("WiFi: ");
|
lcd.print(" WiFi: ");
|
||||||
lcd.print(WiFi.status());
|
lcd.print(WiFi.status());
|
||||||
}
|
}
|
||||||
mb.Hreg(REGISTER_TARGET_T, t_target);
|
mb.Hreg(REGISTER_TARGET_T, t_target);
|
||||||
|
|||||||
Reference in New Issue
Block a user