The Glen the Stove Project at its core is a data logging experiment that reads and records (via Twitter) 5 temperature sensors. It involves software written in Processing, a PicAxe microcontroller, a few buttons and a small LCD screen. A small "control panel" allows the user to input preferences and data, as well as houses the micro controller and associated parts.
To be quite clear here: This instructable is NOT a step-by-step instruction on how to replicate exactly what I have done. To be honest, I can't imagine many people with a 1937 coal stove in there house, let alone a MacGyver'ed heating system attached. On the other hand, this project contains many "chunks" or "systems" that can be studied, reused, cut and pasted etc. The system of sending updates to Twitter will be the same no matter if you are keeping an eye on the temp of a stove or the dryness of the dirt around a plant. Same goes for the system that allows the microcontroller to talk to the Processing app. This is a very universal, reusable "system" that can be used with a lot of different projects.
**NOTE*** This instructabe is not really for beginners. An assumption is made that one following these instructions has a basic knowledge of microcontrollers, java or processing and simple wiring (sensor to ADC for example)
**ALSO NOTE** Being that this project is not one that someone would follow exactly, and staying with the idea of showing the important "chunks" of the code, I have recorded a few video walk-throughs showing the code I used and where to find the relevant parts. This, I think, is going to be the most helpful to anyone looking to do something similar to what I have done.
By the by... I am Chris the Carpenter and I can be found at Rocket Brand Studios.
Step 1: Let's Get Started
First: Watch the Intro Video
Second, look at pictures of the control panel:
Step 2: Get Processing to Talk to Twitter
This is the worst step by far. This fought me quite a bit when I got my system set-up, but the good news is that you only have to do this once. Now, I am no expert in this and some of what got me where I wanted to be was trial and error. That being said, I do however know where to look to find someone who does know how to do this. After much searching, I found RobotGrrl who has the single best walk through on the subject. There is a video below containing a rambling explanation of my version of her software and it should be watched. --It gives a good overview on the process and will at least show you "where to look" within the code. That being said, I would highly recommend that you take a quick trip to RobotGrrl's website.
RobotGrrl (The Blog)
RobotGrrl (Direct link to the twitter stuff)
My Rambling Walk Through:
**NOTE** The files needed for the API Setup are attached
ToArduinoAndTwitter_v02.zip is RobotGrrl's bundle (and is the one you should use)
glen_set_upRedacted.pde is my version and shown in the above video.
Step 3: The Processing Side
Code to initiate twitter on start-up
Code to send a tweet (do a status update)
Code to catch a tweet (do a search for keywords and DM's)
Code to send and receive serial data from a microcontroller (picaxe, arduino, prop, bs2 etc)
Code to timestamp stuff.
Etc. etc. etc.
Please see the enclosed video. Watch what you want and take from it what you want. There should be something for everyone in there --like I said, take what you would like and disregard the rest.
**NOTE** I have no idea how to do that screen-grab video capture thing.
Step 4: Control Panel Connections
I mentioned at the start that this instructable assumed a basic knowledge of electronics. It does not get much more basic than this. All information here can be found in the Picaxe Manuals (which do have pictures)
Picaxe Manual (How to plug stuff in)
I do feel (without sarcasm) I should note a couple things: I used the HSER pins and the HSER commands on the picaxe. This allows you to interrupt when the chip gets some serial data. I used the "standard" picaxe "sync cable" and the download circuit to interface the picaxe to processing.
Step 5: PicAxe Code
At the end of all this is a PicAxe 28x2 in the little control box. As I said before, this chip just sits there, reads the ADC's and the state of the input buttons and waits for Processing to ask for a data packet.
It's code contains:
Stuff to make the LCD go
A bunch of data for the "menus" and preferences
Code to deal with the serial data coming in
A pretty good example of how to accept serial data (in the background) and interrupt
A little bit about how the scratchpad works and how to put and get data from it
Step 6: Conclusion
Like I said in the beginning, this Instructable was never designed to be a step-by-step allowing people to replicate exactly what I have done. However, I would hope that people working on similar projects can glean something --anything from my code and explanations.
I wish you all, Happy Building.
Runner Up in the
Adafruit Make It Tweet Challenge