summaryrefslogtreecommitdiff
path: root/sensor/thermostat.ino
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2018-04-20 15:02:07 +0100
committerdakkar <dakkar@thenautilus.net>2018-04-20 15:02:07 +0100
commit1a1c682a6cc779e420508ea532787f4809a3a306 (patch)
treedf63c01b60a09ce08136e7326f727e34a50f2831 /sensor/thermostat.ino
parentfactor out sleep times (diff)
downloadthermostat-1a1c682a6cc779e420508ea532787f4809a3a306.tar.gz
thermostat-1a1c682a6cc779e420508ea532787f4809a3a306.tar.bz2
thermostat-1a1c682a6cc779e420508ea532787f4809a3a306.zip
turn off sensor while sleeping
Diffstat (limited to 'sensor/thermostat.ino')
-rw-r--r--sensor/thermostat.ino16
1 files changed, 12 insertions, 4 deletions
diff --git a/sensor/thermostat.ino b/sensor/thermostat.ino
index 243c80b..2214ae0 100644
--- a/sensor/thermostat.ino
+++ b/sensor/thermostat.ino
@@ -47,11 +47,17 @@ class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
} // onResult
}; // MyAdvertisedDeviceCallbacks
+void enable_sensor(bool enable) {
+ pinMode(12,OUTPUT);
+ digitalWrite(12,enable ? HIGH : LOW);
+ delay(500);
+}
+
bool read_sensor(float* humidity, float* temperature) {
dht.setup(13,DHTesp::DHT11);
- int tries=0;
- while (++tries<10) {
+ int tries=0;bool ret=false;
+ while (!ret && ++tries<10) {
delay(dht.getMinimumSamplingPeriod());
*humidity = dht.getHumidity();
*temperature = dht.getTemperature();
@@ -64,9 +70,9 @@ bool read_sensor(float* humidity, float* temperature) {
data += dht.getStatusString();
show(data);
- if (dht.getStatus() != DHTesp::ERROR_TIMEOUT) return true;
+ if (dht.getStatus() != DHTesp::ERROR_TIMEOUT) ret = true;
}
- return false;
+ return ret;
}
uint32_t send_data_and_get_time(BLEAddress* pAddress,String* data) {
@@ -121,6 +127,7 @@ void setup() {
void loop() {
display.displayOn();
display.clear();
+ enable_sensor(true);
BLEScan* pBLEScan = BLEDevice::getScan();
MyAdvertisedDeviceCallbacks* cb = new MyAdvertisedDeviceCallbacks();
@@ -153,6 +160,7 @@ void loop() {
String nt = "Next time:";nt+=next_time;
display.drawString(0,20,nt);display.display();
+ enable_sensor(false);
delay(2000);
esp_sleep_enable_timer_wakeup(next_time * uS_TO_S_FACTOR);
esp_deep_sleep_start();