Category: Arduino and ESP8266
Hits: 7469
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive

"Simple" and cheap, a ~$/€ 12.= Sous-vide with a Wi-Fi WebSocker Server and PID control.
(There is also a "Luxe" ~$/€ 40.= Sous-vide pan Wi-Fi WebSocker Server
with circulation pump and an PID controlled accuracy of 0.06°C)
  Sous-vide cooking, hmmm: enjoy your meal - bon appétit - eet smakelijk 

(click thumbnail)

"Simple" Sous-vide cooking:
That's a Sonoff ESP8266 module with a waterproof DS18B20 Digital temperature sensor.
Programmable over Wi-Fi with a ESP8266 WebSoket 1) Server and a HTML5-Client.
- Use an electric kettle or rice cooker.
- Connecting to mains via the Sonoff.
- Hang the sensor in the water.
- Kettle/cooker power switch ON and set thermostat to maximum.
- Open SousVide.html in a modern browser (PC, Tablet, Smartphone).
- Connect it to the Sous-vide Server.
- Send command(s) to the Server (see Sous-vide cooking, last page)
- See the temperature chart in your Browser and wait for MP3 signal.
- Enjoy your meal - Bon appétit - Eet smakelijk.

1) WebSocket?: Real-time bidirectional event-based communication.

Very affordable on Banggood/AliExpress. For configuration examples see images and/or Fritzing (in the download).
Total cost: ~$/€ 12.00.

Download my SousVideSonoff project here.
Use the latest Arduino IDE and Arduino/ESP8266 libraries or, if you are an advanced programmer, PlatformIO.
Addresses of te used third-party libraries in de ino and header files.
The HTML is a simple test and demonstration of SousVideSonoff . Develop your own (graphical) user interface in HTML/JavaScript and use these filess as a guide.
The SousVideSonoff webSocket Server must have a static IP.

Edit this:
In SousVide .html: edit the edit this section, read readme.txt.
In SousVide .ino/h: edit the edit this sections.

PID control - Auto Tune PID:
The Arduino PID library a very good choice. I use this PID library in my Sous-vide projects, with an accuracy of 0.06°C.
The ideal Kp, Ki and Kd (PID) values are depending on the power and water content.
Run the Auto Tune command once.
Start from browser the auto tuning mode (± 1-3 Hours). The calculated PID parameters are displayed and saved in the Sonoff module.
If this module is used in different kettle/cooker then note the Kp, Ki, Kd parameters for each kettle/cooker and use command setPID.
Now the sous-vide pan is ready for cooking.

Sous-vide cooking:
First time use? Set the temperature scale to Celsius, Fahrenheit or Kelvin. Decimal mark: use "period/full point" (.) or "decimal comma" (,)(the program converts "," to "."). Do not use "Digit grouping". All times in minutes or use the hh:mm format (the program converts it to seconds).

command, arg1, arg2, arg3 | explanation and description
start,   temp, time, wait | start (delayed) cooking
                          |   temp: *C/*F/*K, setpoint
                          |     (min. 35.00/95.00/308.15, max 90.00/194.00/363.15)
                          |   time: mmm or hh:mm, cooking time
                          |     (mmm: time in minutes, max 4320 or 72:00)
                          |     Timer start after wait and reaching the setpoint
                          |   wait: mmm or hh:mm, delayed cooking start
                          |     (mmm: time in minutes, max 240 or 4:00)
                          |   The cooking time start after "wait time" and
                          |     the bath has reached the setpoint 
                          |   If the cooking time is finished, the cooking does not
                          |     automatically stopped.
                          |   Use the command "stop" to stop cooking.
stop,                     | stop cooking
modify,  temp, time       | changes during cooking
                          |   temp: +/- temperature correction offset  (format: n.n or -n.n)
                          |   time: +/- minutes correction offset
setPID,    Kp,   Ki,   Kd | manually fine tuning of the PID-controll Kp, Ki and Kd values
                          |   first, use the command "info" to obtain the current values
                          |   default values - Kp: 850.0, Ki: 0.5, Kd: 0.1 
auto,    temp             | AutoTune to get Kp, Ki and Kd PID-control values
                          |   temp: *C/*F/*K, setpoint as command start
info,                     | list all the values in browser
offset,   val             | sensor correction offset (calibrate)
                          |   val: +/- *C/*F/*K, max. or min, 5.0 per command
scale,    val             | temperature scale
                          |   val: 0/1/2 (*C/*F/*K)

Displayed time, graph and signal
  On delayed start: remaining time to start heating 
  On cooking:       remaining cooking time, graph (heating + temperature), mp3 annunciate on ready
  On ready:         elapsed cooking time, graph (heating + temperature), mp3 beep