pio
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
[factory_settings]
|
||||
build_flags =
|
||||
; WiFi settings
|
||||
|
||||
-D FACTORY_WIFI_SSID=\"\"
|
||||
-D FACTORY_WIFI_PASSWORD=\"\"
|
||||
-D FACTORY_WIFI_HOSTNAME=\"#{platform}-#{unique_id}\" ; supports placeholders
|
||||
@@ -30,7 +31,7 @@ build_flags =
|
||||
|
||||
; NTP settings
|
||||
-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_SERVER=\"time.google.com\"
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@ function FanStatusRestControllerForm(props: FanStatusRestControllerFormProps) {
|
||||
margin="normal"
|
||||
/>
|
||||
<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"]}
|
||||
name="fan_max_speed"
|
||||
label="Fan Max Speed"
|
||||
|
||||
@@ -21,18 +21,18 @@ FanStateService::FanStateService(AsyncWebServer* server, FS* fs, SecurityManager
|
||||
|
||||
void FanStateService::begin() {
|
||||
_state.fanStatus = DEFAULT_FAN_STATE;
|
||||
Serial.print("Starting The Fan Service");
|
||||
Serial.println("Starting The Fan Service + read from FS");
|
||||
_fsPersistence.readFromFS();
|
||||
onConfigUpdated();
|
||||
}
|
||||
|
||||
void FanStateService::onConfigUpdated() {
|
||||
Serial.print(" ** Fan UPDATE ");
|
||||
Serial.println(" ** Fan UPDATE to " + _state.fanMaxSpeed);
|
||||
//digitalWrite(FAN_PIN, _state.fanStatus ? FAN_ON : FAN_OFF);
|
||||
analogWrite(FAN_PIN, _state.fanMaxSpeed);
|
||||
}
|
||||
|
||||
void FanStateService::save() {
|
||||
Serial.print(" ** Fan Write FS ");
|
||||
Serial.println(" ** Fan Write to FS ");
|
||||
_fsPersistence.writeToFS();
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
#define DEFAULT_FAN_GPIO 13
|
||||
#define DEFAULT_THRES_LOW 25
|
||||
#define DEFAULT_THRES_HIGH 70
|
||||
#define DEFAULT_FAN_MAX_SPEED 1024
|
||||
#define DEFAULT_FAN_MAX_SPEED 1021
|
||||
#define OFF_STATE "OFF"
|
||||
#define ON_STATE "ON"
|
||||
|
||||
@@ -45,8 +45,12 @@ class FanSettings {
|
||||
root["fan_max_speed"] = settings.fanMaxSpeed;
|
||||
root["temperature_thres_low"] = settings.thresLow;
|
||||
root["temperature_thres_high"] = settings.thresHigh;
|
||||
String s = root["fan_status"];
|
||||
Serial.print(" ** Fan read [" + s + "]\n");
|
||||
// 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"];
|
||||
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) {
|
||||
@@ -55,28 +59,34 @@ class FanSettings {
|
||||
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.print(" ** Fan update [" + (String)newFanState + "]\n");
|
||||
if (fanState.fanStatus != newFanState || fanState.fanGpio != newFanGpio ) {
|
||||
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
|
||||
|| fanState.fanMaxSpeed != newMaxSpeed
|
||||
|| fanState.thresLow != newThresLow
|
||||
|| fanState.thresHigh != newThresHigh ) {
|
||||
fanState.fanStatus = newFanState;
|
||||
fanState.fanGpio = newFanGpio;
|
||||
fanState.fanMaxSpeed = newMaxSpeed;
|
||||
fanState.thresLow = newThresLow;
|
||||
fanState.thresHigh = newThresHigh;
|
||||
Serial.println(" ** Fan CONFIG : CHANGED");
|
||||
return StateUpdateResult::CHANGED;
|
||||
}
|
||||
Serial.println(" ** Fan CONFIG : UNCHANGED");
|
||||
return StateUpdateResult::UNCHANGED;
|
||||
}
|
||||
|
||||
static void haRead(FanSettings& settings, JsonObject& root) {
|
||||
root["state"] = settings.fanStatus ? ON_STATE : OFF_STATE;
|
||||
String s = root["state"];
|
||||
Serial.print(" ** Fan haRead [" + s + "] \n");
|
||||
Serial.println(" ** Fan haRead [" + s + "]");
|
||||
}
|
||||
|
||||
static StateUpdateResult haUpdate(JsonObject& root, FanSettings& fanState) {
|
||||
String state = root["state"];
|
||||
String s = root["state"];
|
||||
Serial.print(" ** Fan haUpdate [" + s + "] \n");
|
||||
Serial.println(" ** Fan haUpdate [" + s + "]");
|
||||
// parse new led state
|
||||
boolean newState = false;
|
||||
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());
|
||||
|
||||
|
||||
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() {
|
||||
// start serial and filesystem
|
||||
Serial.begin(SERIAL_BAUD_RATE);
|
||||
@@ -52,8 +65,15 @@ void setup() {
|
||||
|
||||
// start the server
|
||||
server.begin();
|
||||
|
||||
pinMode(14,INPUT); // 14 = D5
|
||||
// attachInterrupt(digitalPinToInterrupt(14), handleInterrupt, RISING);
|
||||
attachInterrupt(14,handleInterrupt,RISING);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void loop() {
|
||||
// run the framework's loop function
|
||||
esp8266React.loop();
|
||||
|
||||
Reference in New Issue
Block a user