From 1a1c682a6cc779e420508ea532787f4809a3a306 Mon Sep 17 00:00:00 2001 From: dakkar Date: Fri, 20 Apr 2018 15:02:07 +0100 Subject: turn off sensor while sleeping --- sensor/thermostat.ino | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'sensor/thermostat.ino') 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(); -- cgit v1.2.3