We both got up early in the morning to shovel before work. Of course, it was still snowing in the morning.

When we got home nothing looked like it had been shoveled. I guess it's the thought that counts?

In case I missed the first alert, I got two more. So three flood advisories, in a row. My phone cycled through these three alerts every few hours.

They're not actually for Wyoming. They're for other cities in the greater Grand Rapids area but apparently the application on my phone doesn't want to distinguish.

I am happy to get weather alerts on my phone, but today it was just a little crazy.

It's a rainy January day.

A lot of components for arduino projects have arrived in the last few days. This is the last of them for awhile. An RFID & NFC shield. It came with a programmable card and if I really enjoy the project I make with this and want to add some additional cards, Adafruit has a nice assortment to choose from.

I don't have a phone that supports NFC so while it's a fun idea, it's not really anything I'm going to play with immediately. The RFID though, that is what I'm interested in.

I'll have to spend some time and get this hooked up to an arduino and an ethernet shield soon.

I spent a chunk of the afternoon cleaning. Vacuuming and organizing all kinds of things, including the office where I appear to have collected quite the collection of boxes.

I made several different chicken dishes so we'll have meals for the week. Which is good, since I'm fairly certain I'll be unmotivated to cook later this week.
I also poked around a little with wiring the arduino to a wii nunchuck. I haven't actually been able to get the nunchuck to do anything, like turn on a light or move a servo, but I am able to read data from the nunchuck. So that's something.

I played just a little bit with the stepper motor and servos that arrived yesterday in the mail. I mostly just wanted to confirm everything was working properly.
Both the stepper motor and the servo motors worked just fine.

I think I may try to hook a laser pointer up to one of the small servos and have it move back and forth a little, to mess with the cat. Something probably similar to this instructable, but probably not as involved.

A few months ago I listened to this Making Arduino Controlled Robots webcast and eventually a small robot is what I'd like to make.
I also, on a whim, thought about testing an IR receiver I picked up awhile back. I'd like to use it to control a cool color-changing remote controlled cloud lamp I saw on instructable.

Lucky for me, I found a recently posted tutorial that used both the LED segment and the IR receiver I have. So I just wired everything up and used the example sketch. Both items were tested and working in a matter of moments.

I love when things go quickly and easily.

Another day of more snow, which means shoveling tomorrow morning once it's done falling. It also means staying indoors tonight and enjoying the warmth.
A package I ordered awhile back finally arrived, and with it a cache of small components for arduino projects. Tiny servo motors, a stepper motor, and a few other things. I'll finally be able to test out the motor shield I assembled earlier.

I've been staying warm this winter by walking through the skywalk. Usually in the winter I head over to the Grand Rapids Public Library and read at lunch, but I just haven't felt much like it lately. So instead I've been catching up on a bunch of podcasts and enjoying the journey through buildings in the skywalk.

It's been a steady stream of light snow showers for days now. We probably only have three or four inches total, but it's been enough that every morning we get up and clear the driveway and sidewalk.

It's a chilly one. So there wasn't a whole lot of stuff outside I wanted to do. Outside of shoveling, I pretty much stayed indoors.

It's been a pretty mild winter so far. Hardly any snow and a few 50 degree days. But not today. Today is all about the snow!

For Halloween last year I had a heck of a time trying to get sound out of the Arduino without a wave shield. There were a few other alternatives but I eventually ended up using a custom PCM library to get the sound I needed. Still, a wave shield would make future projects a lot easier. Just plug in speakers and go.

So I bought a wave shield and, similar to the shield last week, it came unassembled.
The whole assembly was pretty quick. I'm really enjoying soldering. It's like assembling a metal Lego set!
And, just like it should, it plays WAV files off of the SD card plugged into it. I look forward to using it in a future project!

I've been playing on and off with graphing the data from the Arduino-Powered Wireless Temperature Sensor. I read that the charts in a Google docs spreadsheet would automatically update when new data is added, so I thought that might be an easy approach. So I modified the python script and started logging data to a Google docs spreadsheet.

For some strange reason the chart doesn't update automatically. Despite choosing an entire column, the data gets defaulted to only currently filled cells. So as new data is written to the spreadsheet, the chart isn't being updated. I'm sure it's a simple fix, but right now I just don't see it.

I've had these OpenSource RF wireless arduino shields for awhile with the intent of logging temperature differences throughout the house. Admittedly, I've been dragging my feet getting things set up. With cooler weather, however, I've been motivated time to poke around and get things set up.
I used the Adafruit DHT11 library and source code to log the temperature. The whole DHT11 tutorial, including a wiring diagram, can be found here. The basic setup is pretty easy.

