2023-03-30 15:55:45 +00:00
|
|
|
#include <Arduino.h>
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
bool flag_print=false;
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
#include "helpfunctions.h"
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
// ######## EC
|
|
|
|
#include "ec.h"
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
// ######## Temperature
|
|
|
|
#include "temperature.h"
|
2023-04-04 05:53:20 +00:00
|
|
|
|
|
|
|
|
2023-04-05 07:22:57 +00:00
|
|
|
// ######## Water Level
|
2023-04-17 19:32:34 +00:00
|
|
|
#include "waterlevel.h"
|
2023-04-04 05:53:20 +00:00
|
|
|
|
|
|
|
|
2023-04-07 16:03:41 +00:00
|
|
|
// ######## Flow Rate
|
2023-04-17 19:32:34 +00:00
|
|
|
#include "flow.h"
|
2023-04-07 16:03:41 +00:00
|
|
|
|
|
|
|
|
2023-03-30 15:55:45 +00:00
|
|
|
unsigned long last_print=0;
|
|
|
|
|
2023-04-04 05:53:20 +00:00
|
|
|
|
|
|
|
|
2023-04-07 16:03:41 +00:00
|
|
|
|
2023-04-04 05:53:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-30 15:55:45 +00:00
|
|
|
|
|
|
|
void setup() {
|
|
|
|
Serial.begin(115200);
|
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
ec_setup();
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
waterlevel_setup();
|
2023-04-05 07:22:57 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
temperature_setup();
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
flow_setup();
|
2023-04-07 16:03:41 +00:00
|
|
|
|
2023-04-04 05:53:20 +00:00
|
|
|
Serial.println("Setup finished");
|
|
|
|
delay(500);
|
2023-03-30 15:55:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop() {
|
|
|
|
unsigned long loopmillis=millis();
|
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
flag_print=false;
|
2023-04-05 07:22:57 +00:00
|
|
|
|
2023-03-30 15:55:45 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
ec_loop(loopmillis, EC_READ_INTERVAL);
|
2023-04-05 07:22:57 +00:00
|
|
|
|
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
temperature_loop(loopmillis, READINTERVAL_DS18B20);
|
2023-04-05 07:22:57 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
|
|
|
|
waterlevel_loop(loopmillis, READINTERVAL_HCSR04);
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-07 16:03:41 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
flow_loop(loopmillis, READINTERVAL_FLOW);
|
|
|
|
|
2023-04-07 16:03:41 +00:00
|
|
|
|
2023-04-05 07:22:57 +00:00
|
|
|
|
2023-04-04 05:53:20 +00:00
|
|
|
if (loopmillis>last_print+500) {
|
2023-03-30 15:55:45 +00:00
|
|
|
last_print=loopmillis;
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-09 18:33:45 +00:00
|
|
|
if (isValueArrayOK(ec_array,EC_ARRAY_SIZE,0))
|
|
|
|
{
|
|
|
|
Serial.print("EC=");
|
|
|
|
Serial.print(getMean(ec_array,EC_ARRAY_SIZE),3);
|
|
|
|
Serial.print(" count (+- "); Serial.print( (getMax(ec_array,EC_ARRAY_SIZE) - getMin(ec_array,EC_ARRAY_SIZE))/2.0); Serial.print(")");
|
|
|
|
}else{
|
|
|
|
Serial.print("Waiting for EC");
|
|
|
|
}
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-04-05 07:22:57 +00:00
|
|
|
if (isValueArrayOKf(tempCmean_reservoir,TEMPMEAN_SIZE,DEVICE_DISCONNECTED_C)){
|
2023-04-04 05:53:20 +00:00
|
|
|
Serial.print("\t Treservoir="); Serial.print(getMeanf(tempCmean_reservoir,TEMPMEAN_SIZE)); Serial.print("\t Tair="); Serial.print(getMeanf(tempCmean_air,TEMPMEAN_SIZE));
|
|
|
|
}else{
|
2023-04-05 07:22:57 +00:00
|
|
|
Serial.print("\t waiting for temperature");
|
2023-04-04 05:53:20 +00:00
|
|
|
}
|
2023-04-05 07:22:57 +00:00
|
|
|
|
|
|
|
|
2023-04-09 18:33:45 +00:00
|
|
|
if (isValueArrayOKf(waterlevelMean,WATERLEVELMEAN_SIZE,-1.0)){
|
|
|
|
float _max=getMaxf(waterlevelMean,WATERLEVELMEAN_SIZE);
|
|
|
|
float _min=getMinf(waterlevelMean,WATERLEVELMEAN_SIZE);
|
|
|
|
|
|
|
|
float _filteredWaterlevel=getFilteredf(waterlevelMean,WATERLEVELMEAN_SIZE,8);
|
|
|
|
float _meanWaterlevel=getMeanf(waterlevelMean,WATERLEVELMEAN_SIZE);
|
|
|
|
|
|
|
|
|
|
|
|
Serial.print("\t Dist="); Serial.print(_filteredWaterlevel); Serial.print("mm"); Serial.print("(+- "); Serial.print((_max-_min)/2.0); Serial.print(")"); Serial.print(" [mean="); Serial.print(_meanWaterlevel); Serial.print("]");
|
|
|
|
|
2023-04-05 07:22:57 +00:00
|
|
|
}else{
|
|
|
|
Serial.print("\t waiting for distance");
|
|
|
|
}
|
2023-04-07 16:03:41 +00:00
|
|
|
|
2023-04-17 19:32:34 +00:00
|
|
|
Serial.print("\t Flow="); Serial.print(flow,2);
|
2023-04-07 16:03:41 +00:00
|
|
|
Serial.print("\t Flowsum="); Serial.print(flow_counter_sum);
|
2023-04-05 07:22:57 +00:00
|
|
|
|
2023-04-04 05:53:20 +00:00
|
|
|
|
|
|
|
|
2023-03-30 15:55:45 +00:00
|
|
|
Serial.println();
|
2023-04-04 05:53:20 +00:00
|
|
|
|
2023-03-30 15:55:45 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|