Gas sensing in the winter months

In cold weather, the ‘Hot Dawg’ goes into full effect, and as my smart sensors have shown, the exhaust leaks more than desired. A Co2 rise with each burn cycle leads to a question, what else may be leaking?

This winter, the hallway heater had completely failed off, and although later traced to a bird nest blocking the exhaust, there was a short time where the hallway was tasting direct exhaust. I felt a need to monitor the gasses that may be trapped, and this project was born.

I started with an ESP32 using ESP Home, which offers ADC & GPIO ports for multiple sensors in parallel. At the edge, a grab bag of basic gas sensors that cover the market.

For the first build, I started with 6 sensors, chosen by ChatGPT to be the most complimentary for detecting natural gas leaks with unburnt impurities. Sadly, power utilization indicated double the current draw than ESP32 recommends, so half had their power deactivated, later removed, to ensure long lifespan.

This proved helpful, as the ESP32-C6 has limited ADC channels, so only 3 could be sampled, although all 6 are capable of GPIO. At this point, I didn’t trust the preset GPIO threshold, and wanted to monitor the raw ADC values to better understand the environment. The C6 model was an existing device from a Bluetooth proxy setup, still used for Bermuda Trilateralation.

The final form resulted in a reduction to 3 sensors, which perfectly reached the 0.5A limit for the board to function happily.

Putting the other sensors to use, I snagged a Xiao ESP32-S3, more aligned to ADC sampling than updated Bluetooth and Wi-Fi standards, and developed a breadboard prototype.

The output of both devices is a bit of noise, with little trust in the ADC alone, and without calibrating the potentiometer against a known source, I didn’t trust the GPIO. Creating a derived sensor in Home Assistant to capture the rate of change proved to be the best indicator, removing the need for calibration, and triggering only on strong positive movement.

Now it was time to verify functionality, and prove a leak would be caught. Initially, I ran a test with a burning flame, with limited response across the ADC values. Temporarily putting safety on the ‘back burner’, I ran the gas alone, and quickly saw what I was looking for, a strong rate of change.

In the end, this proved to be a workable solution, and its implementation was short lived, as I solved the birds nest exhaust issue as the weather calmed. It was a fun experiment to see just how much unburnt fuel exists in what’s being piped outside.

With the project nearing completion, I retired each sensor pack to a final resting place. The breadboard with 6 sensors above the ‘Hot Dawg‘, and the more polished PCB with 3 sensors at the edge of the stove. I feel confident they will have an enjoyable retirement, never to be heard from again, but in the off chance the cat turns on the stove, someone will be watching.

The added benefit of using ESP Home to implement, is simple YAML configuration of additional capability, that augments this retirement. As part of my Bluetooth Proxy network, each ESP32 functions as a repeater and sniffer for the distributed Bermuda BLE Trilateration network, giving more coverage and points of redundancy.