I’m in the space where I would like to design or find a solution for a standalone Arduino project. I have the odd application where I need an Arduino where there is no power. I would also like it to communicate via WiFi (or whatever) in order to call websites.
WiFi or Zigbee or alternative comm interface. WiFi is optimal as I can just point a form POST or GET url to a server.
Some sensors, non-specific low energy cost
Perhaps a flashing LED (once a minute)
Weather proof project box
Optimally, the system can be run all the time from the battery, if the solar panel is charging or not. 3.3V for small Arduinos versus 14V solar panels make for a challenging design (for me).
How do I go sizing up a system like this? Is there a common standard for running an Arduino all day, with other sensors and comm boards?
Good battery choice as these have a large capacity and are easy to charge.
For calculations use one half of the battery rating, so 4.5Amp-Hour. This is done to be sure that the battery does not discharge to too low a Voltage which can permanently damage the battery (googe and read about charging/dischaging Pb acid batteries).
Measure the average current drawn by the power supply to the Arduino circuits, the 12V input from the battery. Then divide this into the battery capacity. Example: if the12V into the Arduino’s PS draws 0.2Amp then the battery should last for: 4.5 / 0.2 = 22.5 hours.
I’d suggest a high efficiency DC-DC switching PS to drop the battery Voltage to the Arduino circuits. Do have this as two systems:
1- the 12V battery, charger and solar panels
2- the 12V from the battery/solar system feeds a PS to the Arduino circuits.
Work on each system separately. Use an AC mains power PS for the Arduino circuit while writing code and testing.
Use a ‘dummy’ load (power resistors) to test the battery system discharging.
Now for the solar charge sides. This gets a bit difficult since it can be hard to determine how much sun is available due to clouds. So you do need to have more solar panels than first calculated.
Also be sure that the solar panel output Voltage under load is high enough to apply a charge to the battery. Pb acid batteries typical require 14.5V during charge. Google charging Pb acid batteries to learn the correct three-stage charge method.
Does the Arduino have any ‘sleep’ modes to save power?
This isn’t complete but just something to get you started.
OK so dropping from the panel and battery system down to Arduino power, so that functions more as a gate to separate power supply from Arduino. Interesting. Diode the 3.3V to the Arduino side for nighttime use.
Actually I would probably choose an arduino whose voltage is the same as the demand from the sensor I would be using, and/or the WiFi demand. The first unit has a 5.5V sensor so I should go with that.
The project is for a multi-purpose stand-alone system, so there will be instances where it will be programmed to check a sensor every second. Sleep modes use the sleep function? That’s still an iteration in the code.
The Arduino Fio looks great. 3.3V, 8 MHz, so the WiFi shield will be larger. 40 mA per port, so the sensor will probably be the largest draw. Because the WiFi only gets tripped maybe 5 times a day, it’s of little consequence. 300mA draw so estimate is 7200 mAh per day draw. Does that sound right? That’s at 5.5V. With that design I could use one panel, or two in series.
The two panels that you have in mind, connected in series, may not have a high enough voltage to charge a lead-acid battery, especially if you use a charge controller (which introduces a voltage drop). Also, you don’t double the current if you put panels in series. 12V lead-acid systems are usually charged by 18V to 20V panels, while the specifications indicate those two panels in series to have a maximum power point of 12.0 volts, 266 mA. So, you probably need three of the panels.
A conservative estimate of the total available energy from those panels, assuming 4 full sun hours per day, is 12Wh/day. Finally you need to size the battery so that the system can run without sun for the longest expected cloudy period. Where I live, that can be a month or more.
The sensor is on all the time. This project basically is waiting for an infrared eyeball to be disrupted within 5 feet. So it has to be on basically every second or so. Since it’s not a single project, I’m trying to basically see what kind of system I’m looking at for a field unit. JRemington’s example shows that it’s doable and not extravagant.
If I wasn’t so busy with work I’d jump on this this weekend.
Ok, an IR LED can take some power. So to reduce the total power need pulse the LED. Even a very low duty cycle will work for detection and save lots of power.
Having done a similar project at work recently, although on a much larger scale, here are my suggestions on how to approach the problem based on my mistakes.
1 design your sensor and communication system fist. Build it up and run it measuring the current, if you have a meter which will do averaging let it run at least A hour, a day would be better.
2 use that current to get your daily power consumption.
3 size your battery, depth of discharge will impact how long your battery is “healthy”. The battery datasheet should give you life in cycles vs depth of discharge.
4 size your array. http://rredc.nrel.gov/solar/pubs/redbook/ has real world measured solar in insolation information (accounts for cloud cover). Use the solar radiation information to get a more realistic idea of how much power you can expect to get. The rated power may no be realistic as panels are typically rated at STC. Also there are other factors that should be accounted for (dirt on panels, charger ineffectiveness…) using a factor of 0.8 is pretty standard.
How does one integrate the XBee stuff? It seems like you have to receive it somewhere else. I need to ping a server with postparameters. I am assuming the locations that I’m looking at, will have WiFi available on site.