"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
"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.
Hardware:
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.
Software:
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