Author Topic: Arduino solar power help  (Read 1938 times)

0 Members and 1 Guest are viewing this topic.

Offline brych34Topic starter

  • Contributor
  • Posts: 15
  • Country: wales
Arduino solar power help
« on: April 22, 2020, 12:55:21 pm »
Good afternoon. I hope this is the right place to post this.

I'm working on a solar air quality monitoring project for my organisation. I'm using an Arduino Pro Mini connected to three sensors. I have measured its power consumption and it uses around 81 mA turned off and 150mA turned on. It turns on for around 30 seconds every 15 minutes. The reason the power consumption is so high is because two of the sensors contain heaters that must be kept on constantly or the data is highly inaccurate. I have reduced the power consumption using the LowPower library and by turning the third sensor off with a MOSFET.

I have a 12 - 22V solar panel. My original plan was to use a CN3791 and a 2600 mAh Li-ion battery to power the project. However, the CN3791 had to be modified so that it would work in the dimmer winter conditions. When I placed it outside in the bright sun the chip fried as a result and the battery short-circuited and they are now both broken.  :palm:

I need help to decide how to move forward. I need a battery technology that can power the system at around 3 to 4v. I also need a solar charger for the battery that can function with the comparatively high voltage panel and work in both bright summer and dimmer winter conditions. My budget is around £15 (€17 or US$18). Help!

Thank you very much!  :)
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13004
Re: Arduino solar power help
« Reply #1 on: April 22, 2020, 01:19:25 pm »
How long do the sensors actually take to stabilise after powering their heaters? 

You are screwed if you cant turn off the sensor heaters most of the time, as your $18 USD budget is far too small, by at least an order of magnitude.   

Even with an efficient switched mode converter from the battery voltage to 5V for the Arduino and sensors, it will need approx 0.46W on average, all the time, which would need at least a 3000mAH LiPO cell to run it for 24 hours.  Assuming desert summer conditions, a 36W solar panel would probably be just sufficient to keep the battery charged, however, due to the uncertain insolation during the winter you'll need a far larger capacity battery so it can survive several days of total overcast winter storms, a *LARGE* panel, (I estimate somewhere around 360W) and an intelligent MPPT solar LiPO charger to get the best out of the panel during winter conditions without cooking the battery in the summer.   Specs like that don't come cheap.
« Last Edit: April 22, 2020, 01:24:54 pm by Ian.M »
 
The following users thanked this post: brych34

Offline Marco

  • Super Contributor
  • ***
  • Posts: 6857
  • Country: nl
Re: Arduino solar power help
« Reply #2 on: April 22, 2020, 01:27:52 pm »
How about putting the the sensors in a well insulated box with two small diameter holes, use a membrane pump to start pumping fresh air in before measuring.

I doubt the sensors require much volume of air around them to be accurate, keep it as small as possible.
« Last Edit: April 22, 2020, 01:30:21 pm by Marco »
 
The following users thanked this post: brych34

Offline brych34Topic starter

  • Contributor
  • Posts: 15
  • Country: wales
Re: Arduino solar power help
« Reply #3 on: April 22, 2020, 05:57:02 pm »
How long do the sensors actually take to stabilise after powering their heaters? 

You are screwed if you cant turn off the sensor heaters most of the time, as your $18 USD budget is far too small, by at least an order of magnitude.   

Even with an efficient switched mode converter from the battery voltage to 5V for the Arduino and sensors, it will need approx 0.46W on average, all the time, which would need at least a 3000mAH LiPO cell to run it for 24 hours.  Assuming desert summer conditions, a 36W solar panel would probably be just sufficient to keep the battery charged, however, due to the uncertain insolation during the winter you'll need a far larger capacity battery so it can survive several days of total overcast winter storms, a *LARGE* panel, (I estimate somewhere around 360W) and an intelligent MPPT solar LiPO charger to get the best out of the panel during winter conditions without cooking the battery in the summer.   Specs like that don't come cheap.


The sensors take 15 minutes to heat up and I have to send measurements every 15 minutes. I could send readings less often and have the sensors off some of the time, although that is not ideal.

I am a little confused because according to the Solar Irradiance calculator a solar panel facing South at a 23° vertical angle can harvest 1.05 kWh/m2 per day in December, the worst month. My panel has an area of 0.08 m2, so should be able to harvest 1.05 * 0.08 = 0.084kWh = 84Wh per day. We then multiply that by 0.15 because solar panels are inefficient to get 12.6Wh.

The system consumes around 90mA on average at 4v (The arduino Pro Mini runs on 3.3v so there is no need for a regulator), which equates to 0.09 * 4 = 0.36W. Multiplying this by 24 hours gives me 0.36 * 24 = 8.64Wh. This is considerably less than 12.6Wh, which suggests that I have misunderstood something. Do you know what my error is?

Thank you for the help - I'm completely out of my depth here.
« Last Edit: April 22, 2020, 06:05:06 pm by brych34 »
 

Offline brych34Topic starter

  • Contributor
  • Posts: 15
  • Country: wales
