Building a Raspberry Pi Network

This is mainly focused on the full time RVers reading this, but there are still ideas to be mined for others. This is the layout for how our network is getting built and what each Raspberry Pi will do in that network. I’ve had some new ideas recently, so while I’ve discussed building a Raspberry Pi network before, this is more depth as things have changed, new technology has been found, and some random people have inspired me to figure out ways to add new functions to the system.

  1. Plex Media Server: The first component we added to our RV that was Pi-powered was the Plex server. We had previously used a mac Mini as a server and an Apple TV to stream to our TVs, but in the attempt to make things more compact and get rid of stuff that wasn’t needed, I replaced those with a Pi 3 running raspbian and Plex Media Server, added an external hard drive, and replaced the Apple TV with a Roku Streaming Stick.

    For the most part, it works pretty well. We only stream to one device at a time, so it doesn’t need a whole lot of power and the Roku usually works pretty well with one caveat. The Streaming Stick we have will only connect to the local wifi network if it can connect to the outside internet. Normally this is not a problem as we usually have enough of an LTE connection through our hotspot, but there is at least one campground we frequent where LTE coverage is pretty bad. Sometimes it works okay, most of the time it does not. I have not figured out an affordable workaround, but I’m trying to. I might buy a Pi Zero, put Kodi on it, and install the add-ons we most frequently use on the Roku. That would be Plex, YouTube, and Pluto TV. There are many other add-ons, some legal, many not, but we don’t need any of that. In addition, with Kodi, I can connect a remote or even game controller to maneuver the interface, so it’ll be just like using the Roku anyway.

    With Plex setup properly and connected to the network through ethernet, I can rip a DVD on my computer and send it to the Plex over the network, and it will automatically update the library within minutes. Makes it pretty simple to bring a ton of video and music with us and it all takes up very little space.

  2. RetroPie: The second Pi I setup (and which I’m still working on tweaking) is the RetroPie box. I can run games from Atari 2600 all the way up to the original Playstation, control it with a wireless PS3 controller, and add games easily. It doesn’t run Nintendo 64 games very well, but that’s fine. It also doesn’t run anything newer, but there are other options for that. As I work on it, I’m going to organize the file structure, adjust the settings for each game system, and eventually sit down and play some games.

    A bonus of RetroPie is that I can setup Kodi and add it to the main menu, so we can use the RetroPie box to watch movies from the Plex on the living room TV without adding another device.

  3. File Server: My project next month is going to be setting a Pi up to work as a file server for our laptops that will backup to OneDrive so we never have to worry about losing anything. There are other options out there for cloud storage that I’m looking into as well, but OneDrive is what we use currently. Doing this should be pretty easy as there is a service called r/clone that connects to OneDrive and does the backup, all through the Linux operating system. To set it up, I’ll have to get a Pi, case, and power supply, a microSD card (doesn’t have to be very big though), and an external hard drive that is pretty big. I’m probably going to get a 8TB drive and move the Plex library over to that, then use the 4TB being used for Plex now as the file server.

    With r/clone, I can setup different services and set up accounts in raspbian, so for example, when on our network, I can mount my OneDrive and copy whatever I want to that, Tiffany can do the same to hers, and we never have to worry about mixing things up or confusing things. She’ll have her directory, I’ll have mine, and they will both backup to OneDrive every night so we can still access things when off our network but still have internet access.

    I’m looking into other services to add too, like Deluge to download files but be able to control it from our laptops. I will probably add a builtin VPN to this Pi as well to keep it more secure and hidden from the outside world.

  4. openHABian/Smart Home Controller: This is where we start getting into things. I’m calling this the Smart Home on Wheels project. openHAB, and by extension openHABian which runs on the Pi, takes a ton of different smart home protocol and combines them into one easy to use interface. I don’t have to worry much about something being compatible and should be able to connect everything together and control the whole RV through our iPhones or Android tablets. It will be connected to the network over ethernet as well and be able to talk to most of the devices through wifi.

    The first thing I’m going to attempt is light controls, followed by fans. Lights should be easy, but I have to find a relay that has wifi and can be powered by the DC power in the lights inside the RV. I’ll get a couple to try out, figure out how to make them work, and then get more for the rest of the lights inside and out. That way if I want to, I can turn on all the lights in the living area, or both lights in the bedroom, or turn the outside light on or off.

    The fans might be a little more complicated. I should be able to find fans that are DC powered, but then I need to figure out how to get power to them. I’m going to be adding a secondary fuse box direct from the battery with a voltage regulator, but running wires to the vents might be difficult since they are in the middle of the ceiling. Once I figure that out, I can add a relay to each that can be controlled through openHAB and be able to turn them on or off. I might also be able to add a rule so they turn on if it hits certain temperature inside, or shut off automatically if the vent is closed. I’m not sure how to do that yet, but it should be possible.

    Another idea expanding on the fans is to add some sort of rain sensor or connect it to the weather station so if it gets hotter than expected inside, the vent automatically opens and the fans kick on, cooling the interior by removing heat. We can also have these controlled by the openHAB app and have them tied together so I can just press one button and all the vents open up, the fans kick on, and I didn’t even have to get up. Doing the same thing in reverse would be easy as well.

  5. Climate Control: Our roof AC doesn’t work and since we are almost always plugged into free electric, I hate using the propane heater. We have a portable electric infrared heater that keeps the whole RV nice and toasty though and worked well for us this past winter. Its not ideal though as it is big and in the way, and we have to get up to manually change the temperature it is set at. It does have a thermostat builtin though, so we can set it at 65 degrees and it will heat until it hits that temperature, then shut off. It worked for us last year, but I’d like something more automated.

    The heater also has an IR remote control, which is a bonus and will make things easier. I found IR transmitters that work with the Pi, so I can get one of those, hook it up to a Pi Zero W, and have a small, automated remote control that I can send commands to through openHAB. The Pi will basically replace the remote and provide the same function, but allow control without going to the heater, which may not be close by in the final setup.

    The hope is that when we get the air conditioner replaced, either with a new roof unit or a portable unit, I can do the same thing with that.

  6. Weather Station: This one will likely be mounted above the outside door, or at least the display will be. Sure, I can easily check my phone to see what the approximate temperature is outside, but if I can have something that tells me the temperature exactly at my site, that’s even better. Further, if I can have it display the forecast and let me know if I should take an umbrella with me when I go outside, well that’s even better. I can also add temperature gauges inside in multiple locations, so I can have it display the temperature at the front and rear of the RV.

    I’m not sure if there is a limit to the number of gauges I can attach to one Pi though and the cables to connect them are not long enough to go from the center where the door is all the way to the back or front. I might have to get something smaller that can do that, or maybe even get a prebuilt smart device that can talk to the openHAB control.

    Finally, I can tie these all together so if it gets far colder than we expected at night, the weather station will send a message to openHAB, which will send a command to the IR transmitter, which will turn on the heat. That way we never have to wake up to an unexpected cold.

  7. Listening to Music: We frequently sit outside by the fire, listening to music streamed through Pandora on our phone. It works, but its not ideal. I want to be able to control something while we are outside or inside that plays music either inside or outside. I want to be able to change the radio station, play different music from our library, and change the volume from our phones. I’m really not sure how to do this yet though. There is a Kodi app we could use, so I could have one Pi setup just to be a stereo system, but I think the Kodi app allows me to control it if I’m sitting in front of the TV, not just change music from my phone without seeing a screen inside. Still working on this one though.
  8. Video Monitoring: I want to be able to check on the campsite, the interior, see what the cats are up to, and have a dash cam that records in case we have an accident or other incident. I also want to be able to stream a live feed to one of my websites so I can check on things while away. I should be able to do this with a few Pi Zeroes with the camera attachment. If they are placed strategically around the RV, we will have full coverage in the event of a break in and we can see if anyone is getting too close to our RV. I can also put one by the main door and have it connected to the light controls so that if someone happens to walk to close to our RV, the light will turn on and it will be recording. This will give us added security and I’ll add a backup hard drive somewhere so that the feeds are sent there every couple of minutes and organized so we can go back in and get the video if we need to.

    Is that paranoid? Well yes, a little bit, but we’ve also dealt with neighbors who do not respect our campsite and space and get way too close. Since we travel every few weeks, we have new neighbors all the time and I don’t trust any of them. As a bonus, if we are somewhere a little more remote, we might catch a video of a wild animal walking through our site too. Of course, its always nice to have proof of that one neighbor who never cleans up after their dog.

  9. The NAS: This Network Attached Storage is going to take awhile, but mostly because it will be expensive to buy enough disks to make it worthwhile. I’m not sure yet if I’ll use a Pi or go with something more powerful. This will be our secure box though, hidden away somewhere so that if someone were to break in, they’d never even know it was there and that the video feeds were being sent here. I have an idea where to put it so its hidden and difficult to get to, but I’m obviously not going to tell you where that is because I don’t want someone to find this site, find our RV, and know where the backup is.

