Incubator. Refrigerator. Both actually, and connected (and configurable) over http to the LAN.
The project, whatever it will finally be called, is coming together. In the past two days I got the relays wired up and tested, the temperature sensors hooked up, wrote the logic for controlling temperature, and made it so you can post a new setpoint via the website hosted on the pi. This is actually a big deal because it can be used as a framework to access the pi’s GPIO over the LAN, or potentially over the web (provided there was an intermediate server). I am sure people have done this, but it is good experience to do it, and it is fun. This could be good for home/lab (is there a difference?) automation or a slew of other projects!
The last few details to attend to before testing with cells are to:
- mount the sensors and electronics to the structure of the fridge
- add some lights inside so you can see when you take a picture
- shakedown for 48 hours or so
These are the relays. I chose on/off relays over FETs or some kind of proportional control because they should make less heat (very low ‘Rds on’ in FET terminology), and because the temperature inside is not particularly critical, so on/off control should work ok. Plus, the code would be easier to implement on the pi, since it would only need two digital io pins, instead of a separate DAC. They are arranged in kind of an H-Bridge configuration for reversing (or turning off) the flow of current through the peltiers. The screw terminals make it easy to wire to the peltiers, which are stuck into the cooler. Air-soldering this thing on would have been a huge pain and I probably would have ended with some holes melted into the incubator.
These are the sensors I am using. They are AT30TS750 temperature sensors by Atmel (I like them). They have up to 9-12 bit precision, and talk over I2C. Unlike he potentially useless and annoying one wire sensors, which each have a hard-coded ID address, these are user-selectable with jumpers to pins 5-7. So I can set “inside sensor” to be 0b1001111 and then if I build 3 more of these, I don’t have to spend time correlating the address to the location.
This is the state of the incubator. It has moved from ugly styrofoam container to slightly more functional ugly foam container. One nice thing about the foam is it is easy to cut it to make channels for wires. The hope is to give it a decent finish with foam-core (just for looks), plastic or MDF once it is done which will hide the foam, although that will depend on how much I like it. Another thing to check out is the new fan and fan support. The support is made of foam core, which is a material I really like. It can make lightweight structural elements like the support in a pinch, and it looks clean (provided you are careful). For this application it was much faster than 3d printing, and easy to work with without large tools (unlike sheet metal). One of the next steps is to move all the wiring to the back of the box.
note: The arduino is there just because I was playing with the cc3000 module- it is not related to the project.
I added this picture because it shows the tiny workspace I use to fab this stuff. Even with a small space you can get stuff done.
I ended up using a pin expander after I melted some GPIO pins on the pi. Did you implement a PID controller?
No PID controller on this right now. PID with relays ticking on and off would drive me insane. SSRs or FETs wouldn’t do that, but you know what they say: “The best relay is the relay you already bought”. A PID loop might be a little overkill, since bacteria wont be bothered by the temperature ringing or overshoot.
The other thing is my temperature sensors are also probably not the best for measuring air temperature, so even if the temperature were precisely on the dot, it would not necessarily be accurate to other sensors/measured temperatures, e.g. two identical sensors might read 1C different.
I read you on the pin expander with buffered I/O. I have shorted my pi no fewer than 6 times today. The over-current protection is very good, thankfully, and it shut off without damage. No melting yet!