#include #define rxPin 2 #define txPin 3 #define ANALOGPIN A0 SoftwareSerial HC06(rxPin, txPin); #include statistic::Statistic myStats; uint32_t start; uint32_t stops; char cmd; void setup(void) { Serial.begin(9600); HC06.begin(9600); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); myStats.clear(); start = millis(); } void loop(void) { stops = millis(); // Read data from HC06 if(HC06.available()){ cmd = HC06.read(); Serial.write(cmd); // Run / Stop app's options if(cmd == "A"){ Serial.print("Function is on"); // Read the input on analog pin A0: int sensorValue = analogRead(A0); // Convert the analog reading (which goes from 0 - 1023) to the water-level (0 - 618mm): int W_level = map(sensorValue, 0, 1023, 0, 618); // Print out the value in mm Serial.print("Water level = "); Serial.println(W_level); HC06.print(W_level); HC06.print("x"); // Calculus of the Mean, Range, SEM (variation coefficient) and Time myStats.add(W_level); Serial.print("Average = "); int Average = myStats.average(); Serial.println(Average); HC06.print(Average); HC06.print("x"); Serial.print("Range = "); int Range = myStats.maximum() - myStats.minimum(); Serial.println(Range); HC06.print(Range); HC06.print("x"); Serial.print("SEM = "); float SEM = myStats.pop_stdev() / myStats.average(); Serial.println(SEM, 4); HC06.print(SEM); HC06.print("x"); Serial.print("time(s): "); float Time = (stops - start) / 1000; Serial.println(Time, 1); HC06.print(Time, 1); HC06.println(); delay(400); } else if(cmd == "B"){Serial.println("Function is off");} } }