-
Where are we now?
09/30/2014 at 18:58 • 0 commentsTechnically, nowhere. I say that because I can't consider this project to be at a 1.0 state until I'm automatically controlling and monitoring the dehumidifier. Even without Twitter integration (which I think I've figured out - you can follow the kiln at @SuburbanKiln) and data logging to the SD card and display of the data via a web browser (which I've got partly figured out), I'm still not at a point where I'm leaving the kiln to run 24x7. So what remains? Here's the list:
- My #1 concern, you ask? Fire. The fact is, I'm dealing with a dehumidifier that I've modified into a state that it was never intended to be in, I'm controlling mains voltage with a microprocessor, and I'm pulling a heavy current load through the Arduino. I'm really paranoid about having a massive fuel source (the boards) right next to a highly 'modified' electronics stack. I'm thinking I'm going to put a smoke alarm in the kiln itself. Then, at least I'll have a few seconds notice before my house goes up in flames....
- The code isn't mature. I've done coding in various languages, but C is not my language of choice. I'm poking around in forums, on the Arduino.cc site, in some old books I have, and anywhere else I can get my hands on, and the code is slowly getting there. But it still needs work. Here are the tasks I need to implement:
* Integrate the RTC. I currently have a DS1302 clock running, and I'd really like to use that for timing, rather than the millis() functionality.
* SD card data logging. I've managed to get the kiln on Twitter, which is obviously a function of my success in getting a web connection. However, I'd really like to do data logging onto the micro SD card that is on the Ethernet board. I've read all over about how this is possible, I just haven't done it yet. The thing is, the Arduino environment is really hard to do troubleshooting on. Ideally, you would change one thing and then make sure it ran. However, the one change takes a while to implement, as the compilation and upload can take 30 seconds or so. My tendency is to make many changes, and then see how they work. When they don't work as planned (a virtual inevitability), I'm not sure which change caused the issue. I'll get through it, I'm sure.
* Web server with SD card data. Once the data is logged into a datafile, I'd like to be able to hit the Ethernet card with a client request and have it dump out the file. Again, this doesn't appear to be hard to do, but I need to figure it out, and it'll be one slow step at a time.
* Transition to MEGA. I was complaining to a friend about the limited programming space on my Duemilanove, and he asked what other options there were. I mentioned that I have a MEGA 2560 that has many times the space, but that would require me to remap any pins, etc. He told me to man up and do it. He's right. First, I realize that there are likely many, many things that I'm doing in my code that could be optimized; however, in my case, I'm not looking for optimized code. I'm looking for dry wood. Long term, maybe I'll work to refine the code, but for now, it's all about velocity. Anyway, the transition to a MEGA gives me a LOT more flexibility, especially to implement a method to directly measure the water content of the wood. I'll be working it this weekend.
-
What remains to be done (AKA the hard stuff)
08/19/2014 at 19:17 • 0 commentsSo now that the hardware is apparently working, I have to write the software. I also have to derive the algorithm on how to move from air temp/humidity to the wood water content. This (I know) isn't an exact science. Long term, I plan to read the water content of the wood directly; however, that's not in the cards for this go-round.
So for now, I'm focused on writing code that will:
- Keep track of a target air relative humidity level
- Use a dehumidifier to modify the air humidity level, which should then drive the wood water content
- Tweet the status of the system (which will also be my data logging functionality)
- Accept user inputs to modify the target air humidity level, as well as turn a circulating fan on and off
The key piece will be learning how fast I can drop the air humidity without causing issues with the wood. I can see a few loads of ruined lumber in my future as I optimize this thing....
-
Learning new stuff every day
08/19/2014 at 19:00 • 0 commentsAs I mentioned in a previous post, I don't have all my shields stacked up - I'm just running wires from the Arduino to the Ethernet shield, and out from there to the LCD shield, the buttons, and the RTC. For the life of me, though, using this setup, I couldn't get the Ethernet shield to pick up an IP, and subsequently, nothing else would work in the sketch. Finally, I figured out that I have to run connections from the Arduino ICSP header to the Ethernet shield, and then everything is good. I was under the impression that the ICSP connections were just duplicating pins that I had already connected (10-13, power, ground), but apparently not. One of these days when I have a bunch of time, I'll dig into what's really going on, but for now, it's enough to say that it's working.
-
The Downside of Arduino...
08/04/2014 at 02:13 • 0 commentsLast night, I hit a wall with the Arduino. Specifically, I ran out of memory. Yeah, I know, I've got a lot going on; the real time clock, the SD card, the LCD shield, I'd like to post to Twitter, the temp/humidity sensor, some buttons, etc. Anyway, this all came crashing down last night when the Arduino IDE delightedly told me that I was out of space.
A little digging later, and it looks like I'll be losing the SD card functionality, and maybe the RTC. My thought process is that I can use Twitter for my data logging and repository, and that will include a time stamp on the tweet. I can use the millis() functionality for my timing, as I don't think I'll be running any given program for more than 48 days. I was just hoping to have something a little more refined, with time stamps and an SD card file that I could dump to a local device when I hit the IP address of the board. Yes, I know I could get a Mega up and running (and I even have one laying around), but that would require a lot of rework and rethinking. For the moment, just eliminating some non-necessary functionality is the way I'm probably going to go.
-
Control 'Enclosure'
07/29/2014 at 17:13 • 0 commentsLast night, I took the time to set up the 'enclosure'. I put that in quotes because, as I note in the project details, the sides are open to the air. Long term, I'l probably have to fix that, but I'm going to keep it as-is for a while. The enclosure is just two pieces of acrylic. I cut them to size on my bandsaw and then drilled holes for standoffs, wire ties, bolts and buttons. I did learn as I proceeded; specifically, a split point drill bit is way better than a brad point drill bit. If you don't know the difference, you're probably OK using whatever drill bits you have laying around, as most drill bits you'll buy are split point. However, for the sake of posterity, just know that a brad point drill bit causes acrylic to chip out at the exit hole. Live and learn :)