A open controller for electric kilns.
A firing profile is described like this:
Segment number | Rate (°C / hr) | Target temperature (°C) | Segment time (min) | Hold target temperature (min) |
---|---|---|---|---|
1 | 100 | 250 | 150 | 0 |
2 | 200 | 850 | 180 | 0 |
and the same profile in JSON:
{
"name" : "Raku",
"1" : {
"rate" : 100,
"target" : 250,
"hold" : 0
},
"2" : {
"rate" : 200,
"target" : 800,
"hold" : 0
}
}
but currently each profile is stored as a SPIFFS file like /prog/<profile name>
and contains <rate>,<target>,<hold>{,<rate>,<target>,<hold>}
, for example:
80,250,0,50,800,0
The last open profile and the state of that firing is stored in /state/current
and contains:
<profile name>
<segment number>
If segment number is zero it means the firing profile is not running.
Temperature readings are taken every second. These sliding average over the last 5 seconds is shown as the live temperature. The average over one minute is added to the graph and used for determining if the relays should be on or off during the next minute. The graph on the TFT shows one Y-pixel per 50 degrees and one X-pixel per 3 minutes.
- ESP32
- MAX31855 (MAX31855KASA+T)
- K-type thermoucouple rated for atleast 1300 degrees
- 1.44 inch TFT (128x128px) (optional)
- 3 x Solid State Relays (one for each phase of the three phase 400VAC kiln)
Pinout
TFT RST -> IO4
TFT CS -> IO5
TFT DC -> IO2
TFT CLK -> IO18
TFT MOSI -> IO23
TFT MISO -> IO19
SD SCLK -> IO14
SD MOSI -> IO13
SD MISO -> IO12
SD CS -> IO15
I2C SDA -> IO25
I2C SCL -> IO27
I2C CS -> IO26
SSR -> IO33
BTN 1 -> IO34
BTN 2 -> IO36
Temp sensor -> IO35
With help from https://drive.google.com/file/d/1gbKM7DA7PI7s1-ne_VomcjOrb0bE2TPZ/view and https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
Hardware test setup:
The user interface is served through a captive portal on the ESP and uses websockets and client side javascript. The user can;
- perform CRUD operations on firing profiles
- start and stop a firing profile
- start and stop the kiln manually The AP name is "Golem-AP" and the password is "golgolem".
Valde Ionic med Vue utifrån dessa; https://betterprogramming.pub/react-native-vs-flutter-vs-ionic-46d3350f96ee https://www.codeinwp.com/blog/angular-vs-vue-vs-react
- Add file browser for uploading, downloading, viewing and editing raw JSON-files. ACE might be a good editor to embed.