Re: Arduino solar power help
« Reply #4 on: April 22, 2020, 06:00:47 pm »
How about putting the the sensors in a well insulated box with two small diameter holes, use a membrane pump to start pumping fresh air in before measuring.

I doubt the sensors require much volume of air around them to be accurate, keep it as small as possible.

Unfortunately the issue is not the volume of air it's the fact that the sensors must reach a certain temperature before accurate results start coming through. Thanks for the suggestion though!
 

Offline richard.cs

  • Super Contributor
  • ***
  • Posts: 1195
  • Country: gb
  • Electronics engineer from Southampton, UK.
    • Random stuff I've built (mostly non-electronic and fairly dated).
Re: Arduino solar power help
« Reply #5 on: April 22, 2020, 06:40:41 pm »
I am a little confused because according to the Solar Irradiance calculator a solar panel facing South at a 23° vertical angle can harvest 1.05 kWh/m2 per day in December, the worst month. My panel has an area of 0.08 m2, so should be able to harvest 1.05 * 0.08 = 0.084kWh = 84Wh per day. We then multiply that by 0.15 because solar panels are inefficient to get 12.6Wh.

The system consumes around 90mA on average at 4v (The arduino Pro Mini runs on 3.3v so there is no need for a regulator), which equates to 0.09 * 4 = 0.36W. Multiplying this by 24 hours gives me 0.36 * 24 = 8.64Wh. This is considerably less than 12.6Wh, which suggests that I have misunderstood something. Do you know what my error is?

So you are using a solar panel with a nominal peak power rating of 12 Watts? That's what 0.08 M^2 and 15% would imply, 80 W falling on the panel and 0.15*80 generate. Note that as panels are near-universally specified at 1 kW/m^2 you can simply multiply panel kW but the calculated kWh/m^2/day to get kWh/day without needing to include panel area and efficiency. i.e. for a 12 W panel you just go 1.05*0.012=12.6 Wh.

You will need a maximum power point tracker to dynamically match the the panel output to the battery according to illumination and in most parts of the world enough battery capacity to last 3-7 days of cloud, but overall I would agree with your calculations. Just note that these are for your specific location and assume perfect panel placement. Due South at the optimal winter angle and no shade at any time of day from any nearby trees, buildings, etc. in winter with the sun low above the horizon. That may be difficult to achieve in practice.
 
The following users thanked this post: brych34

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 13004
Re: Arduino solar power help
« Reply #6 on: April 22, 2020, 07:01:35 pm »
I was assuming a 90% efficiency switching regulator to boost the battery voltage (taken as average 3.6V) to 5V for the Arduino.  If it and your sensors are happy with a supply voltage varying from 3.0V to 4.2V without loss of accuracy, running them direct from the battery, saves a significant amount of power vs boosting to 5V, which I think accounts for the major discrepancy between our daily energy consumption figures.

That solar irradiance calculator uses insolation data from a 22 year period to give you the average insolation per calender month.   You'd need to dig into its source data to find the worst December in that 22 year period, then look at Met. Office weather records to estimate how much worse the worst  December in a 100 year period could be, and derate your expected 12.6Wh/day panel output accordingly.  You'd also need the battery capacity to run for several weeks without recharge to make it valid to average your panel output over a whole month period, otherwise, if the UK experiences a succession of Atlantic winter storms, you need enough extra panel area to fully recharge the battery in the short spells of good weather between them, possibly only a day or two, despite any location and panel placement factors limiting insolation as Richard has mentioned

With a large enough battery, you may be able to make do with your panel in an optimal location if you drop back to reading at 30 minute intervals for approx 50% power saving if its below half charge.

« Last Edit: April 22, 2020, 07:06:11 pm by Ian.M »
 
The following users thanked this post: brych34

Offline Marco

  • Super Contributor
  • ***
  • Posts: 6857
  • Country: nl
Re: Arduino solar power help
« Reply #7 on: April 22, 2020, 10:31:17 pm »
Unfortunately the issue is not the volume of air it's the fact that the sensors must reach a certain temperature before accurate results start coming through. Thanks for the suggestion though!

You're misunderstanding me ... I'm talking about the volume inside an insulated box. Depending on how the sensor operates, having too little air around it could bias the measurement.

Lets say you insulate a box infinitely well, and every 15 minutes you pump a liter of air into it to take a measurement. Now heating up the air by lets say 70 degrees, will only have an average power consumption of 93 mW.

Your sensors don't have to be out in the open air throwing heat away.
 
The following users thanked this post: brych34

Offline Nusa

  • Super Contributor
  • ***
  • Posts: 2417
  • Country: us
Re: Arduino solar power help
« Reply #8 on: April 23, 2020, 12:55:28 am »
Another version of the above would be a domed lid over the sensor that lifts for 30 seconds every 15 minutes. You should have far less energy spent on heat if the sensor is enclosed in a very small space with no airflow 96% of the time. Since you know the outside temperature, you should be able to determine the required cycle time for heaters quite accurately.
 
The following users thanked this post: brych34

Offline brych34Topic starter

  • Contributor
  • Posts: 15
  • Country: wales
