The Cooker Connector is finished! I am proud to present my final blog post of the Pi Chef Challenge, in video form. It's a summary of my project, and I take you through the steps of using it to cook pork chops. I hope you enjoy it!
Download the Code
I uploaded all of my code to GitHub: https://github.com/jschools/CookerConnector . However, I have redacted google-services.json and other firebase keys from the repo, since I don't want the general public to have access to my database. If you try to pull my code and build it yourself, you will need to set up a Firebase project and generate these files for your own database.
Video Voice-Over Script
Hi, this is Jonathan Schooler, and this is the final demonstration of my Cooker Connector, for the Pi Chef Challenge.
I designed and built a system based on the Raspberry Pi to assist me when I make smoked meats. The Cooker Connector monitors the temperature of the air inside the smoker, and the meat, and it sends this information to the cloud. I built an Android app that shows a real-time line graph of the temperature, and it also alerts me with a notification when the temperature goes outside of the normal range.
The app also functions like a remote control for the smoker. With a single tap, I can adjust the air intake vent to give the coals more or less oxygen. I can see the temperature and control the vent from anywhere, since it's on my phone, so I don't have to constantly walk in and out to check on it and fiddle with the vents.
This video is my final entry for the competition, and I thought, what better way to show off my final product than by recording a live demonstration of me using the Cooker Connector to smoke some pork chops.
First, I attach the cable brackets to the leg of the smoker. I designed the brackets to easily adjust so that the cables can point exactly at the correct angle for the vent handles. And, they also quickly detach so I can dismantle the smoker and clean it.
One end of the cable attaches to the vent handle using a quick link. This provides a sturdy, flexible, and adjustable connection.
I attach the other ends of the cables to the servo arm using key rings, so they easily attach and detach without the bulk of the quick link.
Next, I insert the temperature probes through the port in the side of the smoker and plug them into the Sensor Hub. I designed the custom PCB to support up to four thermistors.
Now with everything hooked up, it's time to plug in the power to turn on the Sensor Hub.
Now that the Sensor Hub is powered on, I can open the Android app and begin a cooking session. Here are the other sessions I have saved in the app. To create a new session, I click on the button in the bottom right and give the session a title.
Then, I select the inputs that I want to include in my cooking session. In this case, I know that I plugged the air probe into channel zero, and I plugged the meat probe into channel one, so I will name them accordingly. If I had multiple Sensor Hubs, they would all appear here, and I could include any input from any Sensor Hub in my cooking session. I hit save, and the new session appears in the list.
Clicking on the new session shows me that there is no data yet, and this is because I haven't started recording. Once I click the Resume button, the data starts flowing in. The Sensor Hub measures and records temperatures every 15 seconds, and the graphs here update in real time.
I will also take this opportunity to set up alarm conditions on each channel. I want to make sure this cook goes low and slow, so I'll set alarms that activate when the temperature rises above 250 degrees and below about 200 degrees. If this happens during the cook, I will get an alert on my phone. I also want to know when the meat is done cooking, so I'll set an alarm at 140 degrees on the meat channel.
Now it's time to get the coals going, so I'll light up some briquettes in the chimney and get the meat ready.
Here I'm applying a rub to the pork chops that has salt, pepper, onion powder, garlic powder, and smoked paprika in it. And I put way too much on, so I ended up scraping most of it off before I ate it, but it's a good rub.
When the coals are ready, I carefully turn them over into the base of the smoker and even them out. Then I assemble the rest of the smoker and let it warm up for a few minutes.
I add the smoking wood on top. In this case, I'm using two hunks of cherry and one hickory.
Then, I got a pan really hot and seared the chops for only about 20 seconds on each side. This gives them a crispier crust while still allowing the smoker to cook them all the way through slowly.
By now, the smoker has come up to temperature, which I have confirmed by looking at the graph in my app. I put the pork chops in the smoker, stuck in the meat probe, and closed the lid.
Now that I can trust that my smoker is at the right temperature, I don't have to keep going outside all the time to check on it. Now, I have time to do things like, wash the dishes, write a blog post, hang out with my family, and set the table just the way I like it.
Only when I receive an alarm, do I need to think about the smoker, and even then, I can quickly pop open the app, adjust the air vents, and get back to my day. This is especially helpful during 12-hour long cooking sessions.
Well, I finally got the alert that my pork chops are done, so I'll take one last reading with a handheld thermometer, and... yes! They're done!
Delicious. They turned out nice and juicy and perfectly cooked. This is partly because I never had to open the lid because I had my thermometers inside the whole time. I also was able to adjust the cooking temperature before it got too high or too low. I was also happy to know that adjusting a single air vent could affect the temperature, so I don't need to add servos for the other two vents.
Here is the temperature graph during the cook. You can see the temperature drop sharply when I opened the lid and put on the meat. You can see the air temperature rise fairly quickly after I replaced the lid, and you'll see the meat temperature slowly rise up to about 140 at the end. I opened the lid again and removed the meat probe, which caused the air temperature to drop, and the meat probe to come up to the air temperature. The air temperature slowly dropped during the cook, so I opened the air vent using the app around the 21 minute mark. You can see the temperature slightly rise at that point.
This concludes my final summary of the cooker connector. What you couldn't see in this video was all of the planning and system design work I did, and all of the programming, debugging, and testing. If you're interested, please read through my prior blog posts and check out my code on GitHub.
It's been a long few months putting this project together, and I'll finally be glad to have my nights and weekends back, but I had a blast, and I learned a lot. Thanks to element14 for choosing me as a sponsored contestant in the Pi Chef Challenge, and thanks to all of the other challengers in the contest. It's been interesting to read and keep up with all of your projects, so thank you.
I'm Jonathan Schooler, and this is the Cooker Connector.