move turn on/off logic inside sensor
This commit is contained in:
parent
1beeb485c9
commit
bb638a8d70
@ -42,4 +42,15 @@ public:
|
|||||||
delay(100);
|
delay(100);
|
||||||
sendHumidity(values.humidity);
|
sendHumidity(values.humidity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void turnOnSensor() override {
|
||||||
|
pinMode(DHT_PIN, INPUT_PULLUP);
|
||||||
|
digitalWrite(TEMP_POSITIVE, HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void turnOffSensor() override {
|
||||||
|
digitalWrite(TEMP_POSITIVE, LOW);
|
||||||
|
pinMode(DHT_PIN, OUTPUT);
|
||||||
|
digitalWrite(DHT_PIN, LOW);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -11,4 +11,6 @@ public:
|
|||||||
virtual void setup() = 0;
|
virtual void setup() = 0;
|
||||||
virtual bool readTemp() = 0;
|
virtual bool readTemp() = 0;
|
||||||
virtual void sendValues(bool voltage = false) = 0;
|
virtual void sendValues(bool voltage = false) = 0;
|
||||||
|
virtual void turnOnSensor() {}
|
||||||
|
virtual void turnOffSensor() {}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -8,11 +8,7 @@
|
|||||||
// Pins
|
// Pins
|
||||||
#define SENDER PIN_B2
|
#define SENDER PIN_B2
|
||||||
|
|
||||||
DhtValues readTemp();
|
TempSensor& tempSensor = *(new Dht22Sensor(TEMP_SENSOR));
|
||||||
void turnOnDht();
|
|
||||||
void turnOffDht();
|
|
||||||
|
|
||||||
TempSensor &tempSensor = *(new Dht22Sensor(TEMP_SENSOR));
|
|
||||||
|
|
||||||
volatile int counter = 0;
|
volatile int counter = 0;
|
||||||
|
|
||||||
@ -38,10 +34,10 @@ void loop() {
|
|||||||
tempSensor.sendValues();
|
tempSensor.sendValues();
|
||||||
}
|
}
|
||||||
|
|
||||||
turnOffDht();
|
tempSensor.turnOffSensor();
|
||||||
}
|
}
|
||||||
if (retry && !success) {
|
if (retry && !success) {
|
||||||
turnOffDht();
|
tempSensor.turnOffSensor();
|
||||||
}
|
}
|
||||||
retry = !retry && !success;
|
retry = !retry && !success;
|
||||||
}
|
}
|
||||||
@ -51,17 +47,6 @@ void loop() {
|
|||||||
ISR(WDT_vect) {
|
ISR(WDT_vect) {
|
||||||
counter++;
|
counter++;
|
||||||
if (((counter + 1) % SEND_INTERVAL == 0) || ((counter + 1) % SEND_VCC_INTERVAL == 0)) {
|
if (((counter + 1) % SEND_INTERVAL == 0) || ((counter + 1) % SEND_VCC_INTERVAL == 0)) {
|
||||||
turnOnDht();
|
tempSensor.turnOnSensor();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void turnOnDht() {
|
|
||||||
pinMode(DHT_PIN, INPUT_PULLUP);
|
|
||||||
digitalWrite(TEMP_POSITIVE, HIGH);
|
|
||||||
}
|
|
||||||
|
|
||||||
void turnOffDht() {
|
|
||||||
digitalWrite(TEMP_POSITIVE, LOW);
|
|
||||||
pinMode(DHT_PIN, OUTPUT);
|
|
||||||
digitalWrite(DHT_PIN, LOW);
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user