A DIY WiFi sensor to measure the size and temperature of rising bread.
Watch your boule from the bar
Bread Detector visualizes the shape and internal temperature of your dough as it rises, so you can do other things and check up on it from your phone once in a while.
You can build it yourself! We used the great -- and free -- Phant data logging service and the low-cost Sparkfun Thing platform. The raw parts cost about $60. It's a lot of fun to build and play with. You get to eat a lot of bread. We hope you enjoy it,
BATT= Lithium Ion BatteryMCU= [ESP8266 Thing] (https://www.sparkfun.com/products/13231)TEMP= [Waterproof Temperature Sensor] (https://www.sparkfun.com/products/11050)DIST= [Infrared Distance Sensor] (https://www.sparkfun.com/products/12728)
And some tools you might already have to make it easier
- [FTDI Basic Breakout] (https://www.sparkfun.com/products/9873) for programming
- breakaway headers
- hookup wire
- 3-pin JST cables / terminals
- a breadboard
- 3 resistors:
R1= 2.2kΩR2= 1kΩR3= 4.7kΩ
We've made a Sparkfun Wist List with all the parts in it (including things you might already have), for convenience.
The distance sensor is analog and goes to the MCU's ADC. It needs a 1/3rd voltage divider resistor circuit, as the ESP8266's ADC only reads 0 to 1V:
DISTVo(yellow on JST) toR1toMCUADC.MCUADCtoR2toMCUVin.DISTGND(black) toMCUGND.DISTVcc(red) toMCUVin.
The temperature sensor needs a (potentially removable) pull-up resistor, and then connects to the MCU's digital pin 12.
TEMPDQ(yellow) toR3toTEMPVdd(red).TEMPDQalso toMCU12.TEMPGND(black) toMCUGND.TEMPVdd(red) toMCUVin.
The MCU has a soldered-on JST connector for the battery. The battery is charged by the micro-USB jack on the MCU, and seems to last a long time.
BATTtoMCUJST connector
The MCU has a set of six pins for the FTDI programmer (which you only need during the first-time setup, and not afterwards)
- FTDI breakout board into the
MCUheader pins
We made a very simple breakout using a thru-hole breadboard, with JST connectors for the two sensors:
These steps just have to happen once. Once you've programmed the ESP8266 and set up your data stream, you don't need to do any of this again.
- Fork or clone this repository
- Follow all the steps on this page of Sparkfun's guide to setting up the Arduino environment for the ESP8266.
- Create a free stream on data.sparkfun.com with the fields
distance,raw_distance, andtemp. - Create a new sketch in Arduino, and add 3 files from the master branch of this repository: the
BreadDetector.ino,OneWire.handOneWire.cpp. - Create a new file called
auth.hin the sketch and put the following in it, replacing with your details
const char WiFiSSID[] = "your wifi SSID";
const char WiFiPSK[] = "your wifi's password";
const char PublicKey[] = "your data.sparkfun.com's public key";
const char PrivateKey[] = "your data.sparkfun.com's private key";
- Either set up a GitHub Page for your forked repository, or place the index.html that is in the
gh-pagesbranch on a publicly available web server. (You can also just openindex.htmllocally on your computer to see the graph.) - In that
index.htmlfile, change thepublic_keyvariable to yours, otherwise, you'll only see our bread. - Connect to the FTDI programmer and program the sketch to the ESP8266 in Arduino.
You should make something nice to hold the distance sensor over the rising bowl. We took a plastic mixer "splash guard" and cut a little slot for the distance sensor. The temperature wire just snakes in and gets put under the dough. You want the distance sensor in the middle, with at least a few inches over the dough. (The minimum accurate reading seems to be about 0.8 inches from the sensor, maximum is about 12 inches.)
- Set up your bowl with the sensors in the right place. Maybe have some dough in there.
- Flip on the power switch of the ESP8266
- After a few seconds, watch your data come in on your data.sparkfun.com stream: you can look at the raw data on the site itself, or navigate to your own copy of the visualization.
- The data should update every 20 seconds.
- The graph will stop updating after 17 hours of rising, so you don't get old rises in your graph from the day before.
- If you add it to your home screen on your phone, you'll get a nice icon, mostly reminding you to make bread




