💬 Battery Powered Sensors
-
@Meshx86
No problem to ask. I use the intern measurement method, which uses the internal 1.1V reference of the atmega328, so even if the Vcc value changes from 3.2V -> 2.6V, the reference will always be 1.1V, and the internal method allows you to calculate the actual measured battery voltage based on a difference with the reference, even with a declining value on Vcc (if powered by the same batteries).@GertSanders sorry mate, am more of a software guy..
according to the lib i've seen and @Yveaux's example for the internal method, at the begining you need to define a corrective value :
const float VccCorrection = 1.0/1.0; // Measured Vcc by multimeter divided by reported Vcc Vcc vcc(VccCorrection);is this necessary for an accurate reading ? and is the corrective value need to be just entered once (like a calibration per arduino) or need to be reconfigured every time you replace a battery ?
-
Good article/site on why Alkaline is the best way to go for Mysensors nodes :)
http://batteryuniversity.com/learn/article/elevating_self_discharge -
@GertSanders sorry mate, am more of a software guy..
according to the lib i've seen and @Yveaux's example for the internal method, at the begining you need to define a corrective value :
const float VccCorrection = 1.0/1.0; // Measured Vcc by multimeter divided by reported Vcc Vcc vcc(VccCorrection);is this necessary for an accurate reading ? and is the corrective value need to be just entered once (like a calibration per arduino) or need to be reconfigured every time you replace a battery ?
@Meshx86
The corrective value is needed every time you change a battery, AND if you need high accuracy.
On my battery based nodes I do not have a need for absolute accuracy, I just need to see the trend of the Vcc value.
Changing the battery happens every 12-24 months (depends on the use), so I'm not very interested in absolute accuracy. If you need real accurate measuring, I would suggest a real Analog-To_Digital chip. -
@Meshx86
The corrective value is needed every time you change a battery, AND if you need high accuracy.
On my battery based nodes I do not have a need for absolute accuracy, I just need to see the trend of the Vcc value.
Changing the battery happens every 12-24 months (depends on the use), so I'm not very interested in absolute accuracy. If you need real accurate measuring, I would suggest a real Analog-To_Digital chip.@GertSanders thanks , i think accuracy isn't a deal breaker, i believe everyone's concern is to just know when the batteries need to be replaced (hopefully that can be done without specifying the voltage correction).
-
@GertSanders thanks , i think accuracy isn't a deal breaker, i believe everyone's concern is to just know when the batteries need to be replaced (hopefully that can be done without specifying the voltage correction).
@Meshx86 ok, being quoted so many times I can also add my 5 cents :smile:
The correction factor is optional. You can use it to improve the measured voltage, as the internal voltage reference is only accurate up to so many percentage (have to look up the number). It is unique to the arduino used.
This factor should however not depend on the batteries, possibly on environmental factors (e.g. Temperature) -
@Meshx86 ok, being quoted so many times I can also add my 5 cents :smile:
The correction factor is optional. You can use it to improve the measured voltage, as the internal voltage reference is only accurate up to so many percentage (have to look up the number). It is unique to the arduino used.
This factor should however not depend on the batteries, possibly on environmental factors (e.g. Temperature)@Yveaux one last, i promise :P
if max battery voltage is actually 3.2v, does that mean that the battery percentage would show 100% for quite sometime before it starts dropping below 3.0v (assuming vmax is set to 3.0) ? or would it increase the inaccuracy gap ?
-
@Yveaux one last, i promise :P
if max battery voltage is actually 3.2v, does that mean that the battery percentage would show 100% for quite sometime before it starts dropping below 3.0v (assuming vmax is set to 3.0) ? or would it increase the inaccuracy gap ?
-
Good article/site on why Alkaline is the best way to go for Mysensors nodes :)
http://batteryuniversity.com/learn/article/elevating_self_discharge@Nicklas-Starkel The article mostly talks about rechargeable batteries. I prefer non rechargeable Lithium batteries (like coin cells) for their energy density and very low self discharge.
My major concern with (cheap) alkaline batteries is their leakage of aggressive chemicals. I had to trash my first nodes because of this :unamused: -
@Nicklas-Starkel The article mostly talks about rechargeable batteries. I prefer non rechargeable Lithium batteries (like coin cells) for their energy density and very low self discharge.
My major concern with (cheap) alkaline batteries is their leakage of aggressive chemicals. I had to trash my first nodes because of this :unamused:@AWI in the first part it states:
"Primary cells such as lithium-metal and alkaline retain the stored energy best, and can be kept in storage for several years."
So you are correct and between Alkaline and Lithium-metal maybe the latter would be best. :)
I have no experience with coin cells and will do some testing with them as soon as I can.
Since this is the battery article, would you please tell me what you use and how you use it. What you expected and if the batteries lived up to your expectations. Would be cool to know as you've had more experience then me (and many like me)! -
@Nicklas-Starkel The article mostly talks about rechargeable batteries. I prefer non rechargeable Lithium batteries (like coin cells) for their energy density and very low self discharge.
My major concern with (cheap) alkaline batteries is their leakage of aggressive chemicals. I had to trash my first nodes because of this :unamused:@AWI I'm agree with you but coin cells have less capacity. The difference of the self discharge between coin cells and alkaline is not important (1% vs 2%), but the capacity and size are.
Here is a link with the Battery self-discharge rates :
http://www.gammon.com.au/power -
@AWI in the first part it states:
"Primary cells such as lithium-metal and alkaline retain the stored energy best, and can be kept in storage for several years."
So you are correct and between Alkaline and Lithium-metal maybe the latter would be best. :)
I have no experience with coin cells and will do some testing with them as soon as I can.
Since this is the battery article, would you please tell me what you use and how you use it. What you expected and if the batteries lived up to your expectations. Would be cool to know as you've had more experience then me (and many like me)!@Nicklas-Starkel I mostly use a 'large' version lithium cell i.e. Cr123. These were used large in compact camera's and have a huge capacity and very little self discharge. My best example is the sensor in the fridge which measure temp and humidity every 10 secs and sends with nrf24l01 (MySensors of course). This one runs for almost two years now and has a stable 3.02V since the second month.
The coin cells need special care a these have a high 'internal resistance'. You need to be careful with designing the sketch so that the load is as short and light as possible.
There are some of my postings on this site which elaborate on the subject. (I'm on a mobile phone right now...)
-
@Nicklas-Starkel I mostly use a 'large' version lithium cell i.e. Cr123. These were used large in compact camera's and have a huge capacity and very little self discharge. My best example is the sensor in the fridge which measure temp and humidity every 10 secs and sends with nrf24l01 (MySensors of course). This one runs for almost two years now and has a stable 3.02V since the second month.
The coin cells need special care a these have a high 'internal resistance'. You need to be careful with designing the sketch so that the load is as short and light as possible.
There are some of my postings on this site which elaborate on the subject. (I'm on a mobile phone right now...)
@AWI OMG there is so many options when you look at it!
I think it all boils down to design (size) or money.
Normal AA roughly 0.3EUR/pc are quite large but OK power but cheap
CR123 roughly 2.5EUR/pc are quite small and OK power but expensive
Coin cell roughly 1EUR/pc and they are the smallest but not packing a good punch while being semi cheap/expensive.Obviously I have to build one node with each and put them in flowerpots around the flat to see in in action :)
And to top it off, I know there is a company in USA that has created a new battery that will double 'Ah' in same size batteries. They should launch this month i think, but think they will go for cellphone makers in the beginning.
-
@AWI OMG there is so many options when you look at it!
I think it all boils down to design (size) or money.
Normal AA roughly 0.3EUR/pc are quite large but OK power but cheap
CR123 roughly 2.5EUR/pc are quite small and OK power but expensive
Coin cell roughly 1EUR/pc and they are the smallest but not packing a good punch while being semi cheap/expensive.Obviously I have to build one node with each and put them in flowerpots around the flat to see in in action :)
And to top it off, I know there is a company in USA that has created a new battery that will double 'Ah' in same size batteries. They should launch this month i think, but think they will go for cellphone makers in the beginning.
I am not getting it...
I have a 3.3V Pro Mini, it is connected to my table power supply and want it to be powered by a coin cell later. To test the VCC lib, I set
const float VccExpected = 3.21;What do I need to put here?
const float VccCorrection = 3.21/3.21;It always returns BatteryPercentage of 2 or 3% seems the function is not calculating right. Anyhow I saw there is another function to call Read_Volts()
float volts = (float)vcc.Read_Volts(); int myPerc = volts *100 / VccExpected;So "myPerc" returns a value of 98% which seems feasible, also when reducing Voltage it drops.
But still, not getting the values with the build in function read_Perc() -
I'm building my home automation with a few Whisper Nodes (https://talk2.wisen.com.au/product-talk2-whisper-node-avr/) and I just got them working with the MySensor code. I'm running most of my projects with two AA but I just setup one with a CR2032 transmitting my attic temperature every 5 minutes to see how it goes. One thing I discovered is that the board comes two "built-in" resistor divider to monitor the battery and power supply voltage, which is pretty handy... also they have added a Mosfet on the battery voltage divider, I guess to eliminate the constant current leak consumed by the voltage divider, am I right?! (https://bitbucket.org/talk2/whisper-node-avr/overview#markdown-header-voltage-monitor)
-
Hi,
I'm sorry what do you mean by "control your resistance value"this is my circuit,
1M resistor to +V rail, 470K resistor to GND and middle point to A0.
,It seems you are missing the capacitors connecting each side of the crystal to ground. Those should be between 15 and 25pf (depends on the crystal), normally ceramic type.
-
Here is a view of a node running exactly 1year. The effect of a bad radio is seen here as the fast voltage drops. I had a very low charged battery to start with, replaced it with new batteries which also discharged fast, and replaced both batteries and the radio. Since mid january 2016 the node has been running as expected. My guess is that this combo will run for 2 years (given how it has been working the past 9 months).
This node measures battery voltage, temperature and humidity and sends 3 messages about every 5 minutes.

And here is the battery measurement of the second node that went "online" the same day (18/sep/2015, with a good radio, and similarly used batteries from the start). This node sends very few messages (at least 1 every 24 hours, and when one of 3 contacts are opened). Most days it just sends 1 message.

So even with batteries already at a low level, you can make useful nodes using the MySensors setup :-)
How are you sending the voltage?
Sensor = S_MULTIMETER and value = V_VOLTAGE in a normal message?
Thx!
-
How are you sending the voltage?
Sensor = S_MULTIMETER and value = V_VOLTAGE in a normal message?
Thx!
@chaeron
Correct :-) -
@chaeron
Correct :-)Thanks! I'll use that approach for all my house sensors, since right now all I send is battery percentage..
...at least until/if they add support for a I_Battery_Voltage internal value. 😈
-
Realy n00b in electronics here but do you need to use those exact values of the resistors when hooking this up?
-
Realy n00b in electronics here but do you need to use those exact values of the resistors when hooking this up?
@meanmrgreen are you reffering to the 470K+1M resistors? (This is a long thread)
If so, they can be any size but the code will need to be adjusted if the ratio between the resistors is changed.Also, less resistance will drain the battery faster.