No Hookups, No Problem: The ESP32 Sentry Keeping Watch Over My Travel Trailer
Photo: ESP32 electronics project inside camper trailer off-grid, via i2.wp.com
There's a special kind of anxiety that comes with boondocking in the Nevada high desert. You're 40 miles from the nearest gas station, your solar charge controller is doing its best impression of a mood ring, and you have absolutely no idea how much propane is left in those tanks. RV manufacturers solve this with a patchwork of analog gauges, LED indicator strips, and — if you're lucky — one bluetooth battery monitor that only works if you stand next to it.
I decided my camper deserved better. So over three weekends and roughly $140 in parts, I built a self-contained sensor network that reports everything that matters — house battery voltage, propane level, fresh water, gray water, and whether the door is latched — to a single dashboard on my phone. No RV park Wi-Fi. No cloud subscription. No dealer-installed $900 monitoring system.
The Architecture: Three Nodes and a Brain
The whole system breaks down into three ESP32 nodes and one gateway, all talking over LoRa in the 915 MHz ISM band. If you've read my earlier LoRa mesh experiments, you know I'm partial to radio that doesn't care whether there's a router within a mile.
Here's the layout:
- Node 1 — Battery Bay: A 10-node ADS1115 ADC reading the battery bank through a voltage divider, plus an INA219 for real-time current draw. This is the heart of the system.
- Node 2 — Tank Deck: Capacitive water-level sensors epoxied to the outside of the fresh and gray tanks, plus a hall-effect sensor on the propane gauge.
- Node 3 — Entry: A reed switch on the main door and a TMP117 for interior temperature.
- Gateway: An ESP32 with an SX1276 LoRa module, parked near the camper's dinette, bridging everything to my phone over a local Wi-Fi hotspot and serving a dashboard from a self-hosted ESPHome instance.
Why LoRa instead of plain Wi-Fi? Aluminum. Travel trailers are basically Faraday cages with wheels. My 2.4 GHz signals barely made it from the battery bay to the dinette, but 915 MHz punched through the skin without breaking a sweat, drawing a fraction of the power.
Powering It Without Powering It Down
The battery node runs straight off the house bank through a small buck converter, sipping about 12 mA on average — a rounding error against a 200Ah lithium setup. The tank and entry nodes run on 18650 cells topped up by 2W solar pucks I salvaged from garden lights, because the whole point of this rig is that it works when the camper itself is dark and locked up in storage.
One lesson learned the hard way: deep-cycle house batteries sag and recover in ways that will make a naive voltage reading lie to you. I ended up averaging readings over 60 seconds and only reporting when the value changed by more than 50 mV. That single change cut my radio traffic by 90% and made the battery graph actually readable.
Propane Gauges Are a Lie (Until You Make Them Tell the Truth)
The stock propane gauge on my trailer uses a magnetic float that swings a needle across a dial labeled E to F, and it has been confidently wrong since the Bush administration. Instead of replacing the tank hardware, I cracked open the gauge housing and mounted an AS5600 magnetic rotary encoder to read the needle's position directly. The ESP32 converts that rotation into a percentage and transmits it every ten minutes.
Is it precise? No. Is it accurate enough to know whether I can run the furnace tonight? Absolutely — and that's the only question that matters at 2 AM in the desert.
Water Tanks: The Capacitive Workaround
Sticking a probe inside a potable water tank felt like a bad idea, so I went external. Three capacitive sense pads per tank, epoxied to the outside wall at empty/half/full heights, detect the dielectric change of water behind the plastic. Calibration took an afternoon of filling and draining with a five-gallon jug and a lot of muttering.
The gray tank sensor has already paid for itself twice — once catching a slow drain leak before it turned into a soaked subfloor, which any RV owner will tell you is the horror story you never want to live.
Highway Vibration: The Great Filter Purge
Here's what the forum posts don't tell you: the road is a shakedown cruise for your solder joints. My first build died 90 miles into a trip to Moab when a dupont connector worked itself loose from the vibration of I-15. Everything since then has been soldered, heat-shrunk, and secured with adhesive-backed zip tie mounts. Any board not screwed down to something structural gets a dot of hot glue on its standoff screws.
Temperature swings are the other quiet killer. A camper parked in Phoenix in July then driven to Flagstaff puts components through a 50°F swing in an afternoon. Conformal coating on the exposed boards and leaving the enclosure lids vented (with Goretex patches, because condensation) has kept the fleet alive through two seasons now.
The Dashboard
The gateway serves a lightweight web page over its own hotspot — no internet required. Open a browser from the campsite, and you get battery voltage and current, tank percentages, propane level, door state, and interior temp, with a week of history logged to flash. When I do have connectivity, it forwards alerts to my phone: door opened while we're on a hike, battery below 30%, gray tank at 90%.
What I'd Do Differently
If I rebuilt this tomorrow, I'd skip the separate gateway board and put the LoRa radio on a single T-Beam at the dinette. I'd also use lipo-backed nodes with deep sleep everywhere except the battery monitor — there's no reason the door sensor should burn 12 mA when it could burn 50 µA.
But that's the joy of building it yourself. When something doesn't fit, you don't wait for a firmware update from a company that's forgotten your product exists. You flash a new build at the picnic table, and the rig gets a little smarter.
Total damage: about $140 in parts, three weekends, and one very satisfying dashboard that works 40 miles from anywhere. My dealer's monitoring package wanted $900 plus a subscription. I'll take the picnic table version.