My family has been hosting a Thanksgiving lunch for several years. I always cook the turkey on the weber grill. Indirect heat, 8 minutes per pound -- but you need to watch the temperature closely to determine exactly when done. Remote reading grill thermometers are handy but I've found them seriously lacking in reliability. I've used the Weber version and some other remote-reading version, all good for one use. Failure modes tend to be not pairing at all, reading zero, not reading at all, etc. New batteries don't help. Ugh. This year my thermometer decided to quit working within minutes of putting the turkey on the grill. It went from high 30s to 299F and then back to 31 and then 299F and there it stayed. I didn't have any other options so I just let the bird go for the calculated time. Results were -- no surprise -- a slightly over-done turkey. And a resolution to make my own thermometer for next time. I monitor many metrics around my house with MQTT to a local CentOS7 server and display via Grafana, obviously this is the minimum functionality a reasonable thermometer should have! Because most (all) of the software already existed I used a WeMOS D1 Mini ESP8266 board, a SparkFun MAX31855K thermocouple breakout board, a food-safe K-type thermocouple, a 1-wire temperature sensor for ambient temperature, four AA batteries, a waterproof box, and the ESPEasy firmware. Price -- a couple of evenings of messing around and maybe $40 for the MAX31855 and thermocouple. The waterproof enclosure was $5 on sale and the rest were in my junkbox. The WeMOS D1 is just one example of a board that holds an Espressif ESP8266 SoC module, a 32-bit MCU with 2.4GHz wifi module -- a bunch of flash, interfaces and developer tools all for a few dollars. I had one on-hand. The NodeMCU boards are a similar spin with a few more pins -- still around $10. The ESPEasy firmware flashes easily to the ESP module, allows configuration over-the-air and -- well -- if it doesn't do what you want, download the source code from github and fix it. The MAX31855K connects via SPI to the ESP8266. The OLED display uses I2C. Software was configured to read and report every 10 seconds. I didn't have a turkey to test on, but I did watch the temperature on part of my wood stove and later in the oven with a pizza. Batteries last about 26 hours with no attempt at reducing power consumption. No further attempt will be made to increase battery life as the turkey won't be on the grill for more than four hours anyway. The grafana display shows ambient 1-wire temperature (left-Y) and thermocouple temp (right-Y) along with the top display with current thermocouple temp. It's easy to configure grafana to alert me via slack when the turkey hits some arbitrary temperature -- close to done perhaps? So going forward I'm sure I'll find some shortcomings of this system, but at least I have the ability to debug any one of them at a moment's notice. Failure of my data collection system? Check the built-in webpage or look at the local display. Failure of the electronics? Just hook the thermocouple to my voltmeter thermocouple probe input. Failure of the probe? Maybe I'll have another on hand; unlike whatever came with the cheap grill thermometers a J-type thermocouple is a STANDARD. One will work just like the next. This page last modified Mon Dec 30 14:49:40 CST 2019 by timc! |