initial setup for pottery

pull/1/head
Peter Shanks 2019-01-03 18:25:49 +11:00
rodzic db303ed921
commit 2872d5d426
5 zmienionych plików z 43 dodań i 42 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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

Wyświetl plik

@ -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"))

Wyświetl plik

@ -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

Wyświetl plik

@ -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";