Enable Javascript

Gebruikerswaardering: 5 / 5

Ster actiefSter actiefSter actiefSter actiefSter actief


"Luxe" and cheap, a ~$/€ 40.= Sous-vide pan with a Wi-Fi WebSocker Server,
circulation pump and an PID controlled accuracy of 0.06°C.
(There is also a "Simple" ~$/€ 12.= Sous-vide Sonoff
Wi-Fi WebSocker Server with an PID controlled accuracy of 0.06°C)

  Sous-vide cooking, hmmm: enjoy your meal - bon appétit - eet smakelijk  

(click thumbnail)

"Luxe" Sous-vide cooking:
That's a WeMos ESP8266 module with a waterproof DS18B20 Digital temperature sensor and circulation pump.
Programmable over Wi-Fi with a ESP8266 WebSoket 1) Server and a HTML5-Client.
- Connecting to mains.
- Hang the sensor and pump in the water.
- 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: ~$/€ 40.=.

  • Cheap 3L fries pan, max. 2000W ($/€ ~20,=)
  • 28YBJ-48 DC 5V 4 Phase 5 Wire Stepper Motor With ULN2003 Driver Board
    (Buy a 4096 steps type, or change my degrees and stepper code)
  • 220V, 2000W AC SCR (Volt and Watt depending on the used fries pan)
  • Mini USB water pump, 5V, 100°C
  • Micro switch
  • 5V DC power, min. 700mA
  • Waterproof DS18B20 Digital 1-wire temperature sensor
  • 4.7K resistor
  • 470uF elco
  • 100nF ceramic
  • 220V, 10A relay (.../WeMos/Solid state)
    (Volt and Amperes depending on the used fries pan)
  • WeMos D1 mini
  • PCB 7x9 cm
  • Various mounting materials and wires (see images)

The PCB is mounted in the modified housing of the fries pan.

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 SousVidePan. Develop your own (graphical) user interface in HTML/JavaScript and use these files as a guide.
The SousVide pan webSocket Server must have a static IP.

Edit this:
In SousVide .html: edit the edit this section.
In SousVide .ino/h: edit the edit this sections.

Degrees Stepper and AC SCR:
Temperature over/undershoot in sous-vide is a very bad thing, so we have to avoid that.
With a power of 2000 W, the water bath is quickly on temperature but hard to keep under control.
We control the heating current with a stepper motor and a SCR (AC power dimmer with a potentiometer) in four steps from high to low. On step four the temperature is controlled by PID control.
Before starting cooking or Auto-Tune PID you must find out the best values in rotation degrees for your own sous-vide pan.
In my own configuration: 1:endPos (fixed 264°), 2:190°, 3:120°, 4:40° (power stepper motor turn the potentiometer to [n] degrees)
Edit these values in SousVidePan.h:

const uint8_t ...
  LowB = 40, // heating AC SCR power turn degrees ... (higher value is more AC power)
  MidB = 120, // ...
  HighB = 190, // ...

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.
In my own configuration: Kp:1018.59, Ki:9.32, Kd:0.0.
If the four above degree values are ok then 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 WeMos module.
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