Fix Calibration Routines
This commit is contained in:
parent
c455a7c7a7
commit
b02df7d69b
9 changed files with 15 additions and 5 deletions
|
@ -40,8 +40,8 @@ class AttSensor {
|
||||||
// Return the number of Bytes added to the Payload
|
// Return the number of Bytes added to the Payload
|
||||||
virtual uint8_t numBytes(void) = 0;
|
virtual uint8_t numBytes(void) = 0;
|
||||||
|
|
||||||
// Calibrate a Sensor. Needs to be Implemented in the Child Class if supported
|
// Calibrate a Sensor. Needs to be Implemented in the Child Class
|
||||||
void calibrate(void) {};
|
virtual void calibrate(void) = 0;
|
||||||
|
|
||||||
// Helper Functions to Put Values Into the Payload Array
|
// Helper Functions to Put Values Into the Payload Array
|
||||||
static void int32ToPayload(int32_t value, char *payload, uint8_t startbyte) {
|
static void int32ToPayload(int32_t value, char *payload, uint8_t startbyte) {
|
||||||
|
|
|
@ -33,6 +33,7 @@ private:
|
||||||
public:
|
public:
|
||||||
BME280(void);
|
BME280(void);
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
|
void calibrate(void) {};
|
||||||
void initialize(void) {getCalData();};
|
void initialize(void) {getCalData();};
|
||||||
uint8_t numBytes(void) {return 12;};
|
uint8_t numBytes(void) {return 12;};
|
||||||
};
|
};
|
||||||
|
|
|
@ -50,6 +50,7 @@ class DS18B20 : public AttSensor {
|
||||||
public:
|
public:
|
||||||
DS18B20(uint8_t owpin, uint8_t resbits = 12, bool para = false);
|
DS18B20(uint8_t owpin, uint8_t resbits = 12, bool para = false);
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
|
void calibrate(void) {};
|
||||||
void initialize(void);
|
void initialize(void);
|
||||||
uint8_t numBytes(void);
|
uint8_t numBytes(void);
|
||||||
};
|
};
|
||||||
|
|
|
@ -85,7 +85,7 @@ uint8_t SCD30::getSensorData(char *payload, uint8_t startbyte) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calibrate the Sensor to 400ppm (Outside Level)
|
// Calibrate the Sensor to 400ppm (Outside Level)
|
||||||
void SCD30::calibrate() {
|
void SCD30::calibrate(void) {
|
||||||
sendCmd(SCD30_SET_RECALIB, 400);
|
sendCmd(SCD30_SET_RECALIB, 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,9 +61,10 @@ class SCD30 : public AttSensor {
|
||||||
SCD30();
|
SCD30();
|
||||||
SCD30(uint8_t interval, bool selfcalib);
|
SCD30(uint8_t interval, bool selfcalib);
|
||||||
void initialize(void);
|
void initialize(void);
|
||||||
|
void calibrate(void);
|
||||||
uint8_t numBytes(void) {return 6;};
|
uint8_t numBytes(void) {return 6;};
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
void calibrate();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -43,6 +43,7 @@ class SENSAIRS8 : public AttSensor {
|
||||||
public:
|
public:
|
||||||
SENSAIRS8(void);
|
SENSAIRS8(void);
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
|
void calibrate(void) {};
|
||||||
void initialize(void) {};
|
void initialize(void) {};
|
||||||
uint8_t numBytes(void) {return 2;};
|
uint8_t numBytes(void) {return 2;};
|
||||||
};
|
};
|
||||||
|
|
|
@ -49,6 +49,7 @@ class SG112A : public AttSensor {
|
||||||
public:
|
public:
|
||||||
SG112A(void);
|
SG112A(void);
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
|
void calibrate(void) {};
|
||||||
void initialize(void) {};
|
void initialize(void) {};
|
||||||
uint8_t numBytes(void) {return 2;};
|
uint8_t numBytes(void) {return 2;};
|
||||||
};
|
};
|
||||||
|
|
|
@ -44,6 +44,7 @@ class SHT21 : public AttSensor {
|
||||||
public:
|
public:
|
||||||
SHT21(void);
|
SHT21(void);
|
||||||
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
uint8_t getSensorData(char *payload, uint8_t startbyte);
|
||||||
|
void calibrate(void) {};
|
||||||
void initialize(void) {};
|
void initialize(void) {};
|
||||||
uint8_t numBytes(void) {return 8;};
|
uint8_t numBytes(void) {return 8;};
|
||||||
};
|
};
|
||||||
|
|
|
@ -149,6 +149,7 @@ void onEvent(ev_t ev) {
|
||||||
case EV_JOINED:
|
case EV_JOINED:
|
||||||
// Disable LinkCheck
|
// Disable LinkCheck
|
||||||
LMIC_setLinkCheckMode(0);
|
LMIC_setLinkCheckMode(0);
|
||||||
|
BLINK_LED(2);
|
||||||
WS2812B_BLINK(1,0,127,0,1000);
|
WS2812B_BLINK(1,0,127,0,1000);
|
||||||
DEBUG_PRINTLN("OTAA Join Succeeded");
|
DEBUG_PRINTLN("OTAA Join Succeeded");
|
||||||
break;
|
break;
|
||||||
|
@ -172,7 +173,7 @@ void onEvent(ev_t ev) {
|
||||||
for (uint16_t i = 0; i < sleep_time*2; i++) {
|
for (uint16_t i = 0; i < sleep_time*2; i++) {
|
||||||
// Cancel sleep Cycle if Button was Pressed
|
// Cancel sleep Cycle if Button was Pressed
|
||||||
#ifdef BTN_PIN
|
#ifdef BTN_PIN
|
||||||
if (btn_pressed) {
|
if (btn_pressed && digitalRead(BTN_PIN) == HIGH) {
|
||||||
i = sleep_time*2;
|
i = sleep_time*2;
|
||||||
btn_pressed = 0;
|
btn_pressed = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -370,8 +371,11 @@ void loop()
|
||||||
unsigned long loop_millis = millis();
|
unsigned long loop_millis = millis();
|
||||||
if ((unsigned long)(loop_millis - btn_millis) >= 4000) {
|
if ((unsigned long)(loop_millis - btn_millis) >= 4000) {
|
||||||
WS2812B_SETLED(1,153,0,153);
|
WS2812B_SETLED(1,153,0,153);
|
||||||
|
BLINK_LED(3);
|
||||||
|
delay(1000);
|
||||||
for (uint8_t i=0; i<NUM_SENSORS; i++)
|
for (uint8_t i=0; i<NUM_SENSORS; i++)
|
||||||
sensors[i]->calibrate();
|
sensors[i]->calibrate();
|
||||||
|
BLINK_LED(1);
|
||||||
WS2812B_SETLED(1,0,0,0);
|
WS2812B_SETLED(1,0,0,0);
|
||||||
} else {
|
} else {
|
||||||
delay(500);
|
delay(500);
|
||||||
|
|
Loading…
Reference in a new issue