Category Archives: Hardware

Ideas and Recipes For Home Automation With The Internet of Things

A few weeks ago my friend Emily asked me to speak at the Ann Arbor Mini Maker Faire for their speaker series. I said “sure” and figured I’d talk about something like app development or design. I ended up picking a more “Maker Faire-y” topic since I thought it would work better for the crowd.

I’ve been really getting into home automation and buying a lot of “internet of things” products lately. I decided to do an introductory talk on home automation along with ideas on how people can get up and running quickly. I did the talk last weekend and had a great turnout. Some people asked for more information so I thought I’d write up a blog post that more or less summarized the talk. So here it is!

What exactly is the “Internet of Things?”

“The Internet of Things” is a term that gets thrown around a lot but doesn’t seem to have an official definition. I like to think of it as the concept that, as devices gain more intelligence through the ability to communicate wirelessly and through the internet, they become more useful. In other words, things will form their own internet and will generally be awesome. I was reminded the video game, Megaman Battle Network, where literally everything, including a microwave, has a port to jack into (and can thus catch a virus).

MMBN Screen Shot 2014-05-05 at 10.06.29 AM-140 Screen Shot 2014-05-05 at 10.06.50 AM-138It also means that your refrigerator might be able to tweet when you run out of milk, or stream music via Pandora.

Why am I hearing so much about the IoT right now?

In the past few decades, we’ve seen the cost of producing software go way down. Starting a software business simply costs less today than it did in the 90s. While hardware always brings more upfront costs, it seems like commodity hardware and Kickstarter are making it easier for smaller companies to get into the hardware game. On top of that, wireless technologies like Bluetooth LE and low power Wifi are enabling devices to talk to one another as well as to the internet. In the past few years we’ve seen large companies like Belkin get into this space as well as smaller startups like Nest (though they were aquired by Google pretty recently).

Some things you can accomplish

I’m just going to list a few use cases that I consider to fall in the category of “Internet of Things.” After I give an initial survey, I’ll go into ways that you can use these off-the-shelf solutions to automate your home.

Turn on/off light switches


One of the simplest use cases for home automation is turning off/on light switches. You can do this with the Belkin Wemo (which is what I use) or with something like Ninja Blocks or SmartThings.

Detect Motion


You can use Dropcam to detect motion with video, or Wemo / SmartThings to detect motion events. This is mostly useful indoors if you don’t have pets since they can set false alarms.

Detect when doors/windows are open


You can use SmartThings to detect when a door or window has been opened. This could be useful for knowing if you left a window open while it’s raining, though it would be even more helpful if it could close the window for you automatically.

Detect water moisture / floods


Apparently it really sucks to have a flood in your basement. It might be worth the extra money to install a SmartThings moisture detector to tell you if there’s a water leak or flood.

Lock or unlock your front door


I ordered a Lockitron a really long time ago and am happy to announce that it should be shipping soon! I also found a product by Schlage that seems to do something similar.

Keep track of your driving

AutomaticAutomatic helps you keep track of your MPG and total distance traveled by connecting to the data port of your car.

Don’t kill your plants


This is a fairly stupid product called the Parrot Flower Power that can remind you to water your plant when the soil gets too dry. It’s probably more cost effective to just buy a new plant if yours dies from under/over watering but whatever.

Keep track of how many eggs you have left


The Quirky Egg Minder keeps track of how many eggs you have in your fridge.

Recipes with IFTTT / Zapier

IFTTT (if this then that) is an online tool that makes it easy for non-programmers to connect different internet and mobile services to each other. Think of it as glue that can tie all of your IoT devices together via triggers and actions. A trigger might be that your Wemo has detected motion, and an action might be to open your garage door. IFTTT works well with many of the devices I’ve listed previously and offers an iOS and Android app that can hook into things like your location and photos.

Zapier is another tool that is similar to IFTTT but a bit more complicated and expensive to use. Some recipes are only compatible with Zapier (like Lockitron) so you might need to sign up for that service as well.

I’ll share a few recipes on IFTTT or Zapier that you can use to automate your home with your newfound gadgets.

Play the radio when a burglar enters your home

This recipe is possible without using IFTTT (and is probably more secure since it doesn’t require internet). I set up my motion detector to turn on a switch that’s connected to a portable radio. During certain hours when I’m not at home, if someone enters my house, the radio will start playing. The hope here is that the noise will be a deterrent to the invader. If I was feeling in a Home Alone mood, I could also connect the switch to a tape player that played scenes from a mobster movie.

 Make sure your doors are locked when you leave home