Note: You cannot upload a sketch to the arduino if the serial switch is on the RF wireless shield is ON

Once I got the shields communicating with one another, I install pySerial. It's a module that allows python to read from the serial port, which is what the arduino is sending data through.
Next I wrote a small python script to read the data from the arduino and write it to a CSV file. The intent is to eventually graph the data and watch trends over time.

At first I had some issues with data being clipped while reading from the two arduinos. Originally the arduinos were just blasting the data and I had the python script set up to catch it. That didn't work 100% every time so I had to come up with another solution.
I modified my approach by having each arduino sit patiently waiting to hear something. I then set up python to send a specific message to each arduino. Since they're each set up for a different specific character, there should be no conflict with with messages being sent.

So once an arduino receives it's specific message, it repsonds with the humidity and temperature. The python script then logs the data in a CSV file.

Once I felt comfortable with how the python script was working, I placed two arduinos around the house.
Then I hooked up the Wireless RF USB dongle that I came with the arduino shields to the Raspberry Pi. It took a moment to figure out the tty assignment in Linux. Here's what I did.

Determining tty assignment for RF USB dongle in Linux:
  • go to dev folder (type cd /dev at the command line)
  • type ls and read the list. There should be a ttyUSB0
    • If you're unsure you can always unplug the device and run ls again in the /dev folder
Once I had the assignment figured out, I updated the python script with the path to the USB dongle.

Since I want the data to log automatically at certain intervals, decided to use cron. I did had some issues getting a python script to execute properly from a cron job on the Raspberry Pi, so instead I created a shell script to execute the python script. I'm not entirely sure why python partially executes in cron, but for now this work around is solves the problem.

Overall the system has been working pretty good for the last week. The next step is to set up automatic data graphing. I've had some minor success, but I'm not 100% sure how I want to proceed quite yet.

If you're interested, I've tossed everything up on github.

Software Requirements:
Materials Used:

Ok, not a new live dog, but a stuffed animal. Chris picked up a new little brown dog to hang out with the stuffed dog I had as a baby.

We watched the Michigan State of the State Address together today. Leki makes a pretty good lap warmer if you don't move too much.

Well, I am making progress still with the arduinos. The Raspberry Pi didn't crash and data did get logged throughout the day. Oddly I do have one arduino that disappears intermittently. It's the same one and I'm not sure why. They're literally sitting right next to each other at the moment. I also see there's a slight difference in the temperature and humidity readings as well.

So because of the missing data, this evening I swapped out the arduino for another one to see if that makes a difference. Technically if the arduino can't read the sensor it should send back an error, so I'm taking the lack of data to mean the device just isn't responding some of the time and it's not a faulty sensor.
I also poked around a little with the Raspberry Pi. I have another temperature sensor plugged into a breadboard that is sitting on top of the device. I don't have the Pi logging a reading at any specific interval. I'm more or less just playing with it.

I also played around with the python code Adafruit provided with their Raspberry Pi drivers and tutorials for the temperature sensor.
Just a few quick cut and pastes and I could get an Arduino logging temperature to a google docs file. It's obviously not formatted exactly right, but it's a start. I'll probably mess with that a little as well eventually. I'm mostly just excited at the idea of being able to write to the file with python. Since I'm more or less teaching myself the language, I can be easily impressed and excited about things I'm sure most python users know all about.

Eventually I'll do something other than coming home every evening and messing with these little things, but for now I'm just a wee bit obsessed. I feel like I'm really close to getting the data logging right.

Of course there's that whole issue of actually live graphing it that I'd like to do as well.

I've been poking around for well over a week with these RF shields and accompanying USB dongle, trying to get temperature and humidity data recorded in a reasonable format. It's been a little frustrating but it's also been an opportunity to learn more about serial communication.

I'm finally getting closer. I may actually have the data formatted better. Nothing seems to be getting lost in transmission anymore (previously words were being cut off). I did crash the Raspberry Pi last night with a python script I was running, so I've tweaked it and I'm running it again. Other than the crash, things seem to be moving in the right direction.

I guess I'll know in a few days when I let things run, just to ensure there are no issues. Hopefully all goes well and I can put these arduinos in different parts of the house.


I've had two items from Adafruit hanging around for awhile waiting to be soldered. One of them is the Pi Cobbler, which is essentially a break out board that lets me use the general input/output pins on the Raspberry Pi. That allows me to hook up all sorts of things, like a temperature sensor.

