Added running average methods to determine if we should send temperature / humidity reports

This commit is contained in:
Thomas Mørch
2015-05-12 21:23:09 +02:00
parent 941afb30e9
commit 7fcdbb32d8
8 changed files with 431 additions and 41 deletions
@@ -0,0 +1,38 @@
//
// FILE: fillValue.pde
// AUTHOR: Rob Tillaart
// DATE: 2012-12-30
//
// PUPROSE: show working of fillValue
//
#include "RunningAverage.h"
RunningAverage myRA(10);
int samples = 0;
void setup(void)
{
Serial.begin(115200);
Serial.print("Demo RunningAverage lib - fillValue ");
Serial.print("Version: ");
Serial.println(RUNNINGAVERAGE_LIB_VERSION);
myRA.fillValue(100,5);
}
void loop(void)
{
long rn = random(0, 100);
myRA.addValue(rn/100.0);
samples++;
Serial.print("Running Average: ");
Serial.println(myRA.getAverage(), 4);
if (samples == 300)
{
samples = 0;
myRA.fillValue(100, 10);
}
delay(100);
}
@@ -0,0 +1,46 @@
//
// FILE: runningAverageMinMaxTest.ino
// AUTHOR: Rob Tillaart
// VERSION: 0.1.00
// DATE: 2015-apr-10
//
// PUPROSE: demo
//
#include "RunningAverage.h"
RunningAverage myRA(10);
int samples = 0;
void setup(void)
{
Serial.begin(115200);
Serial.println("\nDemo runningAverageMinMaxTest");
Serial.print("Version: ");
Serial.println(RUNNINGAVERAGE_LIB_VERSION);
myRA.clear(); // explicitly start clean
Serial.println("\nCNT\tMIN\tAVG\tMAX");
}
void loop(void)
{
long rn = random(0, 1000);
myRA.addValue(rn * 0.001);
samples++;
Serial.print(samples);
Serial.print("\t");
Serial.print(myRA.getMin(), 3);
Serial.print("\t");
Serial.print(myRA.getAverage(), 3);
Serial.print("\t");
Serial.println(myRA.getMax(), 3);
if (samples == 100)
{
samples = 0;
myRA.clear();
Serial.println("\nCNT\tMIN\tAVG\tMAX");
}
delay(10);
}
@@ -0,0 +1,40 @@
//
// FILE: runningAverageHour.pde
// AUTHOR: Rob Tillaart
// DATE: 2012-12-30
//
// PUPROSE: show working of runningAverage per hour
// in 2 steps - last minute + last hour
// 3 or more steps also possible
//
#include "RunningAverage.h"
RunningAverage raMinute(60);
RunningAverage raHour(60);
int samples = 0;
void setup(void)
{
Serial.begin(115200);
Serial.println("Demo RunningAverage lib - average per minute & hour");
Serial.print("Version: ");
Serial.println(RUNNINGAVERAGE_LIB_VERSION);
raHour.clear();
raMinute.clear();
}
void loop(void)
{
long rn = random(0, 100);
raMinute.addValue(rn);
samples++;
if (samples % 60 == 0) raHour.addValue(raMinute.getAverage());
Serial.print(" raMinute: ");
Serial.print(raMinute.getAverage(), 4);
Serial.print(" raHour: ");
Serial.println(raHour.getAverage(), 4);
}
@@ -0,0 +1,40 @@
//
// FILE: runningAverageTest.pde
// AUTHOR: Rob Tillaart
// VERSION: 0.1.01
// DATE: 2012-12-30
//
// PUPROSE: show working of runningAverage
//
#include "RunningAverage.h"
RunningAverage myRA(10);
int samples = 0;
void setup(void)
{
Serial.begin(115200);
Serial.println("Demo RunningAverage lib");
Serial.print("Version: ");
Serial.println(RUNNINGAVERAGE_LIB_VERSION);
myRA.clear(); // explicitly start clean
}
void loop(void)
{
long rn = random(0, 1000);
myRA.addValue(rn * 0.001);
samples++;
Serial.print(samples);
Serial.print("\t Running Average: ");
Serial.println(myRA.getAverage(), 3);
if (samples == 300)
{
samples = 0;
myRA.clear();
Serial.println();
}
delay(10);
}