Re: Arduino solar power help
« Reply #9 on: April 23, 2020, 10:20:19 am »
So you are using a solar panel with a nominal peak power rating of 12 Watts? That's what 0.08 M^2 and 15% would imply, 80 W falling on the panel and 0.15*80 generate. Note that as panels are near-universally specified at 1 kW/m^2 you can simply multiply panel kW but the calculated kWh/m^2/day to get kWh/day without needing to include panel area and efficiency. i.e. for a 12 W panel you just go 1.05*0.012=12.6 Wh.

You will need a maximum power point tracker to dynamically match the the panel output to the battery according to illumination and in most parts of the world enough battery capacity to last 3-7 days of cloud, but overall I would agree with your calculations. Just note that these are for your specific location and assume perfect panel placement. Due South at the optimal winter angle and no shade at any time of day from any nearby trees, buildings, etc. in winter with the sun low above the horizon. That may be difficult to achieve in practice.

That sounds about right - the online seller specified 20 Watts but they tend to exaggerate.

I'll try and get a large battery for bad weather. The system will be placed on the side of a building, so I think it'll be high up enough to avoid shadows etc. The CN3791 module I was using originally had maximum power point tracking built in, so I could try to use one of those again.

I was assuming a 90% efficiency switching regulator to boost the battery voltage (taken as average 3.6V) to 5V for the Arduino.  If it and your sensors are happy with a supply voltage varying from 3.0V to 4.2V without loss of accuracy, running them direct from the battery, saves a significant amount of power vs boosting to 5V, which I think accounts for the major discrepancy between our daily energy consumption figures.

That solar irradiance calculator uses insolation data from a 22 year period to give you the average insolation per calender month.   You'd need to dig into its source data to find the worst December in that 22 year period, then look at Met. Office weather records to estimate how much worse the worst  December in a 100 year period could be, and derate your expected 12.6Wh/day panel output accordingly.  You'd also need the battery capacity to run for several weeks without recharge to make it valid to average your panel output over a whole month period, otherwise, if the UK experiences a succession of Atlantic winter storms, you need enough extra panel area to fully recharge the battery in the short spells of good weather between them, possibly only a day or two, despite any location and panel placement factors limiting insolation as Richard has mentioned

With a large enough battery, you may be able to make do with your panel in an optimal location if you drop back to reading at 30 minute intervals for approx 50% power saving if its below half charge.


Ah yes - I should have specified the voltage in the question. I will look at the data to see how the insolation varies. I think it'll be alright as long as it is running most of the time - it's acceptable for it to shut off every now and again.

I will make sure I get a large battery. Reducing the regularity of the readings when the battery is low is a good idea.


You're misunderstanding me ... I'm talking about the volume inside an insulated box. Depending on how the sensor operates, having too little air around it could bias the measurement.

Lets say you insulate a box infinitely well, and every 15 minutes you pump a liter of air into it to take a measurement. Now heating up the air by lets say 70 degrees, will only have an average power consumption of 93 mW.

Your sensors don't have to be out in the open air throwing heat away.


Ah right - I see what you mean now. That's a clever idea, I didn't consider that. I'll look into how I could do it.

Another version of the above would be a domed lid over the sensor that lifts for 30 seconds every 15 minutes. You should have far less energy spent on heat if the sensor is enclosed in a very small space with no airflow 96% of the time. Since you know the outside temperature, you should be able to determine the required cycle time for heaters quite accurately.

Yes, that could be easier to implement. I assume a servo or something would work.

Thank you everyone!

P.S. Does anyone have any recommendations for a good MPPT module suitable for this? Or should I keep using the CN3791?
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9170
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: Arduino solar power help
« Reply #10 on: April 23, 2020, 12:51:30 pm »
You could have the Arduino do MPPT control in software with a hardware overvoltage cutout as a backup.
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 
The following users thanked this post: brych34

Offline brych34Topic starter

  • Contributor
  • Posts: 15
  • Country: wales
Re: Arduino solar power help
« Reply #11 on: April 23, 2020, 02:53:58 pm »
You could have the Arduino do MPPT control in software with a hardware overvoltage cutout as a backup.

The issue with that is that the Arduino's flash memory is already quite full so I don't know if I could fit it in. I'll keep it in mind for future projects though. Thanks!
 

Offline NiHaoMike

  • Super Contributor
  • ***
  • Posts: 9170
  • Country: us
  • "Don't turn it on - Take it apart!"
    • Facebook Page
Re: Arduino solar power help
« Reply #12 on: April 23, 2020, 11:24:54 pm »
The issue with that is that the Arduino's flash memory is already quite full so I don't know if I could fit it in. I'll keep it in mind for future projects though. Thanks!
It could be as simple as a fixed PWM (determined experimentally) if the battery voltage is less than 4.1V/cell and off if it's more than that. Driving a buck converter with a fixed PWM works surprisingly well for simple applications, at least much better than the more common kind of "PWM" charge control.
Cryptocurrency has taught me to love math and at the same time be baffled by it.

Cryptocurrency lesson 0: Altcoins and Bitcoin are not the same thing.
 
The following users thanked this post: brych34


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf