Great points, I do think that a professional PID is a better and more efficient way to build a sous-vide. I wanted to build something from basic components instead as part of the learning process, and also to allow me customize the logic via Bluetooth.
Regarding the steak, I find that a 1 inch thick steak only takes ~45 minutes to reach the target internal temperature. This scales dramatically as the steak thickness is increased, however.
because the temperatures inside are below instant pasteurization temperatures (158°F) though, reaching the target is insufficient. They need to be held at the target temperature over a period of time to guarantee sufficient pasteurization.
I'll also agree that the learning process can't be beat the way you did it.
Be careful with Arduino libraries. If you are trying to learn something, it's usually better to write your own, or look at really good code.
Case in point, PIDLibrary, I'm looking at the PIDCompute function, line 57:
ITerm+= (ki * error);
That's not how you deal with I. You are supposed to accumulate (integrate) the error and multiply by Ki only for the final PID addition. You don't want to accumulate your errors multiplied each time by Ki, it makes no sense.
That is actually done intentionally to allow for changing of the tuning parameters while the PID is running.[1] The author of the PID library has a full writeup on the design of the algorithm.[2]
There is a tutorial on Adafruit[1] that makes use of that library to build a sous-vide cooker using a rice cooker or crockpot. I built one a little over a year ago. It was a great learning exercise. The real issue with it is that (at least with my setup) it takes forever to preheat (~1 hour to get to 130°F). I speed this up using boiling water. At higher temperatures (170°F+) it still takes a long time to heat, even with this method. I also use a pump to improve the temperature consistency, which is not mentioned in the tutorial. I recently got an Anova Immersion Circulator, which is much easier to use.
Steak is generally safe to consume at any temperature as long as the exterior surface (where any nasties would live) is seared, which takes it well above 158*.
Yeah - I've had plenty of steak tartar, and it is delicious. The difference here is that with steak tartar, you know you are eating raw meat. With Sous Vide, you assume you'll be eating safe meat. It is doubly important in sous vide to reach pasteurization because of the extended period of time spent in the bacterially friendly temperatures.
Its a good point about the exterior surface, but the blog post also shows him cooking a hamburger.
Regarding the steak, I find that a 1 inch thick steak only takes ~45 minutes to reach the target internal temperature. This scales dramatically as the steak thickness is increased, however.