I’ll admit it, I love working with the Raspberry Pi. It’s small, cheap, simple to work with, and I can do plenty of different tasks with them. They were designed for educational uses, but with the hobby makers taking over, it has exploded with different uses. We already have one setup as our Plex server and one with RetroPie, but there are more uses, more goals, more projects to work with.
The one drawback with the Pi though, is I do not want to have a bunch of separate computers in separate cases crammed into a cabinet and making a mess with cables all over the place. I want something compact and easy to move around if I need to, but also has everything contained within so I can set it all up and not have to worry about unless something needs to be upgraded, repaired, or expanded.
For the complete system, there are several Pis doing several different things. It might be cheaper, certainly easier, to set up a single Ubuntu box to just about everything, but I’d prefer to have one system to one discrete thing so if it does break, it’s simple to repair and replace. That way if one goes down, the other functions all still work fine until the broken part can be replaced.
Each Pi then has its own job. All of them have power, all of them are connected to the network through ethernet. I could connect them through wifi, but using ethernet is easier and hopefully faster. I could even completely disabled wifi since I won’t be using it ever on them. Some will be connected to hard drives as well, while some will just have a small USB thumb drive for extra storage.
The list of Pis, their jobs, and what else is needed for each individual board:
- RetroPie: This one is already set up and works fine. I’m using a 128GB microSD card with about 20GB free. I will be adding two 8BitDo SN30 Pro controllers so we can play wirelessly. It is running on a Pi 3B+, connected to the network on ethernet, connected to the TV with HDMI, and seems to work fine for just about everything we use it for.
- Plex Media Server: Right now, this is a Pi 3B, but I may have to replace it with something else. It works fine for the most part, but there are definitely times when it cannot handle the source file. It is connected to a 4TB drive, but that is running low so I’ll be getting an 8TB drive soon to replace. For streaming to one 720p TV, it usually works okay. I would like to eventually figure out a system that has more power and can transcode more easily, but that requires more money for a better processor, more RAM, and setting up everything under Ubuntu. Since I’m trying to avoid setting up a whole different system and having to deal with that, for now we will keep it as a Pi. I would like to upgrade it to a Pi 3B+ which might add some improvements since it is a slightly faster processor, but maybe if the foundation releases a Pi 4 next year, we can just upgrade it to that.
- OpenMediaVault: While trying to figure out a way to back up our files, setup a file server, have everything upload to OneDrive and still be accessible to our laptops, I came across openmediavault. It is basically a fork of Debian built for the Pi and to do all those things I wanted, but without the extra stuff I don’t need. It will need its own hard drive, but 4TB should be well more than enough.I could use the 4TB drive we are currently using for Plex after I’ve upgraded that system, or buy a new drive since that one is a couple of years old.
- WeatherStation: This one does not need to be a 3B+ and I can probably get away with something less powerful, but it depends on what is easiest to get ahold of at the time we need it. While it would run easily on a Pi Zero, that would also mean adding adapters for a display, ethernet, and probably having a different power supply. The added cost of all that, the added complexity of having a different system might not be worth the cost saved by going with the cheaper board. It would also require a display of its own, probably a touch screen, that will be mounted above the main door of our RV so we can see the weather measurements outside, tap it to change things or see the history, as well as be able to access it from our computers or phones to know what is going on outside at any time.
- Web Server: This task can actually be added on to one of the other Pis, but I’m not sure which one. Probably the WeatherStation though since that requires minimal resources. For the Web Server, I want to be able to run a small database driven inventory system so we can check what supplies we have on hand and keep track of what is in our pantry. Its not a huge task and might be done easier other ways, but I think I can make this work anyway. This gives me more control than buying an app anyway.
- Home Assistant: While I’ve gone back and forth between openHAB and Home Assistant (also called Hass.to), I’ll probably end up using Home Assistant. It seems easier to use and is built for the Pi alone, so its likely more efficient since it isn’t adapted from other systems, but built from ground up just for the Pi. It will be connected with ethernet to the main network, so connecting to wifi smart devices is fine, but it will also need some other connections, like Z-wave for those devices. Since those are USB adapters, that means a USB connection to the outside of the box. Should not be difficult, but still an added complexity. This is likely the last thing to be done though. It is the most difficult, the most expensive, and will have the most parts to be purchased to make the complete system.
- Download Box: I’d like to be able to download files to one Pi and have it run in the background. There are times I need to download large files and while I can do it on my laptop, that means leaving my laptop open all the time while it is working. The network speed doesn’t change since our bottleneck is our connection to the outside world, but having one computer to just go to and start downloading things and let it go as needed is what I’m aiming for.
- Video Control Center: Eventually, I will be adding cameras to the outside and maybe inside of our RV. This Pi will need a secure connection to the outside internet so we can see what is going on inside at any time as well as record anything happening so we can later go back an see if anything happened. That means buying cameras, running cables for video feed and power, installing it all, setting it up to stream, and having it back up to a hard drive. After the Smart Home part of the project, this is going to be the hardest part to set up and maintain. There are Pi-centric monitoring systems out there, so I have something already built to work with though.
- Ansible Control Box: This is another item that can be probably be done with a Pi Zero instead of 3B+. Using Ansible, which I will have to do a lot of work to figure out how it all works, then I can have one Pi to login to, or even not ever login, and have it run updates periodically and give me a way to access and check on all the others without logging into each one individually. It has a learning curve, but it is supposed to be easy to pick up, so having this one working right should make the whole network easier to maintain.
Bringing it all together…
That list is eight Raspberry Pis. I currently have three, a 3B, 3B+, and Zero W. I will probably setup the Zero W to be a RetroPie box in the bedroom once we have controllers for it, but I have an SD card big enough for everything it can run well, so it won’t be too difficult to through it all together. I even have a HDMI adapter, so really, controllers is all that is needed.
I can use the 3B for something other than Plex, either Ansible or the WeatherStation and they will have plenty of power to do that task. Upgrading the Plex to a 3B+ might boost it enough to give it some more life.
That leaves 6 Pis to get. To make it easier, I can just get all 3B+’s. That also means 6 microSD cards, but I can get 32GB cards for about $6 a piece. All the software is free, so there is no cost there. I could buy all the Pis from sites other than Amazon for $35, but they only allow one unit per person, charge for shipping, and it ends up costing more and taking longer than just buying from Amazon.
To mount the Pis, I found the beauty of DIN Rails and there is even a Din Rail mount for the Raspberry Pi 3. It comes in a 3-pack for about $30, so for this project we’d need to order 9, even though we are only using 8. Maybe we can sell the unused one or just keep it for backup or future use.
Of course, to mount DIN Rail mounts to something, we need DIN Rails themselves. Turns out, they are very cheap. Because they are 16″ long, assuming we do not have to shorten them for the case, we should be able to fit all 8 Pis on the mounts and on one rail.
After that, of course, the Pis need power. To do that, we can use the second DIN Rail to hold some power converters to change the incoming AC 120volt power down to 5volt and 2.5amps, which will be good for the Pis. Eventually, the Pi system will be run off battery power that is completely using solar panels for a power source, and since everything in it will be DC powered, we do not need an inverter. That is down the line though. For now, we will have a single AC power line coming in, have it split off and sent to 5volt 3amp DC power converters to give each Pi its own power source. To connect the Pis to the power converters, we have to use jumper cables on the GPIO pins.
Connecting to GPIO instead of through the micro-USB port removes the high/low voltage protection though, so we will need to add a fuse in each block between the power converter and the Pi. Since the Pi requires 2.5amps, then having a 2.5amp fuse inline will cause that to break whenever the power exceeds that limit. We can get a kit that includes 2.5amp fuses and wired holders for $14 though, so we have plenty of backup for whenever one is ruined.
That will at least get power from an AC source to the right DC for the Pis. However, there is much more work to be done.
Remaining work to figure out:
- Find a way to get AC power into the box and distribute it to the power converters to get power to the Pis.
- Power for hard drives, ethernet switch. Power switches for the whole unit, maybe soft off switches for the Pis.
- Figure out how to make the display outside the box. HDMI extension cable, maybe HDMI splitter. Definitely need junction for the WeatherStation HDMI and USB for touchscreen.
- Ethernet port on the outside to connect the whole box to ethernet, then have the Pis connected to the switch inside and have them all on the network.
- Cooling system. Have to figure out a way to bring in air and push out exhaust. And have it powered somehow, and maybe have it temperature controlled to turn on when it gets too hot inside. Maybe a Pi Zero just for that, or something connected to the Home Assistant network.
- Figure out how much space this is going to take up and find some sort of box to put it all in easily and still be able to access the inside, add parts, make holes in the walls for ports and fans.
And I think that is it for now. This is going to take awhile, stay tuned for the next step: Figuring out how to make the AC power system work.