diff --git a/platformio.ini b/platformio.ini index 25cc39d..0e641cb 100644 --- a/platformio.ini +++ b/platformio.ini @@ -39,7 +39,7 @@ build_flags = -D SENSOR_HS1101 -D HS1101PIN=D5 - -D dataHS1101_minchange=2 + -D dataHS1101_minchange=10 -D SENSOR_ML8511 -D ML8511PIN=A0 @@ -47,9 +47,9 @@ build_flags = -D SENSOR_ANEMOMETER -D ANEMOMETERPIN=D6 #Light Blue thicker cable (in distribution box) - -D dataAnemometer_minchange=0.5 - -D dataAnemometer_readdelay=1000*10 - -D dataAnemometer_senddelaymax=1000*60*2 + -D dataAnemometer_minchange=5.0 + -D dataAnemometer_readdelay=1000*30 + -D dataAnemometer_senddelaymax=1000*60*5 # Cable from Anemometer: Black=GND, Blue=3v3, Brown=Signal (needs pullup (internal)) lib_deps = diff --git a/src/main.cpp b/src/main.cpp index 6fd5317..160c0c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -197,6 +197,9 @@ struct sensordata #define ANEMOMETER_PPMtoMPS 0.0208640462; + #define ANEMOMETER_DEBOUNCETIME 0.015 //0.015ms between pulses is approx 85m/s windspeed + unsigned long anemometer_lastpulse_fordebounce=0; + float value_anemometer=0; // [m/s] void ICACHE_RAM_ATTR interrupt_anemometer(); @@ -1171,7 +1174,10 @@ float getUV_ML8511(int pin) { #ifdef SENSOR_ANEMOMETER void ICACHE_RAM_ATTR interrupt_anemometer() { - anemometer_pulsecounter++; + if (millis() - anemometer_lastpulse_fordebounce >= ANEMOMETER_DEBOUNCETIME) { //ignore if pulse came too fast + anemometer_pulsecounter++; + anemometer_lastpulse_fordebounce=millis(); + } } #endif