When your IFTTT mobile app detects that you are leaving your home, you can send an email that Zapier can use to connect to Lockitron to ensure that your doors are locked. This is a pretty convoluted recipe since it uses both services, but there isn’t really a better way to do this, unless you want to simply lock your door with the Lockitron app when you leave.

Automatically start the coffee maker by waking up

IFTTT Recipe: Turn my #coffee maker on the moment I wake up connects up-by-jawbone to wemo-switch

This is a really cool IFTTT recipe I found that was shared by another user. The Jawbone UP 24 has a feature that can wake you up at the best time in your sleep cycle in the morning. The UP can send a message the moment you wake up to IFTTT that can turn on a switch that’s connected to your coffee maker. Voila, your coffee is ready as soon as you get out of bed.

Log all of your driving trips in Google Docs

IFTTT Recipe: Keep track of all my driving trips connects automatic to google-drive

I use this recipe to keep track of total miles driven and my fuel efficiency. It’s not particularly useful for anything, but if I was a taxi driver (or Lyft or Uber X) it might be pretty useful for tax purposes.

DIY Home Automation

One thing I haven’t really touched on is creating DIY projects to automate your home. I’m a big fan of home grown projects like this DIY Lockitron using Arduino. I recently bought a Raspberry Pi to act as an iBeacon in my home. I’m trying to create an app that will be location aware to the room in my house that I’m in (or at least that my iPhone is in). I’ve heard that the best way to predict the future is to invent it, so if there’s anything in this space that you haven’t seen available, the best solution is to do it yourself!

If you have any interesting projects or recipes you’d like to share, I’d love to hear about them. I am about to move into a new house, so the automation potential is about to grow a lot more for me (versus living in an apartment). Good luck and try not to get any viruses in your microwaves!

Impressions on Google Glass

Obligatory double-glasses Glasshole shot.
Obligatory double-glasses Glasshole shot.

I had a chance to play around with Google Glass Explorer Edition via my employer. I was able to successfully hook it up to my personal Google account, contrary to stuff I’ve read about the Explorer program not allowing loans, etc. If there’s a specific policy behind that, it doesn’t seem to be enforced on a technical level.

Anyway, I figured I should write down some of my initial impressions on the thing. It’s always interesting to look back and see how well I did in my predictions, like when I thought Twitter was just for narcissists (not sure I was wrong on that one).

The two strong feelings I have from Google Glass are that I wish it was less visible (to others) and I think it will greatly improve on video and photo sharing.

While I understand that technology can work as a fashion accessory (see anyone who owns an iPhone), I also feel like it shouldn’t burden the user with its outward appearance. Everyone writes about how Google Glass will create some kind of panopticon state, but the one wearing them is really the one who feels watched. I once tried walking to get my mail while wearing the gadget, and felt super awkward as I said hi to a neighbor. The awkwardness could have also had something to do with the fact that I have to wear the Google Glass over my normal glasses, which looks super dumb.

On a positive note, I think the ability to take first person videos is going to be the killer feature of Google Glass, if one ends up existing. I took a few videos of myself making dinner, which aren’t really that interesting now, but I can see a sort of lifestream genre bubble up from taking short videos of doing really mundane stuff day to day. Here’s a sample video I took:

As far as developing for the Glass, I found that the Google Mirror API is a bit lacking if you don’t already have some existing app you’d like to integrate. It’s basically glorified push notifications with a few extra location features built in. As an Android noob, I haven’t really pushed anything interesting to the Glass device yet in terms of native apps (just the Hello World one and a few samples). I’d wait for the official GDK to start developing in earnest, and maybe in the meantime, learn Android.

I had some mixed experiences with the Glass, overall. While the technology is neat, I feel there are many social hurdles that the device must pass before the thing can take off. Remember those Bluetooth headsets that you can wear on your ear? Google Glass is basically twice as useful, yet also twice as awkward. I think that a lot of the awkwardness will go away once sub-vocal microphone technology advances to the consumer level (think Metal Gear Solid). Then all Glass will need is a makeover to disguise the camera and screen into a normal set of glasses. Once the technology becomes outwardly invisible, the technology will be able to speak for itself.

Until either the technology makes itself less conspicuous or society decides that it’s socially acceptable, Google Glass wearers will all look like this guy.

