add valueerror debug outputs
This commit is contained in:
parent
3c8e67ba32
commit
504286b30f
|
@ -224,10 +224,10 @@ void ec_loop(unsigned long loopmillis) {
|
||||||
last_read_ec=loopmillis;
|
last_read_ec=loopmillis;
|
||||||
|
|
||||||
if (loopmillis>ec_last_change_relay+EC_RELAY_SWITCH_SETTLETIME) { //values have settled
|
if (loopmillis>ec_last_change_relay+EC_RELAY_SWITCH_SETTLETIME) { //values have settled
|
||||||
Serial.print("Get ADC Reading");
|
//Serial.print("Get ADC Reading");
|
||||||
uint16_t value = ADS.readADC(EC_ADS_CHANNEL);
|
uint16_t value = ADS.readADC(EC_ADS_CHANNEL);
|
||||||
Serial.print(". Write to pos ");
|
//Serial.print(". Write to pos ");
|
||||||
Serial.println(ec_array_pos);
|
//Serial.println(ec_array_pos);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ VL53L0X sensorA;
|
||||||
|
|
||||||
float waterlevelAMean_array[WATERLEVELMEAN_SIZE];
|
float waterlevelAMean_array[WATERLEVELMEAN_SIZE];
|
||||||
uint16_t waterlevelAMean_array_pos=0;
|
uint16_t waterlevelAMean_array_pos=0;
|
||||||
float waterlevelA=WATERLEVEL_UNAVAILABLE; //distance from floor to water surface [mm]
|
float waterlevelA=WATERLEVEL_UNAVAILABLE;
|
||||||
float watervolumeA=WATERLEVEL_UNAVAILABLE; //calculated Volume in Reservoir
|
float watervolumeA=WATERLEVEL_UNAVAILABLE;
|
||||||
|
|
||||||
|
|
||||||
//Calibration
|
//Calibration
|
||||||
|
@ -102,16 +102,30 @@ float waterlevelB_heightToVolume(float distance);
|
||||||
mqttValueTiming timing_waterlevelA;
|
mqttValueTiming timing_waterlevelA;
|
||||||
mqttValueTiming timing_waterlevelB;
|
mqttValueTiming timing_waterlevelB;
|
||||||
|
|
||||||
void waterlevel_setup() {
|
void waterlevel_shutdownSensors() {
|
||||||
|
|
||||||
|
|
||||||
pinMode(PIN_VL53L0X_XSHUT_A, OUTPUT);
|
pinMode(PIN_VL53L0X_XSHUT_A, OUTPUT);
|
||||||
digitalWrite(PIN_VL53L0X_XSHUT_A, LOW); //pull to GND
|
digitalWrite(PIN_VL53L0X_XSHUT_A, LOW); //pull to GND
|
||||||
|
|
||||||
pinMode(PIN_VL53L0X_XSHUT_B, OUTPUT);
|
pinMode(PIN_VL53L0X_XSHUT_B, OUTPUT);
|
||||||
digitalWrite(PIN_VL53L0X_XSHUT_B, LOW); //pull to GND
|
digitalWrite(PIN_VL53L0X_XSHUT_B, LOW); //pull to GND
|
||||||
|
}
|
||||||
|
|
||||||
|
void waterlevel_enableSensor(uint8_t sensorid) {
|
||||||
|
switch (sensorid){
|
||||||
|
case 0:
|
||||||
|
pinMode(PIN_VL53L0X_XSHUT_A, INPUT); //Enable Sensor A
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
pinMode(PIN_VL53L0X_XSHUT_B, INPUT); //Enable Sensor B
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void waterlevel_setup() {
|
||||||
|
|
||||||
|
|
||||||
|
waterlevel_shutdownSensors();
|
||||||
|
delay(100);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -162,14 +176,14 @@ void waterlevel_setup() {
|
||||||
timing_waterlevelA.maxtime=60*60*1000;
|
timing_waterlevelA.maxtime=60*60*1000;
|
||||||
|
|
||||||
timing_waterlevelB.minchange=0.0;
|
timing_waterlevelB.minchange=0.0;
|
||||||
timing_waterlevelB.maxchange=3.0;
|
timing_waterlevelB.maxchange=0.5;
|
||||||
timing_waterlevelB.mintime=30*000;
|
timing_waterlevelB.mintime=10*000;
|
||||||
timing_waterlevelB.maxtime=60*60*1000;
|
timing_waterlevelB.maxtime=60*60*1000;
|
||||||
|
|
||||||
pinMode(PIN_VL53L0X_XSHUT_B, INPUT); //Enable Sensor B first, to change its address
|
waterlevel_enableSensor(1); //1==B //Enable Sensor B first, to change its address
|
||||||
delay(50);
|
delay(50);
|
||||||
|
|
||||||
Wire.begin();
|
Wire.begin(21,22);
|
||||||
Serial.print("I2C Clock Speed=");
|
Serial.print("I2C Clock Speed=");
|
||||||
Serial.println(Wire.getClock());
|
Serial.println(Wire.getClock());
|
||||||
|
|
||||||
|
@ -212,7 +226,7 @@ void waterlevel_setup() {
|
||||||
// Stop driving this sensor's XSHUT low. This should allow the carrier
|
// Stop driving this sensor's XSHUT low. This should allow the carrier
|
||||||
// board to pull it high. (We do NOT want to drive XSHUT high since it is
|
// board to pull it high. (We do NOT want to drive XSHUT high since it is
|
||||||
// not level shifted.) Then wait a bit for the sensor to start up.
|
// not level shifted.) Then wait a bit for the sensor to start up.
|
||||||
pinMode(PIN_VL53L0X_XSHUT_A, INPUT);
|
waterlevel_enableSensor(0);
|
||||||
delay(50);
|
delay(50);
|
||||||
|
|
||||||
//Initialize Sensor A after SensorB's address was changed
|
//Initialize Sensor A after SensorB's address was changed
|
||||||
|
|
|
@ -60,7 +60,6 @@ void connect() {
|
||||||
client.subscribe((String)client_id+"/ec/trigger");
|
client.subscribe((String)client_id+"/ec/trigger");
|
||||||
client.subscribe((String)client_id+"/errorack");
|
client.subscribe((String)client_id+"/errorack");
|
||||||
client.subscribe((String)client_id+"/reboot");
|
client.subscribe((String)client_id+"/reboot");
|
||||||
// client.unsubscribe("/hello");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
41
src/main.cpp
41
src/main.cpp
|
@ -5,6 +5,7 @@ bool valueError=false;
|
||||||
|
|
||||||
unsigned long last_check=0;
|
unsigned long last_check=0;
|
||||||
|
|
||||||
|
|
||||||
#include "wifi_functions.h"
|
#include "wifi_functions.h"
|
||||||
|
|
||||||
bool debug=false; //print Serial information
|
bool debug=false; //print Serial information
|
||||||
|
@ -23,7 +24,6 @@ bool valuesStabilized=false; //gets set true when values are stable (avaeraging
|
||||||
#include "helpfunctions.h"
|
#include "helpfunctions.h"
|
||||||
#include "ADS1X15.h"
|
#include "ADS1X15.h"
|
||||||
|
|
||||||
ADS1115 ADS(0x48);
|
|
||||||
|
|
||||||
|
|
||||||
// ######## Temperature
|
// ######## Temperature
|
||||||
|
@ -35,6 +35,7 @@ ADS1115 ADS(0x48);
|
||||||
|
|
||||||
|
|
||||||
// ######## EC
|
// ######## EC
|
||||||
|
ADS1115 ADS(0x48);
|
||||||
#include "ec.h"
|
#include "ec.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -49,6 +50,7 @@ ADS1115 ADS(0x48);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define PIN_BUTTON 12
|
#define PIN_BUTTON 12
|
||||||
#define PIN_LED 13
|
#define PIN_LED 13
|
||||||
|
|
||||||
|
@ -69,6 +71,7 @@ void setup() {
|
||||||
Serial.println("Setup Waterlevel");
|
Serial.println("Setup Waterlevel");
|
||||||
waterlevel_setup();
|
waterlevel_setup();
|
||||||
|
|
||||||
|
|
||||||
//init ADS1115
|
//init ADS1115
|
||||||
if (!ADS.begin()) {
|
if (!ADS.begin()) {
|
||||||
Serial.println("Error:"); delay(2000); Serial.println("ADS1115 Init Error!");
|
Serial.println("Error:"); delay(2000); Serial.println("ADS1115 Init Error!");
|
||||||
|
@ -118,6 +121,8 @@ void setup() {
|
||||||
void loop() {
|
void loop() {
|
||||||
unsigned long loopmillis=millis();
|
unsigned long loopmillis=millis();
|
||||||
enableTiming=true; //reactivate
|
enableTiming=true; //reactivate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ec_loop(loopmillis);
|
ec_loop(loopmillis);
|
||||||
|
@ -198,6 +203,22 @@ void loop() {
|
||||||
bool _noErrorsDuringLoop=true;
|
bool _noErrorsDuringLoop=true;
|
||||||
|
|
||||||
if (tempCmean_reservoir_a==DEVICE_DISCONNECTED_C || tempCmean_reservoir_b==DEVICE_DISCONNECTED_C || tempCmean_case==DEVICE_DISCONNECTED_C) {
|
if (tempCmean_reservoir_a==DEVICE_DISCONNECTED_C || tempCmean_reservoir_b==DEVICE_DISCONNECTED_C || tempCmean_case==DEVICE_DISCONNECTED_C) {
|
||||||
|
if (!valueError && valuesStabilized) { //error just appeared
|
||||||
|
if (tempCmean_reservoir_a==DEVICE_DISCONNECTED_C) {
|
||||||
|
Serial.println("valueError tempCmean_reservoir_a");
|
||||||
|
publishInfo("error/temperature","valueError tempCmean_reservoir_a");
|
||||||
|
}
|
||||||
|
if (tempCmean_reservoir_b==DEVICE_DISCONNECTED_C) {
|
||||||
|
Serial.println("valueError tempCmean_reservoir_b");
|
||||||
|
publishInfo("error/temperature","valueError tempCmean_reservoir_b");
|
||||||
|
}
|
||||||
|
if (tempCmean_case==DEVICE_DISCONNECTED_C) {
|
||||||
|
Serial.println("valueError tempCmean_case");
|
||||||
|
publishInfo("error/temperature","valueError tempCmean_case");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
valueError=true;
|
valueError=true;
|
||||||
_noErrorsDuringLoop=false;
|
_noErrorsDuringLoop=false;
|
||||||
}
|
}
|
||||||
|
@ -207,6 +228,16 @@ void loop() {
|
||||||
valueError=true;
|
valueError=true;
|
||||||
}*/
|
}*/
|
||||||
if (ec_A==EC_UNAVAILABLE || ec_B==EC_UNAVAILABLE){
|
if (ec_A==EC_UNAVAILABLE || ec_B==EC_UNAVAILABLE){
|
||||||
|
if (!valueError && valuesStabilized) { //error just appeared
|
||||||
|
if (ec_A==EC_UNAVAILABLE){
|
||||||
|
Serial.println("valueError ecA");
|
||||||
|
publishInfo("error/ec","valueError ecA");
|
||||||
|
}
|
||||||
|
if (ec_B==EC_UNAVAILABLE){
|
||||||
|
Serial.println("valueError ecB");
|
||||||
|
publishInfo("error/ec","valueError ecB");
|
||||||
|
}
|
||||||
|
}
|
||||||
valueError=true;
|
valueError=true;
|
||||||
_noErrorsDuringLoop=false;
|
_noErrorsDuringLoop=false;
|
||||||
}
|
}
|
||||||
|
@ -214,10 +245,18 @@ void loop() {
|
||||||
|
|
||||||
|
|
||||||
if (distanceA_unsuccessful_count>20) {
|
if (distanceA_unsuccessful_count>20) {
|
||||||
|
if (!valueError && valuesStabilized) { //error just appeared
|
||||||
|
Serial.println("valueError distanceA");
|
||||||
|
publishInfo("error/waterlevel","valueError distanceA");
|
||||||
|
}
|
||||||
valueError=true;
|
valueError=true;
|
||||||
_noErrorsDuringLoop=false;
|
_noErrorsDuringLoop=false;
|
||||||
}
|
}
|
||||||
if (distanceB_unsuccessful_count>20) {
|
if (distanceB_unsuccessful_count>20) {
|
||||||
|
if (!valueError && valuesStabilized) { //error just appeared
|
||||||
|
Serial.println("valueError distanceB");
|
||||||
|
publishInfo("error/waterlevel","valueError distanceB");
|
||||||
|
}
|
||||||
valueError=true;
|
valueError=true;
|
||||||
_noErrorsDuringLoop=false;
|
_noErrorsDuringLoop=false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue