diff --git a/README.md b/README.md index 7facc76..78cb988 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Statistical Library V1 +# Statistical Library V1.4 ![GitHub release (latest by date)](https://img.shields.io/github/v/release/akkoyun/Statistical) ![arduino-library-badge](https://www.ardu-badge.com/badge/Statistical.svg?) ![Visits Badge](https://badges.pufler.dev/visits/akkoyun/Statistical) ![GitHub stars](https://img.shields.io/github/stars/akkoyun/Statistical?style=flat&logo=github) ![Updated Badge](https://badges.pufler.dev/updated/akkoyun/Statistical) ![PlatformIO Registry](https://badges.registry.platformio.org/packages/akkoyun/library/Statistical.svg) - Library - 01.04.00 + Build - 01.04.01 --- diff --git a/examples/.DS_Store b/examples/.DS_Store index a9b3d4a..e0ec52f 100644 Binary files a/examples/.DS_Store and b/examples/.DS_Store differ diff --git a/examples/Pressure_Regression/Pressure_Regression.ino b/examples/Pressure_Regression/Pressure_Regression.ino new file mode 100644 index 0000000..8601ed0 --- /dev/null +++ b/examples/Pressure_Regression/Pressure_Regression.ino @@ -0,0 +1,72 @@ +#include +#include + +Statistical DataSet; + +// Set Array +float Data[5][2]; + +void setup() { + + // Start Serial + Serial.begin(115200); + + // Set Presicion + DataSet.Linear_Regression_Presicion = 5; + + // First Pressure Read + for (uint8_t i = 0; i < DataSet.Linear_Regression_Presicion + 5; i++) { + + // Measure Pressure + float _Pressure = Sensor.Read_Analog_Pressure(2, 50); + + // Calculate Time Stamp + float _Time = ((float)millis() / 1000) / 60; + + // Learn Data + DataSet.Array_FILO(Data, 5, _Time, _Pressure); + + // Calculate Regression + DataSet.Linear_Regression_Calculate(Data); + + // Clear DataSet + DataSet.Linear_Regression_Data_Clear(); + + } + + +} + +void loop() { + + // Measure Pressure + float _Pressure = Sensor.Read_Analog_Pressure(2, 50); + + // Calculate Time Stamp + float _Time = ((float)millis() / 1000) / 60; + + // Learn Data + DataSet.Array_FILO(Data, 5, _Time, _Pressure); + + // Calculate Regression + DataSet.Linear_Regression_Calculate(Data); + + // Calculate Anomaly + float _Pressure_Anomaly = DataSet.Linear_Regression_Slope * 100; + + // Print Anomaly + //if (_Pressure_Anomaly > 4) Serial.println("Basinc Artisi"); + //if (_Pressure_Anomaly < -4) Serial.println("Basinc Azalisi"); + + // Print Calculated Data + Serial.print("Pressure : "); Serial.print(_Pressure, 4); Serial.println(" Bar"); + Serial.print("Slope : "); Serial.print(DataSet.Linear_Regression_Slope * 100, 4); Serial.println(" "); + Serial.println("----------------"); + + // Clear DataSet + DataSet.Linear_Regression_Data_Clear(); + + delay(2000); + +} + diff --git a/library.json b/library.json index 3b81c78..3ad0100 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "Statistical", - "version": "1.4.0", + "version": "1.4.1", "keywords": "Statistical, Max, Min, Average, Regression, Data, Sensor, Slope, Offset", "description": "Function calculates statistical parameters of data stream and array", "authors": @@ -31,12 +31,19 @@ ] }, { - "name": "Stream", + "name": "Regression", "base": "examples/Regression/", "files": [ "Regression.ino" ] }, + { + "name": "Pressure Regression Stream", + "base": "examples/Pressure_Regression/", + "files": [ + "Pressure_Regression.ino" + ] + }, { "name": "Stream", "base": "examples/Stream/", diff --git a/library.properties b/library.properties index 0225910..d363d6e 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Statistical -version=1.4.0 +version=1.4.1 author=Gunce Akkoyun maintainer=Gunce Akkoyun sentence=Statistic, Sum, Max, Min, Sq_Sum, Aritmetic Average, Geometric Average, RMS Average, Ext RMS Average, Bubble Sort, Median, Standart Deviation, Standart Deviation Error, Coefficient Factor, Average, Stream, Regression, Slope, Data, Analyse diff --git a/src/Statistical.cpp b/src/Statistical.cpp index 860f451..292942f 100644 --- a/src/Statistical.cpp +++ b/src/Statistical.cpp @@ -59,7 +59,7 @@ void Statistical::Linear_Regression_Calculate(float _Data[][2]) { for (uint16_t i = 0; i < Linear_Regression_Presicion; i++) { // Print Array - Serial.print(_Data[i][0]); Serial.print("-"); Serial.println(_Data[i][1]); + //Serial.print(_Data[i][0]); Serial.print("-"); Serial.println(_Data[i][1]); // Push Data Linear_Regression(_Data[i][0], _Data[i][1]);