Creating a Linux based PID
I figured I’d make a post for my new project, creating a Linux-based PID. Not sure why, I’m waiting for xCode 4 to download and I have nothing else scheduled. Basically a PID is something that can measure the heat of an object (coffee roaster, espresso machine) and control the heat by activating the heating element and controlling it more finely than the simple thermo switches the machines come with (thermistor? I don’t know).
Basically at this point I have gotten quite far in the project, maybe half-way. I’ve researched the chips, built the circuit board, and learned enough about Linux development to get an application more or less complete. It compiles, and appears to measure the temperature at the end of the wire and appears to activate an LED which we can imagine is the electrical supply.
Guess what, Linux dev is hellish. Mac OS X does a lot of the header garbage for you. Not to mention this thing they call documentation. I now have about a dozen forum/mailing l list posts throughout the internet. Don’t search for them, I didn’t get any responses.
Here is a rundown of the project, and why it’s maybe not the best idea. There are existing 200-300$ PID kits on the market, I could have been up and running 70 hours ago.
1. HEADLESS. I did not plan this project based on having a LCD screen or any buttons. I still have the GPIO space to include up to three buttons and one pot, but I don’t have an absolute certainty of needing it. I want to not have to work with the espresso machine’s case or damage how it’s built.
Pretty much 90% of the PIDs out there include a big ugly box that slaps onto the side of the case, or others make you modify the case to include it in the front. For my project I want to have it be entirely invisible. You won’t know it’s there unless you notice…
2. THE ANTENNA. It’s based on a wireless router that runs OpenWRT. So it can either be its own access point, or connect to your network as a client. It will have a little wifi antenna out the back and feasibly can have a HTML interface too if I get around to it.
I had considered a HTML interface before, but I’ve reconsidered since I think this will ultimately be just for me. Having a Linux system means I can have a network-time synced device that is on all the time. I can have cron scripts or other scripts that activate the heater or do other tasks. But the end result for the interface will be in my hand.
3. iPHONE. If you have a wifi enabled PID device and you’re already an iPhone developer… why not combine the two? You can have a very advanced configuration utility that is easily configurable just by getting the iPhone involved. It sounds like something that I can probably do quite simply really. Some of the setup might be kind of manual, kind of broken, kind of specific… but why not?