kopia lustrzana https://github.com/botheredbybees/kilnController
initial setup for pottery
rodzic
db303ed921
commit
2872d5d426
42
README.md
42
README.md
|
@ -1,11 +1,10 @@
|
|||
picoReflow
|
||||
==========
|
||||
kilnController
|
||||
==============
|
||||
|
||||
Turns a Raspberry Pi into a cheap, universal & web-enabled Reflow Oven Controller.
|
||||
Of course, since it is basically just a robot sensing temperature and controlling
|
||||
environmental agitators (heating/cooling) you can use it as inspiration / basis
|
||||
when you're in need of a PID based temperature controller for your project.
|
||||
Don't forget to share and drop a link, when you do :)
|
||||
Turns a Raspberry Pi into a cheap, universal & web-enabled kiln Controller.
|
||||
Forked from the reflow oven project: [picoReflow](https://apollo.open-resource.org/mission:resources:picoreflow) which I found through a blog post on [succulent ceramics](http://succulentceramics.com/2016/10/07/wifiraspberry-kiln-controller/)
|
||||
|
||||
I used this to add a firing schedule control to a little pottery kiln I picked up second hand. The kiln is 10A/240V rated to 1000 degrees C. It had a door switch and a basic thermostat which allowed for 25%, 50%, 75% or 100% power but no timer. With the kilnController I can now set it up for a bisque or low temerature glaze firing and leave it to its own devices, checking progress every now and then on my mobile phone or PC.
|
||||
|
||||
**Standard Interface**
|
||||
|
||||
|
@ -17,9 +16,10 @@ Don't forget to share and drop a link, when you do :)
|
|||
|
||||
## Hardware
|
||||
|
||||
* Raspberry Pi (Rev 2B)
|
||||
* MAX 31855/6675 Cold-Junction K-Type Thermocouple
|
||||
* GPIO driven Solid-State-Relays/MOSFETs
|
||||
* [Raspberry Pi Zero W](https://raspberry.piaustralia.com.au/raspberry-pi-zero-w) - any pi will do but these are about $15 here in Australia
|
||||
* [MAX 31855](https://www.adafruit.com/product/269) Cold-Junction K-Type Thermocouple (about $6 on eBay)
|
||||
* [K-Type Thermocouple Sensor](https://www.google.com/search?q=K-Type+Thermocouple+Sensor+1250+1M+SY+site%3Aebay.com.au) -100°C to 1250°C ($3 on eBay)
|
||||
* Solid State Relay Module [SSR-25DA](https://www.google.com/search?q=Solid+State+Relay+Module+SSR-25DA+25A+%2F250V+3-32V+DC+Input+24-380VAC+Output+pOK) 25A /250V 3-32V DC Input 24-380VAC Output (again, about $6 on eBay)
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -63,8 +63,8 @@ If you also want to use the in-kernel SPI drivers with a MAX31855 sensor:
|
|||
|
||||
### Clone repo
|
||||
|
||||
$ git clone https://github.com/apollo-ng/picoReflow.git
|
||||
$ cd picoReflow
|
||||
$ git clone https://github.com/botheredbybees/kilnController.git
|
||||
$ cd kilnController
|
||||
|
||||
## Configuration
|
||||
|
||||
|
@ -76,14 +76,16 @@ All parameters are defined in config.py, just copy the example and review/change
|
|||
|
||||
### Server Startup
|
||||
|
||||
$ ./picoReflowd.py
|
||||
$ ./kilncontrollerd.py
|
||||
|
||||
### Autostart Server onBoot
|
||||
If you want the server to autostart on boot, run the following commands
|
||||
If you want the server to autostart on boot, run:
|
||||
|
||||
sudo cp /home/pi/picoReflow/lib/init/reflow /etc/init.d/
|
||||
sudo chmod +x /etc/init.d/reflow
|
||||
sudo update-rc.d reflow defaults
|
||||
sudo nano /etc/rc.local
|
||||
|
||||
add the line:
|
||||
|
||||
`sudo python /home/pi/kilnController/kilncontrollerd.py &`
|
||||
|
||||
### Client Access
|
||||
|
||||
|
@ -105,8 +107,6 @@ GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
## Support & Contact
|
||||
## picoReflow
|
||||
|
||||
Please use the issue tracker for project related issues.
|
||||
|
||||
More info: https://apollo.open-resource.org/mission:resources:picoreflow
|
||||
For more info on the parent project, see picoReflow: https://apollo.open-resource.org/mission:resources:picoreflow
|
||||
|
|
|
@ -13,8 +13,8 @@ listening_ip = "0.0.0.0"
|
|||
listening_port = 8081
|
||||
|
||||
### Cost Estimate
|
||||
kwh_rate = 0.26 # Rate in currency_type to calculate cost to run job
|
||||
currency_type = "EUR" # Currency Symbol to show when calculating cost to run job
|
||||
kwh_rate = 0.28 # Rate in currency_type to calculate cost to run job
|
||||
currency_type = "AUD" # Currency Symbol to show when calculating cost to run job
|
||||
|
||||
########################################################################
|
||||
#
|
||||
|
@ -26,11 +26,11 @@ currency_type = "EUR" # Currency Symbol to show when calculating cost to run
|
|||
# can use whichever GPIO you prefer/have available.
|
||||
|
||||
### Outputs
|
||||
gpio_heat = 11 # Switches zero-cross solid-state-relay
|
||||
gpio_heat = 23 # Switches zero-cross solid-state-relay (was 11 initially)
|
||||
gpio_cool = 10 # Regulates PWM for 12V DC Blower
|
||||
gpio_air = 9 # Switches 0-phase det. solid-state-relay
|
||||
|
||||
heater_invert = 0 # switches the polarity of the heater control
|
||||
heater_invert = 0 # switches the polarity of the heater control (was 0 initially)
|
||||
|
||||
### Inputs
|
||||
gpio_door = 18
|
||||
|
@ -52,7 +52,8 @@ gpio_sensor_data = 17
|
|||
spi_sensor_chip_id = 0
|
||||
|
||||
### amount of time, in seconds, to wait between reads of the thermocouple
|
||||
sensor_time_wait = .5
|
||||
sensor_time_wait = 10
|
||||
# was .5
|
||||
|
||||
|
||||
########################################################################
|
||||
|
@ -71,7 +72,7 @@ pid_kp = 0.5 # Proportional
|
|||
sim_t_env = 25.0 # deg C
|
||||
sim_c_heat = 100.0 # J/K heat capacity of heat element
|
||||
sim_c_oven = 2000.0 # J/K heat capacity of oven
|
||||
sim_p_heat = 3500.0 # W heating power of oven
|
||||
sim_p_heat = 2000.0 # W heating power of oven
|
||||
sim_R_o_nocool = 1.0 # K/W thermal resistance oven -> environment
|
||||
sim_R_o_cool = 0.05 # K/W " with cooling
|
||||
sim_R_ho_noair = 0.1 # K/W thermal resistance heat element -> oven
|
||||
|
@ -83,6 +84,6 @@ sim_R_ho_air = 0.05 # K/W " with internal air circulation
|
|||
# Time and Temperature parameters
|
||||
|
||||
temp_scale = "c" # c = Celsius | f = Fahrenheit - Unit to display
|
||||
time_scale_slope = "s" # s = Seconds | m = Minutes | h = Hours - Slope displayed in temp_scale per time_scale_slope
|
||||
time_scale_profile = "s" # s = Seconds | m = Minutes | h = Hours - Enter and view target time in time_scale_profile
|
||||
time_scale_slope = "m" # s = Seconds | m = Minutes | h = Hours - Slope displayed in temp_scale per time_scale_slope
|
||||
time_scale_profile = "m" # s = Seconds | m = Minutes | h = Hours - Enter and view target time in time_scale_profile
|
||||
|
||||
|
|
|
@ -21,8 +21,8 @@ except:
|
|||
exit(1)
|
||||
|
||||
logging.basicConfig(level=config.log_level, format=config.log_format)
|
||||
log = logging.getLogger("picoreflowd")
|
||||
log.info("Starting picoreflowd")
|
||||
log = logging.getLogger("kilncontrollerd")
|
||||
log.info("Starting kilncontrollerd")
|
||||
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.insert(0, script_dir + '/lib/')
|
||||
|
@ -38,10 +38,10 @@ ovenWatcher = OvenWatcher(oven)
|
|||
|
||||
@app.route('/')
|
||||
def index():
|
||||
return bottle.redirect('/picoreflow/index.html')
|
||||
return bottle.redirect('/kilncontroller/index.html')
|
||||
|
||||
|
||||
@app.route('/picoreflow/:filename#.*#')
|
||||
@app.route('/kilncontroller/:filename#.*#')
|
||||
def send_static(filename):
|
||||
log.debug("serving %s" % filename)
|
||||
return bottle.static_file(filename, root=os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), "public"))
|
|
@ -1,31 +1,31 @@
|
|||
### BEGIN INIT INFO
|
||||
# Provides: Start reflow server
|
||||
# Provides: Start kilncontroller server
|
||||
# Required-Start: $remote_fs $syslog
|
||||
# Required-Stop: $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Start Reflow Server
|
||||
# Description: picoFlow On Raspberry Pi
|
||||
# Short-Description: Start Kiln Controller Server
|
||||
# Description: kilncontroller On Raspberry Pi
|
||||
### END INIT INFO
|
||||
|
||||
|
||||
#! /bin/sh
|
||||
# /etc/init.d/reflow
|
||||
# /etc/init.d/kilncontroller
|
||||
|
||||
|
||||
export HOME
|
||||
case "$1" in
|
||||
start)
|
||||
echo "Starting Reflow Server"
|
||||
/home/pi/picoReflow/picoreflowd.py 2>&1 &
|
||||
/home/pi/kilnController/kilncontrollerd.py 2>&1 &
|
||||
;;
|
||||
stop)
|
||||
echo "Stopping Reflow Server"
|
||||
reflow_PID=`ps auxwww | grep picoreflowd.py | head -1 | awk '{print $2}'`
|
||||
reflow_PID=`ps auxwww | grep kilncontrollerd.py | head -1 | awk '{print $2}'`
|
||||
kill -9 $reflow_PID
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/reflow {start|stop}"
|
||||
echo "Usage: /etc/init.d/kilncontroller {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
|
@ -4,8 +4,8 @@ var graph = [ 'profile', 'live'];
|
|||
var points = [];
|
||||
var profiles = [];
|
||||
var time_mode = 0;
|
||||
var selected_profile = 0;
|
||||
var selected_profile_name = 'leadfree';
|
||||
var selected_profile = 2;
|
||||
var selected_profile_name = 'bisque';
|
||||
var temp_scale = "c";
|
||||
var time_scale_slope = "s";
|
||||
var time_scale_profile = "s";
|
||||
|
|
Ładowanie…
Reference in New Issue