The next part of my home energy system is to measure the solar energy available. I want to be able to determine how much sunlight I get on a daily or weekly basis. This will allow me to plan or at least cost out either solar PV cells or solar air heating.
I planned to use a photodiode to measure the energy created, but then discovered that the way to do it is to reverse bias the diode and measure the tiny current being create. This current is directly proportional to the luminance. The best reference I found was this http://www.instesre.org/construction/pyranometer/pyranometer.htm so I ordered a few of the diodes mentioned and set to work.
The first problem is that the Arduino has a 10 bit Analog to Digital converter (ADC) which according to the research is a little too course to accurately measure the energy produced. The next issue I saw coming was line loss. I want the sensor outside in the sun, but I don’t want to move my Arduino out there since I need to have internet access to log the data. This means I’ll need to convert the signal to Digital at the sensor so I can transmit it back along my line to the Arduino. I have been using the Maxim 1-wire protocol for the temperature sensors, so I figured I’d try to use that as well. The problem is Maxim doesn’t make a 12 bit 1-wire ADC. When I wrote to ask if they had one in the works, they told me they don’t since they don’t feel there is the demand. They did however suggest the brilliant solution of using one of their parallel ADC chips with two DS2408 8 channel switches. Basically, I could use a channel on each of the switches to monitor the ADC. The switches would use the 1-wire protocol so I can use that communicate over longer distances. I am currently waiting for those parts to come in.
In the mean time, I am learning more about operational amplifiers that I ever thought I’d need to. I plan to use an op-amp IC to boost the weak signal from the photodiode to somewhere closer to the 2.5 or 5 volt maximum of the ADC.