Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /usr/share/wordpress-www.bakke.online/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
Uncategorized – Page 3 – OppoverBakke

Website accessibility issues

There have been some website availability issues over the last 24 hours due to an issue with DNS records at my hosting provider.

The issue has now been resolved, and the site will be available once the updated DNS records are propagated through the Internet.

I apologise for any 404s users may have received during the outage.

Further reducing power consumption on ESP8266

By carefully rearranging the operations my weather station does each time it wakes up, I have reduced the power consumption even further.

As it wakes up, it needs to make a series of measurements:

  • Read the current battery voltage
  • Read the current temperature from a DHT22
  • Read the current humidity from a DHT22
  • Read the current temperature from a BMP180
  • Read the current air pressure from a BMP180

The battery voltage is read through a resistor voltage divider feeding into the analog input of the ESP8266.  This reading is very sensitive, and a massive power drain from the WiFi function will bring down the measured voltage.  This can be mitigated by using capacitors to buffer the analog readings, but if I have a choice I’d still prefer to have the WiFi function off when reading this.

The rest of the readings, however, are digital and not that sensitive to overall system power drain, and that gives us an opportunity to do things in parallel.

Continue reading “Further reducing power consumption on ESP8266”

Reducing WiFi power consumption on ESP8266, part 3

Welcome to part 3 of this series on reducing WiFi power consumption on ESP8266 chips.

Earlier, I have established the baseline power consumption and shown how to reduce this a bit by disabling the radio when it is not needed.

This time, I’ll take it a step further by showing how to make sure the radio is needed for a shorter period of time.

Continue reading “Reducing WiFi power consumption on ESP8266, part 3”

Reducing WiFi power consumption on ESP8266, part 2

In my previous post I showed the baseline power consumption data for one of my ESP8266-based weather monitors.

The device wakes up from deep sleep, reads some sensors, connects to a WiFi network and transmits the readings over MQTT, it will then go back to sleep for 5 minutes.  One such reporting cycle would consume 0.164 mAh.

This time I’ll show the first steps on the way to reducing this to less than half.

Continue reading “Reducing WiFi power consumption on ESP8266, part 2”

Reducing WiFi power consumption on ESP8266, part 1

The ESP8266 is a brilliant little chip, one I am using for a lot of network connected devices such as weather stations, lighting controllers, environment monitors, etc.

For a lot of these, it is important to be able to run for extended periods on batteries.  Several will be in places where there is no power connections, and I don’t want to run around changing batteries all the time.

After experimenting for a while, I had a weather station which could operate for 3 weeks on 4 AAA batteries.  Not too bad, considering the device had WiFi connectivity and would transmit the current readings back to my server every 5 minutes.  However, it is possible to achieve much better results than this. Continue reading “Reducing WiFi power consumption on ESP8266, part 1”