That’s it, I think. I’m sure I’ll come up with new ideas as I discuss these things with others and find out new things I can do with the Pi’s. Some ideas will also likely change because its either too costly or too difficult to do what I intend and maybe there is something out there that does it better.

Pi Network

We have a Cisco 8-port switch, so all of these Pi’s will be connected together through that or directly to the router so they are all on the network. Some may need to be wifi since they will either be in places where its hard or impossible to run ethernet wiring, or its simply just not needed for them to be on ethernet. If need be though, I can get a bigger switch to connect more devices to or even add a second one. Our router, the Peplink Surf SOHO Mk3 has five ethernet ports on it and one will be used for the initial switch. Adding a second switch to that is easy to do.

Power

One thing to note though is that I want the Pi’s to be powered off the batteries in case our campground electric goes out or someone cuts the power. It wouldn’t be a very good security system if someone just unplugged our power and killed it. At the moment, we do not have a very strong battery bank. It works, but it was cheap and I needed to replace the old batteries unexpectedly. If I can figure out how to power the Pi’s off DC and direct from the batteries, then they will be running constantly, even when we are traveling and not connected to power. If I can add in a solar panel or two, thats even better and I should never have to worry about the Pi network going down. I have two options though, leave the current DC power in place and tap into it for the Pi network, or add a second, backup battery bank just for them.

The easiest method would obviously be to just use the existing system and add to it. I can replace our one battery with two higher Amp-Hour batteries for a longer running time and add a couple solar panels to it for those times with extended blackouts. Most of our devices that would be required for the network to work can also be DC powered, so keeping the wifi network, ethernet switch, and Pi’s all online and connected in the event of a power outage would be ideal. The modem and cell booster are already DC powered so I just have to find a DC power adapter for the router and ethernet switch. Then I just have to run some power cables to where the Pi’s will be, but since most of them will be in the electronics cabinet, that’s just one power line to run.


That’s all. Its a big project, but fortunately, Raspberry Pi’s are cheap and extremely easy to setup.

Leave a Reply