I practiced soldering a little on a soldering kit I had then moved onto the actual components. Despite having a fan going and the window open, it was still a little strong smelling. As you can see I tried to mitigate that with a painters mask, but of course that didn't do much.

Soon the component was assembled and I hooked it up to the Raspberry Pi to test.
As you can see, everything worked and I was able to get a temperature reading from a sensor I wired to the Pi Cobbler. Success!
The next item I had to solder was an Arduino Motor Shield. This little thing will allow me to construct a small robot. There were a lot more components for this project.
And thanks to a magnifying glass and some patience...
The whole thing was assembled in no time!

It's January 12th and it's going to be a warm one. We decided to take advantage and get a project done. Shelves!
We went to the hardware store and picked up some wood.
Chris cut the wood on his table saw...
Nailed some boards into the closet...
And after a little while we had shelves! I mostly just hung out and helped when needed. Chris has a more in-depth post on what the shelves are for on his blog.

I'm taking a short break from knitting my scarf (which is almost now half way done) to knitting a blanket. I'm sure normally a blanket takes a long time to knit, but with size 50 knitting needles and 4 strands of bulky yarn, this one shouldn't take too long. Specifically it's the 6 hour afghan pattern from Ravelry.

And yes, it's the same basic blanket that I made for my parents last year.

I think the next year I try this I'll try some bulky wool yarn as opposed to the Lionbrand Homespun. I just know the yarn I want is a lot more expensive and this pattern takes about 8 skeins of yarn total.

Made some cookies this evening. Chocolate chip and sugar cookies, to be exact. Originally I was going to use cookie cutters, but like usual I got too lazy when it came time to roll out the sugar cookie dough.

Back in June of 2012 I first started working on the initial Snail Mail Notifier, inspired by an RF set up. The RF version got tossed early on. It wasn't ideal because it required one arduino to stay in the mailbox at all times.
So I started on an ethernet edition in July inspired by this nice video out on MAKE. This route has worked out much better, especially since we have a mailbox on our house.

I'm happy to say we have now been consistently using the Snail Mail Notifier since late October 2012. After a minor tweak to the code due to massive email spam, the setup has been working perfectly. We have it sitting on top of a pedestal sturdy cardboard box we picked up at a local craft store.
Here's how it's set up:
A snap action switch is installed in the mailbox. The wires run in to the house and are hooked up to the arduino just inside the door. When the mailbox is opened three things happen:

  • A push notification is sent to the iOS app Prowl. 
    • Note that the avviso library does allow this to be configured with android as well
  • An email is sent to Chris and I letting us know mail has arrived (thanks to some php code Chris whipped up)
  • A green LED status light goes on (great visual cue for when neither of us have checked a device lately)

The arduino then waits for 5 minutes and checks to see if the mailbox is still open. If it is, another round of notifications get sent out. The whole thing will repeat this 5 times then stop until the device is manually reset (there's a simple reset button on the arduino). The 5 notifications in a row is a great way to know if there is a large envelope or package stuffed in the mailbox.
Since we don't have a router in our living room, I had to figure out a way to make this wireless. The XBee and other wireless shields for the arduino are kind of pricey so I opted for another solution - an ethernet shield and the TP-Link TL-WR703N router. As you can see, it's a relatively small wireless router and it only costs around $21. And since Deal Extreme sells a nice ethernet shield with the correct W5100 chipset for $14, this wireless solution was much cheaper.

Admittedly configuring the router was painful until I found this very helpful instructable (and specifically these wireless client configuration example). Now our Snail Mail Notifier is completely wireless!
As you can see, everything fits very comfortably in the box.
updated design
schematics courtesy of Fritzing

And the actual wiring on the arduino is pretty easy as well. 

All in all I'm pretty happy with the set up. There are only two major things that I feel like could really be improved upon. I plan to get to them eventually, but I'm in no rush. They are: 
  • configure the arduino sketch to reset the counter for the next day automatically. Right now the device has to be manually reset each day. Since I pass right by it, hitting the reset button isn't a big deal, but eventually I'd like this automated. 
  • decoupage the box
If you're interested, you can download the project here. The only thing not included is the php script, but there are some great examples on the net for that.

Hardware Used
Additional Software Used

Since I work downtown and it's cold out, I use the skywalk a lot in the winter. That means I'm in DeVos Hall on the second floor any day they don't have it roped off.

They rotate the art out every few months. They're all interesting, but of all the paintings I've passed so far, this one is the one I like the most. It's probably the sad lucky cats.