add sensor
This commit is contained in:
@@ -8,13 +8,17 @@
|
||||
#define FAN_PIN 13
|
||||
#define PRINT_DELAY 5000
|
||||
|
||||
#define DEFAULT_FAN_STATE false
|
||||
#define DEFAULT_FAN_GPIO 13
|
||||
#define DEFAULT_THRES_LOW 25
|
||||
#define DEFAULT_THRES_HIGH 70
|
||||
#define DEFAULT_FAN_MAX_SPEED 1021
|
||||
#define OFF_STATE "OFF"
|
||||
#define ON_STATE "ON"
|
||||
|
||||
|
||||
#define DEFAULT_FAN_STATE false
|
||||
#define DEFAULT_FAN_PWM_GPIO 13
|
||||
#define DEFAULT_FAN_TACH_GPIO 13
|
||||
#define DEFAULT_ONEWIRE_GPIO 16
|
||||
#define DEFAULT_THRES_LOW 25
|
||||
#define DEFAULT_THRES_HIGH 70
|
||||
#define DEFAULT_FAN_MAX_SPEED 1021
|
||||
#define OFF_STATE "OFF"
|
||||
#define ON_STATE "ON"
|
||||
|
||||
// Note that the built-in LED is on when the pin is low on most NodeMCU boards.
|
||||
// This is because the anode is tied to VCC and the cathode to the GPIO 4 (Arduino pin 2).
|
||||
@@ -34,14 +38,24 @@ class FanSettings {
|
||||
public:
|
||||
bool fanStatus;
|
||||
int fanSpeed;
|
||||
int fanGpio;
|
||||
int fanPwmGPIO;
|
||||
int fanTachGPIO;
|
||||
int fanMaxSpeed;
|
||||
int thresLow;
|
||||
int thresHigh;
|
||||
|
||||
int OneWireGPIO;
|
||||
float sensorInTemp;
|
||||
float sensorOutTemp;
|
||||
|
||||
static void read(FanSettings& settings, JsonObject& root) {
|
||||
root["oneWire_gpio"] = settings.OneWireGPIO;
|
||||
root["sensor_in_temp"] = settings.sensorInTemp;
|
||||
root["sensor_out_temp"] = settings.sensorOutTemp;
|
||||
|
||||
root["fan_status"] = settings.fanStatus;
|
||||
root["fan_gpio"] = settings.fanGpio;
|
||||
root["fan_pwm_gpio"] = settings.fanPwmGPIO;
|
||||
root["fan_tach_gpio"] = settings.fanTachGPIO;
|
||||
root["fan_max_speed"] = settings.fanMaxSpeed;
|
||||
root["temperature_thres_low"] = settings.thresLow;
|
||||
root["temperature_thres_high"] = settings.thresHigh;
|
||||
@@ -54,22 +68,28 @@ class FanSettings {
|
||||
}
|
||||
|
||||
static StateUpdateResult update(JsonObject& root, FanSettings& fanState) {
|
||||
boolean newFanState = root["fan_status"] | DEFAULT_FAN_STATE;
|
||||
int newFanGpio = root["fan_gpio"] | DEFAULT_FAN_GPIO;
|
||||
int newMaxSpeed = root["fan_max_speed"] | DEFAULT_FAN_MAX_SPEED;
|
||||
int newThresLow = root["temperature_thres_low"] | DEFAULT_THRES_LOW;
|
||||
int newThresHigh = root["temperature_thres_high"] | DEFAULT_THRES_HIGH;
|
||||
Serial.println(" ** Fan update [status:" + (String)newFanState + "|gpio:" + (String)newFanGpio + "|mxspd:" + (String)newMaxSpeed + "|low:" + (String)newThresLow + "|high:" + (String)newThresHigh + "]");
|
||||
boolean newFanState = root["fan_status"] | DEFAULT_FAN_STATE;
|
||||
int newFanPwmGPIO = root["fan_pwm_gpio"] | DEFAULT_FAN_PWM_GPIO;
|
||||
int newFanTachGPIO = root["fan_tach_gpio"] | DEFAULT_FAN_TACH_GPIO;
|
||||
int newMaxSpeed = root["fan_max_speed"] | DEFAULT_FAN_MAX_SPEED;
|
||||
int newThresLow = root["temperature_thres_low"] | DEFAULT_THRES_LOW;
|
||||
int newThresHigh = root["temperature_thres_high"] | DEFAULT_THRES_HIGH;
|
||||
int newOneWireGPIO = root["sensor_onewire_gpio"] | DEFAULT_ONEWIRE_GPIO;
|
||||
Serial.println(" ** Fan update [status:" + (String)newFanState + "|gpio:" + (String)newFanPwmGPIO + "|mxspd:" + (String)newMaxSpeed + "|low:" + (String)newThresLow + "|high:" + (String)newThresHigh + "]");
|
||||
if ( fanState.fanStatus != newFanState
|
||||
|| fanState.fanGpio != newFanGpio
|
||||
|| fanState.fanPwmGPIO != newFanPwmGPIO
|
||||
|| fanState.fanTachGPIO != newFanTachGPIO
|
||||
|| fanState.fanMaxSpeed != newMaxSpeed
|
||||
|| fanState.thresLow != newThresLow
|
||||
|| fanState.thresHigh != newThresHigh ) {
|
||||
|| fanState.thresHigh != newThresHigh
|
||||
|| fanState.OneWireGPIO != newOneWireGPIO ) {
|
||||
fanState.fanStatus = newFanState;
|
||||
fanState.fanGpio = newFanGpio;
|
||||
fanState.fanPwmGPIO = newFanPwmGPIO;
|
||||
fanState.fanTachGPIO = newFanTachGPIO;
|
||||
fanState.fanMaxSpeed = newMaxSpeed;
|
||||
fanState.thresLow = newThresLow;
|
||||
fanState.thresHigh = newThresHigh;
|
||||
fanState.OneWireGPIO = newOneWireGPIO;
|
||||
Serial.println(" ** Fan CONFIG : CHANGED");
|
||||
return StateUpdateResult::CHANGED;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user