pio
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
[factory_settings]
|
[factory_settings]
|
||||||
build_flags =
|
build_flags =
|
||||||
; WiFi settings
|
; WiFi settings
|
||||||
|
|
||||||
-D FACTORY_WIFI_SSID=\"\"
|
-D FACTORY_WIFI_SSID=\"\"
|
||||||
-D FACTORY_WIFI_PASSWORD=\"\"
|
-D FACTORY_WIFI_PASSWORD=\"\"
|
||||||
-D FACTORY_WIFI_HOSTNAME=\"#{platform}-#{unique_id}\" ; supports placeholders
|
-D FACTORY_WIFI_HOSTNAME=\"#{platform}-#{unique_id}\" ; supports placeholders
|
||||||
@@ -30,7 +31,7 @@ build_flags =
|
|||||||
|
|
||||||
; NTP settings
|
; NTP settings
|
||||||
-D FACTORY_NTP_ENABLED=true
|
-D FACTORY_NTP_ENABLED=true
|
||||||
-D FACTORY_NTP_TIME_ZONE_LABEL=\"Europe/London\"
|
-D FACTORY_NTP_TIME_ZONE_LABEL=\"Europe/Brussels\"
|
||||||
-D FACTORY_NTP_TIME_ZONE_FORMAT=\"GMT0BST,M3.5.0/1,M10.5.0\"
|
-D FACTORY_NTP_TIME_ZONE_FORMAT=\"GMT0BST,M3.5.0/1,M10.5.0\"
|
||||||
-D FACTORY_NTP_SERVER=\"time.google.com\"
|
-D FACTORY_NTP_SERVER=\"time.google.com\"
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ function FanStatusRestControllerForm(props: FanStatusRestControllerFormProps) {
|
|||||||
margin="normal"
|
margin="normal"
|
||||||
/>
|
/>
|
||||||
<TextValidator
|
<TextValidator
|
||||||
validators={['required', 'isNumber', 'minNumber:0', 'maxNumber:100']}
|
validators={['required', 'isNumber', 'minNumber:0', 'maxNumber:1024']}
|
||||||
errorMessages={['Fan MAX is required', "Must be a number", "Must be 0 or higher", "Max value is 1024"]}
|
errorMessages={['Fan MAX is required', "Must be a number", "Must be 0 or higher", "Max value is 1024"]}
|
||||||
name="fan_max_speed"
|
name="fan_max_speed"
|
||||||
label="Fan Max Speed"
|
label="Fan Max Speed"
|
||||||
|
|||||||
@@ -21,18 +21,18 @@ FanStateService::FanStateService(AsyncWebServer* server, FS* fs, SecurityManager
|
|||||||
|
|
||||||
void FanStateService::begin() {
|
void FanStateService::begin() {
|
||||||
_state.fanStatus = DEFAULT_FAN_STATE;
|
_state.fanStatus = DEFAULT_FAN_STATE;
|
||||||
Serial.print("Starting The Fan Service");
|
Serial.println("Starting The Fan Service + read from FS");
|
||||||
_fsPersistence.readFromFS();
|
_fsPersistence.readFromFS();
|
||||||
onConfigUpdated();
|
onConfigUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FanStateService::onConfigUpdated() {
|
void FanStateService::onConfigUpdated() {
|
||||||
Serial.print(" ** Fan UPDATE ");
|
Serial.println(" ** Fan UPDATE to " + _state.fanMaxSpeed);
|
||||||
//digitalWrite(FAN_PIN, _state.fanStatus ? FAN_ON : FAN_OFF);
|
//digitalWrite(FAN_PIN, _state.fanStatus ? FAN_ON : FAN_OFF);
|
||||||
analogWrite(FAN_PIN, _state.fanMaxSpeed);
|
analogWrite(FAN_PIN, _state.fanMaxSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FanStateService::save() {
|
void FanStateService::save() {
|
||||||
Serial.print(" ** Fan Write FS ");
|
Serial.println(" ** Fan Write to FS ");
|
||||||
_fsPersistence.writeToFS();
|
_fsPersistence.writeToFS();
|
||||||
}
|
}
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
#define DEFAULT_FAN_GPIO 13
|
#define DEFAULT_FAN_GPIO 13
|
||||||
#define DEFAULT_THRES_LOW 25
|
#define DEFAULT_THRES_LOW 25
|
||||||
#define DEFAULT_THRES_HIGH 70
|
#define DEFAULT_THRES_HIGH 70
|
||||||
#define DEFAULT_FAN_MAX_SPEED 1024
|
#define DEFAULT_FAN_MAX_SPEED 1021
|
||||||
#define OFF_STATE "OFF"
|
#define OFF_STATE "OFF"
|
||||||
#define ON_STATE "ON"
|
#define ON_STATE "ON"
|
||||||
|
|
||||||
@@ -45,8 +45,12 @@ class FanSettings {
|
|||||||
root["fan_max_speed"] = settings.fanMaxSpeed;
|
root["fan_max_speed"] = settings.fanMaxSpeed;
|
||||||
root["temperature_thres_low"] = settings.thresLow;
|
root["temperature_thres_low"] = settings.thresLow;
|
||||||
root["temperature_thres_high"] = settings.thresHigh;
|
root["temperature_thres_high"] = settings.thresHigh;
|
||||||
String s = root["fan_status"];
|
// String s = (String)root["fan_status"] + "|" + (String)root["fan_gpio"] + "|" + (String)root["fan_max_speed"] + "|" + (String)root["temperature_thres_low"] + "|" + (String)root["temperature_thres_high"];
|
||||||
Serial.print(" ** Fan read [" + s + "]\n");
|
String s = root["fan_status"]; Serial.println(" ** Fan read [fan_status : " + s + "]");
|
||||||
|
String t = root["fan_gpio"]; Serial.println(" ** Fan read [fan_gpio : " + t + "]");
|
||||||
|
String u = root["fan_max_speed"]; Serial.println(" ** Fan read [fan_max_speed : " + u + "]");
|
||||||
|
String v = root["temperature_thres_low"]; Serial.println(" ** Fan read [temperature_thres_low : " + v + "]");
|
||||||
|
String w = root["temperature_thres_high"]; Serial.println(" ** Fan read [temperature_thres_high : " + w + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
static StateUpdateResult update(JsonObject& root, FanSettings& fanState) {
|
static StateUpdateResult update(JsonObject& root, FanSettings& fanState) {
|
||||||
@@ -55,28 +59,34 @@ class FanSettings {
|
|||||||
int newMaxSpeed = root["fan_max_speed"] | DEFAULT_FAN_MAX_SPEED;
|
int newMaxSpeed = root["fan_max_speed"] | DEFAULT_FAN_MAX_SPEED;
|
||||||
int newThresLow = root["temperature_thres_low"] | DEFAULT_THRES_LOW;
|
int newThresLow = root["temperature_thres_low"] | DEFAULT_THRES_LOW;
|
||||||
int newThresHigh = root["temperature_thres_high"] | DEFAULT_THRES_HIGH;
|
int newThresHigh = root["temperature_thres_high"] | DEFAULT_THRES_HIGH;
|
||||||
Serial.print(" ** Fan update [" + (String)newFanState + "]\n");
|
Serial.println(" ** Fan update [status:" + (String)newFanState + "|gpio:" + (String)newFanGpio + "|mxspd:" + (String)newMaxSpeed + "|low:" + (String)newThresLow + "|high:" + (String)newThresHigh + "]");
|
||||||
if (fanState.fanStatus != newFanState || fanState.fanGpio != newFanGpio ) {
|
if ( fanState.fanStatus != newFanState
|
||||||
|
|| fanState.fanGpio != newFanGpio
|
||||||
|
|| fanState.fanMaxSpeed != newMaxSpeed
|
||||||
|
|| fanState.thresLow != newThresLow
|
||||||
|
|| fanState.thresHigh != newThresHigh ) {
|
||||||
fanState.fanStatus = newFanState;
|
fanState.fanStatus = newFanState;
|
||||||
fanState.fanGpio = newFanGpio;
|
fanState.fanGpio = newFanGpio;
|
||||||
fanState.fanMaxSpeed = newMaxSpeed;
|
fanState.fanMaxSpeed = newMaxSpeed;
|
||||||
fanState.thresLow = newThresLow;
|
fanState.thresLow = newThresLow;
|
||||||
fanState.thresHigh = newThresHigh;
|
fanState.thresHigh = newThresHigh;
|
||||||
|
Serial.println(" ** Fan CONFIG : CHANGED");
|
||||||
return StateUpdateResult::CHANGED;
|
return StateUpdateResult::CHANGED;
|
||||||
}
|
}
|
||||||
|
Serial.println(" ** Fan CONFIG : UNCHANGED");
|
||||||
return StateUpdateResult::UNCHANGED;
|
return StateUpdateResult::UNCHANGED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void haRead(FanSettings& settings, JsonObject& root) {
|
static void haRead(FanSettings& settings, JsonObject& root) {
|
||||||
root["state"] = settings.fanStatus ? ON_STATE : OFF_STATE;
|
root["state"] = settings.fanStatus ? ON_STATE : OFF_STATE;
|
||||||
String s = root["state"];
|
String s = root["state"];
|
||||||
Serial.print(" ** Fan haRead [" + s + "] \n");
|
Serial.println(" ** Fan haRead [" + s + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
static StateUpdateResult haUpdate(JsonObject& root, FanSettings& fanState) {
|
static StateUpdateResult haUpdate(JsonObject& root, FanSettings& fanState) {
|
||||||
String state = root["state"];
|
String state = root["state"];
|
||||||
String s = root["state"];
|
String s = root["state"];
|
||||||
Serial.print(" ** Fan haUpdate [" + s + "] \n");
|
Serial.println(" ** Fan haUpdate [" + s + "]");
|
||||||
// parse new led state
|
// parse new led state
|
||||||
boolean newState = false;
|
boolean newState = false;
|
||||||
if (state.equals(ON_STATE)) {
|
if (state.equals(ON_STATE)) {
|
||||||
|
|||||||
20
src/main.cpp
20
src/main.cpp
@@ -35,6 +35,19 @@ ESP8266React esp8266React(&server);
|
|||||||
FanStateService fanStateService = FanStateService(&server,esp8266React.getFS(),esp8266React.getSecurityManager());
|
FanStateService fanStateService = FanStateService(&server,esp8266React.getFS(),esp8266React.getSecurityManager());
|
||||||
|
|
||||||
|
|
||||||
|
struct fanMonitor {
|
||||||
|
unsigned int rpmcount;
|
||||||
|
unsigned int last_time;
|
||||||
|
};
|
||||||
|
|
||||||
|
void ICACHE_RAM_ATTR handleInterrupt() {
|
||||||
|
rpmCount++;
|
||||||
|
if( rpmCount > 100 ) {
|
||||||
|
rpmCount=0;
|
||||||
|
Serial.println("100 RPM");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
// start serial and filesystem
|
// start serial and filesystem
|
||||||
Serial.begin(SERIAL_BAUD_RATE);
|
Serial.begin(SERIAL_BAUD_RATE);
|
||||||
@@ -52,8 +65,15 @@ void setup() {
|
|||||||
|
|
||||||
// start the server
|
// start the server
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
|
pinMode(14,INPUT); // 14 = D5
|
||||||
|
// attachInterrupt(digitalPinToInterrupt(14), handleInterrupt, RISING);
|
||||||
|
attachInterrupt(14,handleInterrupt,RISING);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
// run the framework's loop function
|
// run the framework's loop function
|
||||||
esp8266React.loop();
|
esp8266React.loop();
|
||||||
|
|||||||
Reference in New Issue
Block a user