Earlier quoted context omitted.
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…
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. I suppose you could simulate the PID function in software on the arduino though - http://playground.ardu…
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.