My BBQ cooking monitor - ESP8266 dual K-probe via MAX31855 & OLED display

good stuff!


function is designed to detect rapid rises in temp to warn you about it…

Any chance of posting your code?

Thank you for sharing your BBQ cooking monitor. I am a potter that would like to use this application to meassure the heat inside the ceramic kiln. The range of temperature that I need to monitor is higher that a food oven. I am talking about 1250ºC - 1300ºC. Is it possible to use the ESP8266 .ino file as it is or should I make some changes to get proper readings?
Looking forward to reading your suggestions.

you just need to have proper sensors, the esp will read to 1800’C if you have the proper sensors & MAX31855 sensor chip

1 Like

Hi! Great project! I’m thinking of doing one myself, with the exception of using the Wemos D1 mini pro I have not found a proper use for yet. Any pointers on how to make this work for the Wemos? All the same and just use different pins? I’m a bit of a noob…


You can compile as generic ESP8266 for WeMos so there wouldn’t be any changes required and you don’t want to get into a habit of using the D references on the boards.
Just make sure you wire it up to the GPIO’s in the sketch as per the pinout at

Btw, are you using the Adafruit MAX31885-library? Or something else?

heya - i am using the GitHub - engineertype/MAX31855: Arduino library and example code for Maxim's MAX31855 Thermocouple IC library

i am also using U8g2lib.h library for the OLED because i am using a 1.3in SH1106 display instead of the 0.96in SSD1306 (Adafruit copy)

Awesome, Dave! I’m a starter with the Blynk and very impressed by your “Grill monitoring” setup.
When I just copy-paste your code to the new Arduino project, I’ve got a lot a errors and missing libraries (such an “RunningMedian.h” etc.). Could you. please, make a full list of necessary libraries? Thank you as advance!

I will let Dave hold your hand if he wants… but you really need to understand a little bit about basic Arduino programming before you can get very far with “Copy / Paste” coding :stuck_out_tongue_winking_eye:

All those libraries needed are already clearly listed in the code… and if you don’t know how to find & add them into your IDE… then you will have much bigger issues then just needing this list.

1 Like

Got it, Gunner! Thank you for advice.

I guess, there is some error with Adafruit Max31855 Library. I’ve added that library and have a lot of errors such "‘class MAX31855’ has no member named ‘readThermocouple’
Looks like we need other Max31855 Library than original Adafruit Max31855 Library.

Gotcha! The problem was in original Adafruit Library (sic!). Please, use that Library - and everything will be ok! Thank you again, Dave and Gunner.


Hey Dave, great project btw.

Well, I would like to ask you about how did you control the temperature of the heater? I currently new with this and my final project is kind of the same as yours and I added a new feature which is the smoke process after the grilling. Please let me know how to control the temperature if you won’t mind. I really appreciate it.

heat control is all manual, sorry mate…

I am new to the site, but have a similar project I am starting. If this should be posted elsewhere, please advise.

I want to measure temperature with two probes and when those temps exceed a certain degrees between the two, it will send an alarm or have an LED flash.

Anyone want to chime in to help me out?

Ricky T

Definitely should work mate!

Do you think I can use a battery to power it so it’s portable?

of course!

there are virtually endless possibilities…

Hi Folks,

Thanks for this Dave - I’m on my way - I have my parts!

I’m a bit confused with the MAX terminology - can you tell me how these map? The sketches talk about defining:

on the MAX breakout board I have
VIN ( yup, 3/5v in - easy!)
3V0 (not connected - correct?)
GND (yeap, ground - got that)
D0 (is this MISO?)
CS (well - I assume that connects to CS
CLK (that leaves, SCK?)

I ask, because even using the default sketch I get no values (well, 0) but no errors.

#include <MAX31855.h>

// Pin connections.  
#define MISO 12
#define SCK  13
#define CS   14

// Create the temperature object, defining the pins used for communication
MAX31855 temp(MISO, CS, SCK);

void setup() {

I’m just trying to figure out where I have gone wrong… bear in mind with these photos I may have them in the wrong pins…

New photo by Brendan Smith

New photo by Brendan Smith

Thanks for reading. Can’t wait to get this built!