Gray Wolf Labs / Raspberry Pi / .NET

PetGuardian

Final hardware assembly

I started PetGuardian to check on Kaisa, my Golden Retriever, from work. I wanted to see the conditions around her resting area in my 1996 Land Cruiser and get a view of the cabin. That grew into a Raspberry Pi carputer with vehicle telemetry and trip recording. Most of the dashboard and firmware code is in place, and I’m fitting and wiring the remaining hardware.

Checking on Kaisa

I wanted to see how the conditions in the rear of the truck changed over time and when the sensors last reported. I also considered a heated blanket for Kaisa’s resting area in cold weather. That idea has its own temperature monitoring and power requirements.

THE INSPIRATION

Meet Kaisa

These are a few of my favorite moments with Kaisa—the reason PetGuardian began.

Kaisa relaxing in deep snow.
Kaisa in the snow
Kaisa looking out of a window.
Kaisa at the window
Kaisa resting on a rug near a rope toy.
Kaisa and her rope toy
Kaisa lying with her paws out in front of her.
Kaisa at home
More photographs from home ↗

Cabin sensors and cameras

SubsystemComponents and role
Cabin temperature and humidityDS18B20 temperature probes for individual spots and an SHT30 for ambient temperature and humidity. I wanted a reading near the rear platform where Kaisa would lie.
Gas sensingI included MQ-135 and MQ-9 modules in my sensor experiments to look at changes in the cabin readings.
Thermal cameraI explored the 8 × 8 AMG8833 array and picked up a 32 × 24 MLX90640 to map temperatures across Kaisa’s resting area.
Visible-light cameraThe Raspberry Pi AI Camera uses a Sony IMX500. I wanted it for a normal cabin view and to experiment with on-camera detection of Kaisa. I also considered a pan-and-tilt mount.

Checking from work

I designed the nRF24 radio link around small status messages I could check from work, with cabin temperature, humidity, alerts, and the time of the last update. Once the hardware is together, I can test the range. I explored the remote camera view as a separate feature.

The carputer and vehicle node

The local dashboard targets a Raspberry Pi 3 Model B and a seven-inch touchscreen, with cabin sensors and vehicle data on separate nodes. The power design includes a CarPiHAT, ignition sensing, and an orderly shutdown, with battery draw while parked to measure during installation.

On the vehicle side I worked with a Freematics OBD-II adapter and an Arduino Mega, plus GPS and motion readings from an accelerometer and gyroscope. I set up the firmware and app around separate USB serial messages for GPS, motion, and node health. The dashboard can use those messages while I work through the Land Cruiser’s OBD compatibility.

Dashboard and trip recording

I used C# and Avalonia for the dashboard and set up a background recorder for timestamped telemetry, with GPS route exports as GPX and GeoJSON. I used AI assistance on the app refactor and firmware scaffolding.

← All projects