Introduction: WiFi Enabled Puppy Condo

About: I'm a problem solver

When I got my puppy in a box I didn't want him to be cooped up in only one box so I taped a few boxes together with "doors" from one to the other. From this I got the Idea to create a real miniature condo for my puppy. Since I've been working with electronics for years I had to incorporate them into the project.

The condo is equipped with a Spark Core to handle all the WiFi connectivity. For the lighting I used WS2801 LED strips so I could programmatically address each section of LEDs. The condo will also incorporate a few motion sensors, a camera, temperature sensors, a fan & whatever else I can cram into it.

Follow along as I create this awesome little condo! But if you're curious to see the final product then head to the end & view the images!

Thanks for viewing!

Step 1: Material/Planning

Material:

50~ 3/8th inch wood dowels

1 Sheet 1/8" Project Board

1 Sheet 5/8" MDF

WS2801 LED Strip

Spark Core

CAT5 Wire (use as separate wires)

3-4 Sheets of 24"x18" .093" Acrylic Sheets

Wood Glue/Liquid Nails/JB Weld/Super Glue

Paint

Tools:

Mini Table Saw

Shapeoko 2 CNC (Optional but I'd highly recommend)

C-Clamps

Palm Sander

Planning:

Before I started I did a little stress tests with the glues to see which one was the strongest & JB weld was the winner. After making sure that the glue was a good choice I opened sketchup to start modeling the condo so that I could make sure that all the pieces would fit perfect with just cutting them once. The video that is attached is an early render of what the condo was gonna look like, I ended up going with something simpler. The reason I went with the frame & the walls was to reduce the weight & so I could run wires through the wall. After I spent a good while on the model I started the construction.

Step 2: Frame

For the construction of the frame I referred to my Sketchup model to get all my dimensions spot on. Each floor is 10" tall so I cut all the 9 1/4" "studs" as they would be called in a real wall. After every piece I would cut I would file down the frays on the sides & give the ends a good texture for adhesion. I would put a dab of glue on the end of the dowel & use a piece of aluminum to square them off to make sure the top of the wall would fit correctly. At first I was hand cutting them by hand with a hacksaw until I walked into harbor freight & found this awesome mini table saw (http://www.harborfreight.com/4-in-mighty-mite-table-saw-61608.html). Then I was cooking with gas! I cut & assembled all the walls them I moved onto cutting the floors.

Step 3: Floors

The floors were probably the easiest part of this build, I just followed the dimensions from my sketchup model & cut them out with a jigsaw. To cut the inside cuts I just drilled holes to get the blade through.

Step 4: Windows

To construct the windows I didn't want the window(Plexi) to be moving around so what I ended up doing was using the mini table saw to cut the frame & after I cut the frame I would cut a slot out of the inner part of the frame. I did this by constructing a stop that would cut a slot out of the dowel a bit at a time. While I was cutting the slots in the window framing I tried running the wood backwards and that wasn't a good idea, thumb right into the blade. That didn't stop me though, I continued cutting the frames after I made what I like the call the thumb saver 5000. I used it to push the dowels through over the blade so I wouldn't have a finger over the blade ever.(Should've done it before the accident happened) After all the frames were cut I used my shapeoko to mill the windows out plexi a little bigger that the size of the window so I would sit in the slots. After some filing to get the plexi to fit perfect I used super glue to hold them together before they went into the walls. Then I moved onto creating the stairs.

Step 5: Stairs

For the stairs I wanted them to look nice and be functional so I started with the angles. After modeling them in sketchup I exported an .STL so I could drop it in MeshCAM to create the GCode. When the GCode was ready I sent it to my shapeoko to have all the pieces cut out of acrylic. When all the pieces were done I didn’t like how you could see straight through them, also they looked dirty with fingerprints & dust. What I did to make this better is take some sand paper and scuff all the pieces to make them opaque. I liked this better so I started assembling the stairs with plastibond. After the stairs were done I moved to the walls.

Step 6: Walls

Since my shapeoko was too small to cut the walls for me I had to take a jigsaw to all the pieces. After I cut all the outside of the walls they fit on the shapeoko. I went back to sketch up to make all the windows and the door shapes so I could use the CNC machine to them. After the windows & door were cut it was time to start putting the walls on! I found that liquid nails was the best option for a seamless surface. I applied the liquid nails & used C clamps to keep pressure on the walls while they set. After the walls were all on and ready to go it was time to move to the electronics! The fun part!

Step 7: Electronics

Now for the awesome part! Since my shapeoko isn't big enough to fit the floors on it I had to create templates in sketchup that would work with my dremel. I measured the distance from the outside of the dremel routing cover to the bit & made a two templates: one to cut the channel where the LED's would sit in & one for the plexiglass over would sit on. To make sure the LED's weren't gonna be crooked I made little triangles in the templates to align to the measurements I made on the floors. When all the channels were cut I used the dremel to connect all of them together so the wires could run through them. Then I put all the wires into a project box on top of the condo.

Soldering LED's

After all the wood working was done I cut segments of 5 LED out of a roll of WS2801 LED's & laid them into the channels. While they were chillin in the channels I would measure wires to the distance that the LED's were from each other & solder them together. Then I would take the connected LED's & lay them back in the channels to make sure the distance was correct. After each section was soldered in I would test them with an arduino to be positive they were working.

Covering the wire channels

When all the wiring was done & I was happy that all of the LED's were working I removed all of the LED's & wiring from the floors. I did this so I could paint the inside of the LED channels white & let them dry before putting them back in. When the paint was dry I laid all of the LED's & wires back in their correct position & started covering the wire channels with wood filler. After the wood filler was done drying I use a palm sander to shave away the top so it would be flush with the rest of the wood. When all of this was done I painted over the sanded spots & you would never know they were ever there.

WiFi

Since I wanted to have the ability to know when my puppy came in or out of his house & more, it had to be WiFi capable. For this reason I chose to use a Spark Core. For the LED lighting I have them all wired in series so I can use Ajax to send function requests. When the rest of the sensors come in, the house will be able to let me know when my puppy walks in or out & eventually I will add a camera when the funds are right.

Step 8: Software

Spark IDE

The first thing I started with is getting the WS2801 LEDs with the Spark, since you can't just include a library like the arduino IDE. What you have to do is create another file within the Spark IDE & add the Adafruit WS2801 library content to the proper file & include the .h file in your .ino file. Using the Spark function in the IDE I made a function to work with javascript on the server side to differentiate the different ID's from the HTML for the different sections of LEDs. With a few switch case's, if's & function's, it all worked out. If you are interested in the code feel free to contact me! I'd be more that happy to let you check it out! & maybe even get some changes!

Web App

I didn't want to always have to manually send commands to the Spark so I wanted to create a really simple little app to change light colors & brightness. Also, I wanted friends and family to be able to play with it. So first I created a layout in photoshop of the top & bottom floors. When the image was done, I created an image map go over all the light sections(black bars on the graphic). With the aid of JQuery I created a little popup window that I can choose colors & brightness when I click any of the sections. I also created a popup that I can specifically choose any LED in the condo & the color.

This description isn't really too in depth about how everything works but feel free to contact me if you have any questions.

Step 9: Touchups & Paint

Sanding/Filling

To finalize the little condo I used wood filler to fill in the edges & parts that were not seamless. After the filler dried I took a piece of sand paper to make everything perfect. On the windows there was a little gap so I also filled them & sanded them.

Paint

I painted all the floors, the sides of the floors & all the walls. After putting a few coats it was ready to go, check out the final product on the next step!

Step 10: Finished Condo

This is it! After all the days of hard work it all paid off!