Skip to content

Introduction

Carl edited this page Apr 19, 2022 · 4 revisions

1. Introduction

I smoke large cuts of meat (eg brisket, pork shoulders, etc) on my trusty 26-year old Webber Kettle Barbecue grill. The finished product has been fantastic and has received rave reviews from family and friends. Yet, depending on the meat cut and many other complex factors, the “low and slow” method cooking times can span as long as 10 to 15 hours and requires ongoing monitoring and adjustment. During a long cook, I find myself checking the digital thermometers on the grill at least hourly and adjusting the Webber grill vents as necessary to maintain desired cooking performance. Clearly a remote temperature monitor would make monitoring easier and there are a number of commercial models available that do just this, albeit often costly, although perhaps another case illustrating the truism “you get what you pay for”.

While considering buying a commercial monitor, I immediately wondered if I could build a bespoke barbecue temperature monitor that is lower cost yet specifically tailored to have the particular features I’m interested in. Now retired, I’ve used the extra time to learn electronics and microprocessor coding as well as pursue other technology / Maker hobbies. This project presents a great learning (or frustration?) opportunity to gain further knowledge across a number of electronics, microprocessor and web technologies.

I fully recognise that this project in itself is nothing new or particularly innovative; the Internet is chocka-block with similar temperature monitor projects, often much more sophisticated and cleverer than what I have in mind. However, rather than just blindly copying and assembling another’s project, working up my own hybrid project forced me to climb a steep learning curve as well as providing the opportunity to adapt the best ideas I find in my research and then bring them together into my project to meet my personal objectives.

I'm taking the time to thoroughly document my work as I find it helps me retain what I leaned plus it becomes a useful reference to refer back to. Even better if perhaps this project description ends up being helpful to someone else!

The downside is that being inexperienced means that “you don’t know what you don’t know”. These "unknown unknowns" are a major obstacle and it is quite likely that better solutions may be available that I am simply not yet aware of. I also make lots of mistakes although arguably this is the best way to learn! However, a long journey starts with a single step, so let's get after it!


Postscript: I started this project way back in 2016, at a time when it was overly ambitious for my skill levels. I worked intermittently on it over the years and I am only now finished it in 2022! Sorry, life got in the way! 😃

As such, many things changed over this time period, both in my technical understanding and also with some of the underlying technologies. As I went along developing this project and testing out the design, I revised some of the technical design choices that I made early in the project.

For example, after some experimentation, I ditched my plans to use the ESP8266's onboard ADC and chose to go with a external I2C ADS1015 ADC module. Not only did I improve measurement accuracy, this greatly simplified my entire project as I no longer needed to level shift voltages to fit the ESP8266's 0-1V ADC requirement and I also was able to drop problematic multiplexing solutions forced on me by the single analog pin on the ESP8266.

Rather than delete the documentation for this now redundant design work, I've moved these sections into an Appendix for future reference.

Clone this wiki locally