Wolf's Roadtrek Motorhome Modifications

... and Other Stuff

PiRV (and PiRVREAR)

The pictures here can be clicked for a much higher resolution version!

 

Executive Summary

  • Digital speedometer in a GPS-like dash display

  • Monitors fridge temperature and texts you on alarm

  • Monitors freezer temperature and texts you on alarm

  • Monitors the interior temperature and texts you on alarm

    • The dogs, in the motorhome, are safe

  • Monitors a break in and texts you on alarm

  • Very close to allowing the family to check on your location.

  • Controlled and monitored from a web page


Needed items

  • Lots of Raspberry Pi parts

    • W1Thermistor sensors DS18B20 – the ones in stainless steel probe tips with long wires.

    • 4.7 kilo ohm resistors

    • Popsicle sticks--solder the resistor and then tape the resulting connections solidly to a piece of popsickle stick.

    • Door magnetic switches – BNYZWOT MC-38 Surface Mount Wired NC Door Sensor Alarm Magnetic Reed Switch

    • Can I get away with a Zero W? Sure, if your time isn’t important to you

    • The GPS is a Stratux VK-162 – highly recommended

    • The Pi seven inch screen in a NeeGo housing

    • A RAM mount for holding the housing


Does it crash often?

  • Yeppers – and I find and fix every one – that’s the fun of it.

    • Corsair wireless keyboard

    • Kensington vertical wireless trackball

    • A third Pi, I use a 400, to connect to my motorhome TV

    • Using the above I can connect into the headless PiRV and PiRVREAR

  • You need to stop and rest. Nothing better than pulling off in a rest area and banging on the program trying to figure out what the heck went wrong.

  • Gosh I love programming in rest areas!!! No, really, it is fun!


 


About me

I am no programmer. I have no more than a formal education in Fortran punched into paper cards and fed into an IBM 360. You ever punched cards? Have you ever fed paper cards into a 360? Everything else I have learned myself. That being said, I did play “Lunar Lander” on an IBM 360 in 1976 or so. I programmed programs I have sold. I programmed a 6809 assembler amateur radio repeater controller. I probably don’t have your insight into objects and recursion and who knows what. No time for that.

This program represents hundreds of hours of my own banging against a problem I needed to solve. Here’s the problem.

Flying with a Raspberry Pi

When flying my 1957 Cessna 172 I run two seven inch Samsung tablets.  The program called Avair receives data from a Raspberry Pi running Stratux software.  I get maps, speed, vertical speed, bearing, distance and about a hundred of other pieces of information.  Here is a web page on how I have that set up.

Most important to me, from the FAA I get ADSB data that plots aircraft who are flying around me.  I can visualize, plan and avoid other aircraft.  It is a fantastic tool in the cockpit.

That implementation uses a VK-162 USB GPS receiver which has excellent precision.  It allows the Pi to be remote with only the tiny GPS head on the dash.  Data is sent to the tablets via wifi.

FRIGGIN' AWESOME!

The programs interface to a web page

The programs interface to a web page that sort of looks like this: WEB PAGE

You set the alarms, view the temperatures and see the status via the web page.  This web page is served out of the PiRVREAR Pi running Apache.

In order to do this, you need mobile internet either through a phone or through a puck designed to allow it.  I have Wow cable internet at home.  I have Verizon on my cell phone.  I decided to go with T-Mobile for the puck.  That gives me three options from home, two from the box.

The first one to ask, "What happens if you don't have internet coverage?" is going to get a special reply.  "It is just like your toaster.  Go to your toaster.  Unplug it.  Put two pieces of bread in the toaster.  Turn it on.  You will notice you don't get toast because you don't have power.  Not having the internet in the motorhome is a lot like not having the toaster plugged in."

A heads up digital speedometer

I have a 2016 Roadtrek motorhome, a 190 Popular based on a 2015 chassis. It has an analog speedometer. I need a digital speedometer. Yeah, as all projects start, that seems not so hard. Read a GPS and put it on a screen on the dash.

I knew the GPS was possible as I run a RaspberryPi in my 1957 Cessna 172. It gives me ADSB data that reports aircraft within a thirty mile circle around me. Not a problem. Easy-peasy.

Fridge/freezer temperature monitoring

I monitor the fridge and freezer temperature. Those are displayed and the background changes should the temperatures rise above a particular limit. It also sends a text alarm when it goes above a preset temperature. I have always had some sort of thermometer in my fridge. Not what I want. I want to be warned when the fridge goes over a certain temperature.

Monitoring internal temperature

(protecting the dogs)

On the Outer Banks of North Carolina, in Kinnakeet on Hatteras Island, is a restaurant called “Gidget’s Pizza and Pasta”. They have a dish called “Spaghetti a la MC”. “Grilled green and red pepper, onion, mushroom, 2 meatballs, a link of a la MC Italian sausage over angel hair and marinara with mozzarella.” When I am on the island I need Spaghetti a la MC. It is one of the few culinary debaucheries that I allow myself. Purple pill at the ready, Alka-Seltzer at the standby, I have to imbibe.

The dogs demand to come. They can’t come in the restaurant. They know that. They still want to hang in the motorhome while I imbibe. This restaurant in in a latitude that a person from the Cleveland, Ohio snow belt is quite attracted to. It is warmer. On the flip side, sometimes a bit too warm … for dogs ... waiting in the motorhome.

