diy solar

diy solar

Integrated RPI/Arduino in your solar system?

UncleTodo

New Member
Joined
Dec 8, 2020
Messages
50
Just curious if anyone is using an RPi or Arduino in their solar setups, either for the DIY factor, or in place of a not readily available product.
First time dabbler, just curious to see real world practical use applications.
 
Not Arduino as such, but I do have custom electronics to switch excess solar to the water tank when the battery is full, manage heating pads for the LiFePO4 battery, etc.
 
I am.
Currently not Arduino, but ESP8266 (with Internet connectivity, programmed over the Arduino IDE)

I am in the process of building (around an ESP8266 and 4 different types plain buck converters) an extremely versatile solar charge controller.
cf:in an attempt to build a better SCC.

My focus is on mini-power solutions, where the intrinsic consumption of current SCCs is in the same range as the payload (0,5W-5W, only but 24h/365d on solar power in regions with low solar irradiance and possible freezing temperatures.
The solution will be scalable from 10W solar panels to ~500W and will adapt to various battery chemistries.
 
Last edited:
This past weekend I installed an Arduino controlled dual axis solar tracker on my system.

So far, I am impressed.
 
A bit of an old post, but I'll reply anyway. I'm in the last stages of building a solar monitor. I started with ESP8266, then ESP32 and now on RPi. I found the ESPs to be unstable and it seemed like I never had a good reference for what was/was not implemented in their version of C. Moving to the Pi was liberating. It has a real operating system, Linux and therefore can host real applications including a database.

No love for Python, but I decided to learn it since it seems the most popular on the platform. What I wanted to do is be able to monitor both what is coming in and what is going out. My EPEver 50a charge controllers have a lot of information but two disadvantages. First the little loggers have to be downloaded periodically. The data must then be massaged in Excel. Works but not easy and not real time. Second issue is the data is centric to the charge controller. I can't monitor the usage of the power.

What I have setup is the Pi with three ADS1115 analog to digital converters for measurements. I also added a Dallas 18B20 for measuring the temperature of the electronics. Not so much a problem in the winter, but we'll see this summer. I've learned a lot about the practical accurate measurement of both AC and DC. My setup is off grid. I have a dedicated circuit run in my barn and workshop. I'm using a transfer switch based on battery voltage to switch between inverter power and building power.

I'm measuring the AC voltage and current of both the inverter and the building power to track consumption. I'm also measuring the battery voltage and the DC current coming from each charge controller to the batteries. I don't care what the panels are producing. I care what the charge controllers are actually sending to the batteries. I've also recently added a shunt to monitor the DC output of the batteries to the inverter. The inverter consumes power even when not being used so, I want to know how much. I'm just using one of those cheap meters at the moment, but I will add it to one of the ADCs soon.

I've started to add some automation to the setup. I discovered in testing that the transfer switch was switching back to the inverter as soon as we got a good sunny day even if the batteries were low. This happens because the charge controllers raise the current to charge. No way around this so I decided to make one in code. Now I track what I call a charge event (when the system switches to building power). I then track how much power is being stored in the batteries and don't switch over until enough have been stored. The tricky part here is putting a relay on the battery monitor wires that go to the transfer switch. I break the connection so the transfer switch thinks there is no battery and therefore can't switch back. When my program reconnects the relay, the transfer switch can then see the battery and switches back to the inverter. So far this has worked well, but I need to tune the process.

I've gotten cocky and added one more layer. My AIMS 2K inverter has a port for an external remote switch. I've attached that to a relay so now when the system switches to building power, I can turn off the inverter. It basically uses about 23watts continuously. Doesn't seem like much but if we have a week of cloudy weather, it consumes most of the power the panels are providing. This new feature is still being debugged, but I should have it working soon. If you are interested in more detail, let me know.
 
What I have setup is the Pi with three ADS1115 analog to digital converters for measurements. I also added a Dallas 18B20 for measuring the temperature of the electronics.
At which voltages are you operating?
Have you considered the INA3221 breadboards to measure your DC voltages/current/power?
And, of course, you are welcome to bring your docs here...
 
Last edited:
At which voltages are you operating?
Have you considered the INA3221 breadboards to measure your DC voltages/current/power?
And, of course, you are welcome to bring your docs here...
My battery bank is 24v, 300Ah (@50%) AGM. I wish now I had gone with 48v but I'm stuck with it for now. I have not looked at the INA3221. Is it accurate? There are a lot of boards out there that give you results, but aren't very consistent. I've spent a lot of time and money going through various options that turned out to not be consistent or practical. Using a 75A = 75mV shunt means when my charge controller is dealing with a cloudy day: 0.1A shows up as 0.0001 volts. I found the ADS1115 in differential mode does a pretty good job of reading a small voltage like this.
 
My battery bank is 24v, 300Ah (@50%) AGM. I wish now I had gone with 48v but I'm stuck with it for now. I have not looked at the INA3221. Is it accurate? There are a lot of boards out there that give you results, but aren't very consistent. I've spent a lot of time and money going through various options that turned out to not be consistent or practical. Using a 75A = 75mV shunt means when my charge controller is dealing with a cloudy day: 0.1A shows up as 0.0001 volts. I found the ADS1115 in differential mode does a pretty good job of reading a small voltage like this.
The INS chips are very accurate from factory, they matched my 0,1% multimeter by 0,5%.
however the 3 channel INA 3221 can only handle 26V, so not good for your 24v battery.
The option is to use (several) one channel INA226(s) that can measure directly up to 36V or can measure the current low side, enabling practically every voltage level over a divisor for the voltage measurement.
The INA chips measures accurately microvolts along the shunt. By 75A full range it would resolve 2,5mA/bit. Is that enough? :p
 
I have some hardware in my fifth wheel. The trailer has 640w of panels, 40a MPPT and 4x 6v AGM (switching to Li this summer).

I started with a TI LaunchXL as I had it sitting around. There is an INA219 for reading a high-side shunt. It displayed info on an LCD screen and generated a web page I could view on my phone. I was using a microSD breakout for data history

That got replaced by a Pi and an ESP32. The Pi is running a SQL database for historical info. The ESP32 is used to read the INA219 because I already had it working with Arduino code and didn't want to bother switching it to the Pi. The ESP32 sends UDP broadcasts which are picked up by the Pi.

I also have an Arduino reading gyro and GPS modules and UDP broadcasting that data which the Pi logs.

I've tried a couple of different methods for non-contact tank level sensors. They work on the test bench but not in the RV :)
 
Back
Top