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