Impressions of Android From an iPhone User/Developer

I just got an Android phone, the HTC Hero, to play around with and perhaps develop on. It was only $55 on Ebay (including shipping) which seemed like a steal to me. I’m currently using it on WiFi without any phone service (the phone has a bad ESN, so that’s probably why the price was so low).

My first impression as an iPhone user is that the interface is really clunky. There just isn’t as much attention payed to detail. For example, there are often measurable delays between pressing a button and seeing something happen. This happens when I try to add a widget to the home screen or open an app that hasn’t been opened into memory. If I press a button and I don’t see something happen immediately, I will assume I missed the button and press it again. This is extremely frustrating since the iPhone animates immediately upon user interaction. The iPhone may not be any faster than my Android phone, but it at least gives the illusion of it (which is probably just as good in terms of usability).

Another thing I noticed is the lack of “back” buttons in the Android apps. Even Twitter lacks the onscreen back button. I assume this is following some kind of standard Android paradigm of favoring physical buttons over onscreen ones. It took me a while to get used to hitting the physical back button (and home, menu and search for that matter) instead of looking for navigation on the screen. While this is a different paradigm, I’m not sure I’m in a position to say it’s worse, better or on par with the iPhone. My suspicion is that the lack of onscreen navigation requires the user to go through more context switches (screen to physical button back to screen) which is disorienting. This is made worse by the fact that there’s seven fuckin’ buttons on my particular phone! I’m sure people adapt and get used to it, but I’m personally used to having just one button that takes me to the home screen (oh, and the volume and lock buttons, but they don’t serve dynamic functions in applications (unless they want to break the App Store terms)).

About the only positive thing I can say about the Android platform is that Google is integrating the shit out of it with their own services. I only have to sign in once with my Google account and I get Voice, Talk, Maps, Search, Goggles, Places, Latitude, Market, Contacts, Gmail, YouTube and probably some other things I’m forgetting. The voice commands are incredibly cool, though I wonder how many times I’d actually use them instead of doing things the normal way. Oh, another positive is that Angry Birds is free on Android, though my device is way too slow to run it.

I’m currently using a ROM with 2.2 on my HTC Hero, so that might account for some performance issues (though I thought it was supposed to be faster). I’m still kind of unimpressed by Android as a whole though, especially in terms of end to end usability. I originally got this device so I could test code on hardware, but I’m not so sure I even want to develop for Android anymore. I’ll probably end up writing some simple code, at least.

Does anyone with a newer Android phone want to debunk or argue with anything I’ve written?

Super Customer Service at the Apple Store

About two weeks ago, my GF got a refurbished iPod Touch from the Apple online store. The refurb was pretty cool, but it seemed to have a really low battery life. I made an appointment with the Apple Store App for the Genius Bar and the guy who helped us was really cool.

We explained that she just bought the refurb and it was pooping out after like 3-4 hours of use. The guy showed us some battery saving techniques (like lowering the screen brightness and turning off location services, etc). At this point I was like, “come on guy, I already know that!” Then he just gave us some paperwork to sign and a new iPod! YESSS.

The awesomeness here is that he didn’t question us like we were total idiots and assumed we were right. He didn’t make us do any stupid diagnostic tests to prove we were telling him the truth. This is what set the experience apart from others, like when I call the cable company and they make me turn my modem off and on, etc. Thanks, Apple! The only thing I would’ve changed is that I scheduled the appointment for like 7:30 and they didn’t get to me until around 8.

The new iPod is working a lot better, so I’m glad we went in to do the switch. In other news, I am thinking of getting an iPad, because (gasp) I was wrong. In the future I should probably forego the knee-jerk assumptions for new products before I actually try them out. I can probably just say I did it for the lulz again and go on to become the next John C Dvorak. The iPad is actually quite neat. Understanding the iPad HIG goes a long way toward appreciating it. I also wrote an iPad version of my other app, so I’d like to actually try it on a real device at some point.



So… IBM is making a ThinkPad with a screen, AND ANOTHER SCREEN INSIDE OF IT!

While the extra resolution might be kinda handy, I think it’s a bit much to put this on a notebook. Plus check out the thickness of the border between the screens. Definitely not very pretty. If they were designing the extra screen specifically for this device, couldn’t they have integrated it a bit better?

Also, I think this is a hoax, even if it shows up on the IBM website. I won’t believe it until I see it in person!