For this I have the internal temperature monitoring function. If the temperature goes above a set temperature, I get a page. If it goes below a set temperature I get a page. Problem solved. If I need to, if the temps require it, I can leave.

While in the restaurant I can call up the web page and monitor the temperature.

FUTURE EXPANSION: I plan a couple of additions. First, if the temperature alarm is not addressed within some time period, I will sound an audible alarm. Second, I plan on starting the motorhome having left the air conditioning on.

The temperature sensors

I use the temperature sensors shown in the photo. I put in my own pull down resistor.

Solder the connections both to the resistor and to the Pi. DO NOT USE PUSH ON CONNECTIONS.  Tape the resulting connections to a piece of popsickle stick.  Tape or otherwise secure that to the case.

There are so many things working against push on connections. Vibration, heat/cold cycling, dust, there are all kinds of things that will thwart push-on connections. You need a soldering kit. Search for “Tabiger Soldering Iron Kit” on Amazon. There are excellent “how to solder” videos available.

Time

I want to see the time. I want to be able to set it so that when the motorhome grinds over a time-line I can reset it.

FUTURE EXPANSION: Set the time based on the GPS location.

Dimmable

The ability to dim a screen is not a given. Driving I-77 in southern Virginia in the fog will teach you things you cannot learn in any other way. That screen needs to be dark!

Where's Dad? (not yet functional)

I want to let my kid know where I am. Sometimes I am on a coddiwomple.

I want to serve a web page that tells my kid where I am and where I am headed. I want him to be able to click on a web page and find me. Or at least my motorhome.

OBD data (not yet functional)

I want to monitor OBD data and not just get an idiot light. I want a full, extended long-winded discussion as to why the engine light just came on. I’ve not programmed that yet. The plan is for the OBD button to go red when there the OBD throws an error. Click on it and it will come up with what is being reported.

I don’t know if I will do this. There are now some $80 solutions that seem perfectly suited. I have a few other projects that will come first and that might preclude OBD data.

Why two Raspberry Pis?

In the end, the Pi that can crash is the one in the back. I need my analog speedometer. The front Pi is for a mission-critical function. Second, I am too lazy to run numerous wires all over the motorhome.

The front shows speed and demonstrates what the back has seen. If something goes wrong on the back, the front troopers on. That is why I have a front and back Pi.

Which Pi to use?

I use whatever is latest and greatest. I have, on other occasions, used Pi Zero Ws to do the work of a Pi [enter latest high-end model here]. Do what you can afford.

Interfaces

If you have not worked with temperature sensors or GPS, Mosquito servers and clients to talk between the computers, if you have not sent a text to your cell phone, THEN KNOW THAT YOU HAVE MOUNTAINS TO CLIMB. If you are an experienced Python programmer all the better. If you have decided to learn Python with this project, good luck. I sure did learn a lot.

Temperatures

Temperatures are monitored over one-wire devices. I use them with the W1thermsensor library. Easy. I have not figured out where to put a sensor to measure outside temperature. The current dash gives an outside temperature and I have found that adequate. Not sure I really need to replace what is already there.

GPS

If you have never gotten into the head of a GPS device, prepare to be astounded. Friggin’ awesome amount of data is coming your way. How you use it is up to you.

Each Pi "pings" home through a text

Each Pi sends a text at midnight to advise it is alive and the IP address it is using.

So here is the code

I have left the Python source code at:

http:/www.wolfswords.com/motorhome/roadtrek-PiRV/PiRV.py.source.txt

http:/www.wolfswords.com/motorhome/roadtrek-PiRV/PiRVREAR.py.source.txt

http:/www.wolfswords.com/motorhome/roadtrek-PiRV/PiRVexample.html

Have fun!

Here is a date: November 22, 2020. If a lot of time passes, know that I am probably not going to remember the code. In like 1984 and 1997 I wrote help files for problems that happened to a motorhomes I owned back then. I regularly get “can you help me” email on those posts. I cannot. I don't remember much and don't have the motorhome anymore.  In like manner here is a list I cannot help you with:

  • Learning Python

  • Learning W1Themsensor, GPS, GPIO, etc.

Please don’t ask, “Why isn’t my temperature sensor working?” Google is your friend.

Breaking down a problem

When I got stuck here is how I worked through it: I started a new editor and make a copy of the program. In this test copy I delete out as much of the code as I can leaving ONLY the code for the problem. I run one function for one purpose. That often leads me to the solution.

I am not really interested in making my code sleeker, cleaner, faster. It works and I have other projects I want to start. That’s why the code is … rough.

Have fun!

Conclusion

So there you go. The best explanation I have. If you have a question on this and you are asking it decades into the future I won't be able to help you. Right now, as I write this in 2020, I am getting questions on a Winnebago Chevy P-31 chassis modification I did decades ago. I remember very little of this. So when someone says, “What is the resistor you used …” my answer, if any, will be, “I did that in 1989. I have no recollection. Good luck, Steve”. Sorry. Or, I may be dead.

The internet has memory and that memory looks current. That memory is probably is not current. Good luck to you. Good programming!

Programmed during the 2020 coronavirus plague.

Steve Wolf

PiRV@mail.W8IZ.com

November 22, 2020




Return to Motorhome Index     email.gif (5698 bytes)      Email Steve Wolf, W8IZ