Power consumption
Moderators: grovkillen, Stuntteam, TD-er
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Power consumption
Hello all,
i have an ESP8266 with 2x DS18b20 temp sensors running.
At the moment i get every minute new data.
Problem is, the device is running on battery and my solarpanel does not charge enough on cloudy days.
So i search for a solution to get the power consumption down.
it would be fine to get every 2 or even every 5 minutes datas from the DS18b20.
Is there a way to put the device in sleep, automaticly wake up every 5 minutes, connect to AP and send data ?
Thank you so much for help
have a great day
Sascha
i have an ESP8266 with 2x DS18b20 temp sensors running.
At the moment i get every minute new data.
Problem is, the device is running on battery and my solarpanel does not charge enough on cloudy days.
So i search for a solution to get the power consumption down.
it would be fine to get every 2 or even every 5 minutes datas from the DS18b20.
Is there a way to put the device in sleep, automaticly wake up every 5 minutes, connect to AP and send data ?
Thank you so much for help
have a great day
Sascha
"the flat earth society has members all around the globe"
Re: Power consumption
There is a sleep mode possible.
For this you need to connect GPIO-16 with the RST pin on the ESP to make it able to wake itself.
This also means you cannot use GPIO16 for anything else. (or else the unit will reset)
You can set the sleep period in the advanced settings.
For this you need to connect GPIO-16 with the RST pin on the ESP to make it able to wake itself.
This also means you cannot use GPIO16 for anything else. (or else the unit will reset)
You can set the sleep period in the advanced settings.
- dynamicdave
- Normal user
- Posts: 258
- Joined: 30 Jan 2017, 20:25
- Location: Hampshire, UK
Re: Power consumption
Hi,
I'm working with one of my IoT students on a similar project.
Here's a link...
https://discourse.nodered.org/t/solar-p ... tion/12499
Do you really need to report the readings that often???
As an experiment, we've been doing it every 15-mins for over a week running off of the solar-panel.
Today we changed the frequency to every 10-mins, so it will be interesting to see if the solar-panel and the Li-Ion battery manage this time.
I'm working with one of my IoT students on a similar project.
Here's a link...
https://discourse.nodered.org/t/solar-p ... tion/12499
Do you really need to report the readings that often???
As an experiment, we've been doing it every 15-mins for over a week running off of the solar-panel.
Today we changed the frequency to every 10-mins, so it will be interesting to see if the solar-panel and the Li-Ion battery manage this time.
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Re: Power consumption
thank you, it works perfect !!!
But settings was at "Config" tab i assume.
in Advanced was another option called "CPU Eco Mode"
Would that help also additional to sleep settings ?
Sascha
But settings was at "Config" tab i assume.
in Advanced was another option called "CPU Eco Mode"
Would that help also additional to sleep settings ?
Sascha
"the flat earth society has members all around the globe"
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Re: Power consumption
@ dynamicdave:
yes, your right, i will match the data period to my solarpanel
at the moment i did settings 300s sleep and 20s awake time.
i choose 20s awake time so i have a chance to reach the cotroller every 5 minutes and do some changes to the settings
How do you reach the controller to change settings ?
is there another trick ?
Sascha
yes, your right, i will match the data period to my solarpanel
at the moment i did settings 300s sleep and 20s awake time.
i choose 20s awake time so i have a chance to reach the cotroller every 5 minutes and do some changes to the settings
How do you reach the controller to change settings ?
is there another trick ?
Sascha
"the flat earth society has members all around the globe"
- dynamicdave
- Normal user
- Posts: 258
- Joined: 30 Jan 2017, 20:25
- Location: Hampshire, UK
Re: Power consumption
We used a set of rules that get triggered when the Wemos comes out of deepsleep.
Take a few readings, publish them via MQTT to Node-RED, then go back to sleep by using the sleep command set to 900 (seconds).
If you are interested, I'll be at the school tomorrow and can get the student to copy his 'rule-sets' to a text-file.
Take a few readings, publish them via MQTT to Node-RED, then go back to sleep by using the sleep command set to 900 (seconds).
If you are interested, I'll be at the school tomorrow and can get the student to copy his 'rule-sets' to a text-file.
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Re: Power consumption
that would be awesome !
also nice info would be:
- size of solarmodul
- how much watts you get out of the panel
- typ of battery
- how much mAh the battery has
thank you
also nice info would be:
- size of solarmodul
- how much watts you get out of the panel
- typ of battery
- how much mAh the battery has
thank you
"the flat earth society has members all around the globe"
- dynamicdave
- Normal user
- Posts: 258
- Joined: 30 Jan 2017, 20:25
- Location: Hampshire, UK
Re: Power consumption
Physical size of solar panel is 95mm by 95mm.
It's a 5V, 1 watt panel that we bought from Banggood in China.
The battery is a Li-Ion rated at 3.7V, 2500mAh (again from Banggood).
Couple of things to point out about our set-up...
We configured switches on D5 and D6 and an output on D7.
D5 defines whether to publish the sensor readings to ThingSpeak or not.
If D5 = 1, publish, if D5 = 0, don't publish
The system always publishes to Node-RED via MQTT, but can optionally also publish to ThingSpeak.
D6 defines whether the Wemos or Node-RED controls the deepsleep action.
If D6 = 1, Wemos invokes deepsleep, if D6 = 0, Node-RED controls it.
This is really useful as Node-RED can send an 'event command' to the Wemos to prevent it going back into 'deepsleep' when it wakes up.
We use it to enable us to log-in to the Wemos and make adjustments, then put it back to sleep.
D7 (output) drives the base of a Bipolar Junction Transisitor which in turn operates a MosFET.
This arrangement is used to turn the power (+3v3) on/off to the auxilary devices (in our case a BME280 which reads temp, humidity and pressure).
This is Rule-Set-1
This is Rule-Set-2
Here's a screenshot of the 'Devices' tab inside the Wemos.
At the moment we are using an ADS1115 (analog switch) to monitor and report the voltage of the solar panel, the voltage of the battery and the value of the +3V3 rail/pin.
We are also using a MQTT broker on the cloud (beebotte.com) as the student and I wanted to be able to monitor the readings at the weather station from home.
'SampleThenSleep' and 'doNotSleep' are event-commands sent from Node-RED to manipulate the operational mode of the Wemos.
Hope you can 'hack' the above around to suit your needs.
Let me know if you need any further information.
Regards, David.
It's a 5V, 1 watt panel that we bought from Banggood in China.
The battery is a Li-Ion rated at 3.7V, 2500mAh (again from Banggood).
Couple of things to point out about our set-up...
We configured switches on D5 and D6 and an output on D7.
D5 defines whether to publish the sensor readings to ThingSpeak or not.
If D5 = 1, publish, if D5 = 0, don't publish
The system always publishes to Node-RED via MQTT, but can optionally also publish to ThingSpeak.
D6 defines whether the Wemos or Node-RED controls the deepsleep action.
If D6 = 1, Wemos invokes deepsleep, if D6 = 0, Node-RED controls it.
This is really useful as Node-RED can send an 'event command' to the Wemos to prevent it going back into 'deepsleep' when it wakes up.
We use it to enable us to log-in to the Wemos and make adjustments, then put it back to sleep.
D7 (output) drives the base of a Bipolar Junction Transisitor which in turn operates a MosFET.
This arrangement is used to turn the power (+3v3) on/off to the auxilary devices (in our case a BME280 which reads temp, humidity and pressure).
This is Rule-Set-1
Code: Select all
// Link D0 and RST for wake-up at the end of DeepSleep
//
// D5 is used to select whether to publish to ThingSpeak or not
// D5=1 (pulled-hi) Do-not publish to ThingSpeak
// D5=0 (grounded) Do publish to ThingSpeak
//
// D6 is used as an input to sense the operating mode
// D6=1 (pulled-hi) Wemos invokes DeepSleep
// D6=0 (grounded) Node-RED invokes DeepSleep
//
// D7 connects to the base of a BJT
// which in turn connects to the gate of a P-channel MOSFET to power the AUX devices
// Logic '0' turns BJT 'off'
// Logic '1' turns BJT 'on'
on MQTT#Connected do
TaskValueSet,1,3,0 //Set wemos#donotsleep=0
TaskValueSet,1,2,600 //Set wemos#fixedsleeptime to 15 minutes
gpio,13,1 //Set D7 to logic '1' to turn BJT 'on'
timerSet,1,6 //Delay for 6 secs to allow AUX devices to become active
//and take a couple of readings
endon
on Rules#Timer=1 do
event publishReadings //Rule Set 2
timerSet,2,3 // Allow 3 sec for Node-RED to send 'event,doNotSleep=1'
endon
on Rules#Timer=2 do
if [switch_d6#sw_d6]=1 and [wemos#donotsleep]=0
gpio,13,0 //Set D7 to logic '0' to turn BJT 'off'
timerSet,3,1 //1 second delay then go in to DeepSleep
endif
endon
on Rules#Timer=3 do
deepsleep,[wemos#fixedsleeptime]
endon
on Rules#Timer=4 do
deepsleep,[wemos#sleeptime]
endon
on SampleThenSleep do
TaskValueSet,1,1,%eventvalue1% //Set wemos#sleeptime from %eventvalue1%
event publishReadings //Rule Set 2
if [wemos#sleeptime]>0
timerSet,4,3 //Delay for 1sec then go in to DeepSleep
endif
endon
on doNotSleep do
TaskValueSet,1,3,%eventvalue1% //Set wemos#donotsleep from %eventvalue1%
endon
Code: Select all
on publishReadings do
publish weatherStation/reading,{"node_type":"wemos_D1_min","ssid":"%ssid%","ip_address":"%ip%","wifi_strength":[sysinfo#strength],"solar_panel":[analog_3#a3],"lion_battery":[analog_2#a2],"supply_to_wemos":[analog_1#a1],"wemos_3v3_supply":[analog_0#a0],"temperature":[bme280#temperature],"humidity":[bme280#humidity],"pressure":[bme280#pressure]}
if [switch_d5#sw_d5]=1
SendToHTTP api.thingspeak.com,80,/update?api_key=<your_API_key_goes_here>&field1=[bme280#temperature]&field2=[bme280#humidity]&field3=[bme280#pressure]
SendToHTTP api.thingspeak.com,80,/update?api_key=<your_API_key_goes_here>&field1=[analog_3#a3]&field2=[analog_2#a2]&field3=[analog_1#a1]&field4=[analog_0#a0]
endif
endon
At the moment we are using an ADS1115 (analog switch) to monitor and report the voltage of the solar panel, the voltage of the battery and the value of the +3V3 rail/pin.
We are also using a MQTT broker on the cloud (beebotte.com) as the student and I wanted to be able to monitor the readings at the weather station from home.
'SampleThenSleep' and 'doNotSleep' are event-commands sent from Node-RED to manipulate the operational mode of the Wemos.
Hope you can 'hack' the above around to suit your needs.
Let me know if you need any further information.
Regards, David.
Last edited by dynamicdave on 14 Jul 2019, 20:38, edited 1 time in total.
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Re: Power consumption
WOW !!!
this is so helpful !!!
Thank you for sharing
is your panel maybe this one ?
https://www.amazon.de/gp/product/B072LX ... UTF8&psc=1
i was thinking about an resistor divider to messure battery voltage by using the analog input.
So i could monitor the battery aswell.
May i ask you about the different between deepsleep and "online, sending data" for power consumption in mA ?
that would be very intresting for me. So i could do a little math with my battery here.
And sorry about my "creative" way of english typing
Greetings from good old germany
Sascha
this is so helpful !!!
Thank you for sharing
is your panel maybe this one ?
https://www.amazon.de/gp/product/B072LX ... UTF8&psc=1
i was thinking about an resistor divider to messure battery voltage by using the analog input.
So i could monitor the battery aswell.
May i ask you about the different between deepsleep and "online, sending data" for power consumption in mA ?
that would be very intresting for me. So i could do a little math with my battery here.
And sorry about my "creative" way of english typing
Greetings from good old germany
Sascha
"the flat earth society has members all around the globe"
- dynamicdave
- Normal user
- Posts: 258
- Joined: 30 Jan 2017, 20:25
- Location: Hampshire, UK
Re: Power consumption
This is the one I bought from Banggood in China.
Took a couple of weeks delivery, but worth the wait.
https://www.banggood.com/5_5V-1W-180mA- ... rehouse=CN
I used a resistor divider network consisting of two 10K ohms resistors in series.
The mid-point tap goes to an input on the ADS115
Took a couple of weeks delivery, but worth the wait.
https://www.banggood.com/5_5V-1W-180mA- ... rehouse=CN
I used a resistor divider network consisting of two 10K ohms resistors in series.
The mid-point tap goes to an input on the ADS115
Re: Power consumption
Based on this post of ligeza I did some rough research on optimizing power consumption of a wemos D1 and posted the details of modifications and results here.
After these modifications using just one 2800 mAh Liion battery gives a battery cycle of up to 70-90 days publishing the data of a BMP280 every 300 sec.
Using a 6V 1W solar panel attached to a TP4056 and one 2800 mAh Liion battery will result in an endless runtime of the installation, I suspect at least limited only by the lifetime of the battery.
To make the battery easily changeable I have put the TP4056 together with the battery into this housing, connected with these plugs directly to the Wemos.
After these modifications using just one 2800 mAh Liion battery gives a battery cycle of up to 70-90 days publishing the data of a BMP280 every 300 sec.
Using a 6V 1W solar panel attached to a TP4056 and one 2800 mAh Liion battery will result in an endless runtime of the installation, I suspect at least limited only by the lifetime of the battery.
To make the battery easily changeable I have put the TP4056 together with the battery into this housing, connected with these plugs directly to the Wemos.
Code: Select all
pi@raspberrypi:~ $ man woman
No manual entry for woman
pi@raspberrypi:~ $
Re: Power consumption
Things you can do to increase battery life:
- Select "ECO mode" in the advanced settings
- Set a low enough "awake time" to prevent endless reconnect attempts in bad conditions
- Disable any existing USB-serial adapter (also mentioned in the link posted by dynamicdave)
- Use a FET with low quiescent current to switch on any sensor (does take an extra GPIO pin from the ESP to trigger the FET)
- Use a larger resistor in series with the onboard 100k resistor for measuring voltage. This will decrease resolution of the measured voltage but will lower the stand-by current.
- Use static IP address (DHCP may need 3 - 5 seconds)
- Switch to B/G network (is just a hunch, should be tested)
- Make sure controller settings do not have to wait for a confirmation
- Set the unit to go to sleep from the rules as soon as possible
Things I still need to do:
- Allow to switch on/off WiFi in rules
- Store last used WiFi channel + BSSID in RTC memory to speed up WiFi reconnect after deep sleep (can reduce connect time from 2.5 - 3 seconds now to 100 - 200 msec in optimal scenario)
- Allow to disable RF calibration at start of WiFi. (does take a huge peak current and is only needed when conditions have changed (temp/voltage))
When setting WiFi state from rules, you can also do stuff like check battery at boot and go to sleep if it is too low, to prevent destroying the battery.
It also allows to take a number of samples and send them in a single run. (storing data in the RTC memory)
This last part is part of the new features I am working on for the "cache controller". That one stores data in RTC memory and as soon as that's full it does save to flash.
The idea is that it could be sent later when there is a network connection.
- Select "ECO mode" in the advanced settings
- Set a low enough "awake time" to prevent endless reconnect attempts in bad conditions
- Disable any existing USB-serial adapter (also mentioned in the link posted by dynamicdave)
- Use a FET with low quiescent current to switch on any sensor (does take an extra GPIO pin from the ESP to trigger the FET)
- Use a larger resistor in series with the onboard 100k resistor for measuring voltage. This will decrease resolution of the measured voltage but will lower the stand-by current.
- Use static IP address (DHCP may need 3 - 5 seconds)
- Switch to B/G network (is just a hunch, should be tested)
- Make sure controller settings do not have to wait for a confirmation
- Set the unit to go to sleep from the rules as soon as possible
Things I still need to do:
- Allow to switch on/off WiFi in rules
- Store last used WiFi channel + BSSID in RTC memory to speed up WiFi reconnect after deep sleep (can reduce connect time from 2.5 - 3 seconds now to 100 - 200 msec in optimal scenario)
- Allow to disable RF calibration at start of WiFi. (does take a huge peak current and is only needed when conditions have changed (temp/voltage))
When setting WiFi state from rules, you can also do stuff like check battery at boot and go to sleep if it is too low, to prevent destroying the battery.
It also allows to take a number of samples and send them in a single run. (storing data in the RTC memory)
This last part is part of the new features I am working on for the "cache controller". That one stores data in RTC memory and as soon as that's full it does save to flash.
The idea is that it could be sent later when there is a network connection.
- Sasch600xt
- Normal user
- Posts: 164
- Joined: 10 Sep 2018, 16:37
Re: Power consumption
sounds great !!!
Thank you for the sneak preview
have a great day
Sascha
Thank you for the sneak preview
have a great day
Sascha
"the flat earth society has members all around the globe"
Re: Power consumption
Disconnecting the USB-serial adapter is one of the most effective way to save energy - lowering the quiescent current of the board from somewhat 5mA down to few µA. Tipp: just unsolder carefully the GND pin of the adapter, leave the rest untouched. So you will be able to reanimate the adapter lateron if needed.
(Btw.: the link wasn't dynamicdave but Wiki )
Switching the power source of the sensors is the other effective point, in most cases a simple BC337 works perfectly. More simplicity: i.e. a single BMP280 sensor could be driven directly by using a free GPIO pin as power source - pull down resistor required.
@TD-er: I don't agree that setting the device to Eco mode will have a positive effect. If I understood right (please correct me, if I am wrong), it will take place after 10 secs. of cpu idle. If you can't lower the awake time under 10 secs in your project I assume that you need some kind of communication beside of publishing some data and in eco mode there is a theoretical risk of missing some requests/infos from the outer world....
Code: Select all
pi@raspberrypi:~ $ man woman
No manual entry for woman
pi@raspberrypi:~ $
Re: Power consumption
I agree with your last statement.
If the node is using deep sleep, it will not be the best choice to use eco mode.
If the unit is idle running for most of the time, the ECO mode may help reducing power.
If the node is using deep sleep, it will not be the best choice to use eco mode.
If the unit is idle running for most of the time, the ECO mode may help reducing power.
Re: Power consumption
Something I'm trying to understand is, would a solar powered phone charger do the job here? I'm looking to do the same thing (create a weather logger) and thought that using one of these water proof solar powered phone chargers would be a great way to go.
Let's take this one for an example.
https://www.amazon.com/dp/B078RQH9WK/re ... mDbMN8GBBJ
It is waterproof, will recharge the battery from the sun and has 20000mAh. Wouldn't this just be a simplest and best option? That's a whole lot of power and should keep a Wemos D1 Mini going for quite some time all by itself correct? So if you toss in the solar charging feature wouldn't this be perfect?
Since I'm not to advanced in this hobby yet I'm looking for easy solutions to help make my IoT projects work. Can I please get some feedback on why this might not be a good option for both me and the original poster's needs?
Thank you very much!
Let's take this one for an example.
https://www.amazon.com/dp/B078RQH9WK/re ... mDbMN8GBBJ
It is waterproof, will recharge the battery from the sun and has 20000mAh. Wouldn't this just be a simplest and best option? That's a whole lot of power and should keep a Wemos D1 Mini going for quite some time all by itself correct? So if you toss in the solar charging feature wouldn't this be perfect?
Since I'm not to advanced in this hobby yet I'm looking for easy solutions to help make my IoT projects work. Can I please get some feedback on why this might not be a good option for both me and the original poster's needs?
Thank you very much!
Re: Power consumption
More affordable option is to build that charger device for cheap from parts like :
https://www.ebay.com/itm/6V-2W-0-35A-80 ... 2749.l2649
https://www.ebay.com/itm/10PCS-TP4056-M ... Swo4pYQR2U
Couple of Li-Ion batteries.
Thanks
https://www.ebay.com/itm/6V-2W-0-35A-80 ... 2749.l2649
https://www.ebay.com/itm/10PCS-TP4056-M ... Swo4pYQR2U
Couple of Li-Ion batteries.
Thanks
Re: Power consumption
I don't know if those power bank things have proper discharge protection.
Some of these only detect "activity" above a minimal current.
Meaning it may deplete the cells via very low discharge currents.
Some of these only detect "activity" above a minimal current.
Meaning it may deplete the cells via very low discharge currents.
Re: Power consumption
I hear ya, but to keep things simple and not have to also create the waterproof case for everything I'm cool with spending the extra money and get the project done. Still, if it just won't work that is a completely different storyhappytm wrote: ↑19 Jul 2019, 18:23 More affordable option is to build that charger device for cheap from parts like :
https://www.ebay.com/itm/6V-2W-0-35A-80 ... 2749.l2649
https://www.ebay.com/itm/10PCS-TP4056-M ... Swo4pYQR2U
Couple of Li-Ion batteries.
Thanks
Re: Power consumption
That is a very valid concern. I do have some chargers at home that actually will not even power the Wemos D1 Mini because when plugged in the current is so low that the charger does not detect it and will not supply power. I guess that's something else to take into consideration.
Re: Power consumption
Very informative video about the subject is linked below:
https://www.youtube.com/watch?v=joAkJ9QA2bw
Thanks
https://www.youtube.com/watch?v=joAkJ9QA2bw
Thanks
Re: Power consumption
In above video he have solution which is cheap and you need to change only 1 resistor. ESP32 lasts 30 hours without sun according to his calculation.ESP8266 would last probably the same time or little more. As he explained many battery bank do not allow charging/discharging at the same time so they are useless for solar application.
Thanks
Thanks
Re: Power consumption
Thank you for that video link. I'm a big fan of his content and that video was very helpful! It might just be the best bet to go.
Re: Power consumption
This video just came out and it shows perfect device if source is supplied with solar panel:
https://www.youtube.com/watch?v=sXZJhWpGHYU
https://www.ebay.com/itm/60000lm-LED-He ... 723a9c9db7
Thanks
https://www.youtube.com/watch?v=sXZJhWpGHYU
https://www.ebay.com/itm/60000lm-LED-He ... 723a9c9db7
Thanks
Re: Power consumption
Thank you
I tried the link to the details but I don't think it's working?
I tried the link to the details but I don't think it's working?
Re: Power consumption
Just scroll up to my original post #11 and use the original link. Don't know what irfanaslam did to change the original link....
Code: Select all
pi@raspberrypi:~ $ man woman
No manual entry for woman
pi@raspberrypi:~ $
Re: Power consumption
No problem at all. End of january I reduced the awake time from ten to five seconds. Up to now I never had to climb up to recharge the battery. Have a look at the voltage readings:
Code: Select all
pi@raspberrypi:~ $ man woman
No manual entry for woman
pi@raspberrypi:~ $
Re: Power consumption
@wiki
What size and power has your solar module?
Apart from the less hours of sunlight in winter, there is also a temperature issue that will lower the battery voltage. This is the voltage of my car battery during the day and night and the temperature difference is clearly attributing to the measured voltage.
On the 13th the recorded min and max. temp differ 15 degree C.
N.B. the spikes is something I'm also working on and is related to the effect of WiFi on the ADC of the ESP.
What size and power has your solar module?
Apart from the less hours of sunlight in winter, there is also a temperature issue that will lower the battery voltage. This is the voltage of my car battery during the day and night and the temperature difference is clearly attributing to the measured voltage.
On the 13th the recorded min and max. temp differ 15 degree C.
N.B. the spikes is something I'm also working on and is related to the effect of WiFi on the ADC of the ESP.
Re: Power consumption
Code: Select all
pi@raspberrypi:~ $ man woman
No manual entry for woman
pi@raspberrypi:~ $
- LisaHamiltonEu
- New user
- Posts: 2
- Joined: 14 Jul 2020, 11:58
Re: Power consumption
Great thread, thank you for sharing useful ideas!
Who is online
Users browsing this forum: No registered users and 2 guests