Building an Automated Cat Feeder with Amazon Alexa

In my second IoT project, I tackle feeding my cats by voice commands.

cat-feeder_title-pageMy family owns three cats; for the most part, they are well behaved – unless they are hungry. When it’s time for them to eat, they get a little crazy – constantly meowing and running under/between our legs, or waking us up at night.

We used to keep extra food in their dishes, but they would just overeat – resulting in cat throw-up (which, without fail, I seemed to step in every morning on my way to the kitchen).

We’ve been living in this “claw-ful” situation for a few years, and never really considered resolving the problem. My oldest daughter suggested that we (and by we, she really meant me) build an automated cat feeder. I told her that I didn’t have the time to build one… but then, I figured, why not give it a try.

Full instructions are on the write up at Hackster – https://www.hackster.io/darian-johnson/alexa-powered-automated-cat-feeder-9416d4

Getting the Most out of my Amazon Echo: Using TuneIn Radio

Telling Alexa to “Play The Big DM on TuneIn” has been the highlight of my Alexa experience to date

before1Before I talk about technology, a quick segue: I grew up in the age of radio and cassettes. The hiss of a cassette tape is a callback to simpler times – when most albums were constricted as complete pieces (and not as a string of singles); when the order of an album was important (no easy skipping)… when building a mixtape was more art than science.

I feel the same way about radio. There’s nothing like the excitement of not knowing what great song is coming next, or the magic of slowing flowing from one song to another. Before there was music video1, there was radio – where I discovered Incognito, and Angela Bofill, and Teena Marie…. Continue reading “Getting the Most out of my Amazon Echo: Using TuneIn Radio”

Building a Magic Mirror using Alexa, AWS, and a Raspberry Pi

Mystic_Miror_Logo_NewSome people spend their vacations traveling, or relaxing, or visiting family. I spent my two weeks off building an Alexa enabled, Raspberry Pi device for Hackster’s Internet of Voice challenge.

But, to paraphrase Madonna: “Don’t Cry for Me, Internet.” I really enjoyed those two plus weeks of coding. I learned a ton about AWS IoT and MQTT (and re-enforced some “non-sexy” skills – like security and IAM).

And the device that I decided to build…. a magic mirror. Why a magic mirror? Well, I am the guy that:

  • Never checks for delays in his work commute until he is stuck in a four-lane accident
  • Forgets his umbrella when the forecast calls for afternoon showers
  • Doesn’t find out about a major news event unless the story breaks on ESPN
  • Always forgets to pull my trash bins to the curb on garbage pick-up day

In short, my morning routine is a mess (#firstworldproblems). An Amazon Echo (or a phone, for that matter) would resolve most of those problems. Unfortunately, I never seem to have my phone with me as I’m getting ready in the morning (it’s usually charging). And I’m usually not asking Alexa for these details (I don’t have an Alexa device in my bathroom).

60% of my morning routine is centered in and around the bathroom or bedroom, so I decided to build an Alexa skill and Alexa Voice Service-enabled magic mirror – which I’ve titled the Mystic Mirror.

Continue reading “Building a Magic Mirror using Alexa, AWS, and a Raspberry Pi”

Using Amazon Machine Learning to Predict the Best Time of Day for Exercise – Pt 3: Automating the Model with Alexa

Integration with Alexa allows a user to obtain a workout recommendation (and create a machine learning model) all by voice command.

002[su_note note_color=”#d3d3d3″]Note: This is the third post about using Amazon Machine Learning to predict workout intensity. Check out Part 1 (Overview) and Part 2 (Building the Machine Learning Model) for background. A working model is available via web and Alexa. Code can be found/downloaded from my Hackster site.[/su_note]

After I was able to build a working model, I needed to come up a way to automate the model. I originally planned to allow access through my website, but decided to use Alexa in addition to the website link.

Note: The process of creating an Alexa skill isn’t too complicated (if you have experience building lambda functions). That being said, I suggest you start by building a sample skill – such as the Fact Skill example. Also, be sure to read and follow the certification requirements.

Alexa, AWS, and the exposed Fitbit APIs provided a mechanism to build a model and return results for a specific user – all initiated by voice.

Step 1 – Linking the user’s Fitbit account to the skill

A user has to link his/her Fitbit account to the skill before s/he can (a) build a specific machine learning model based on their history and (b) get a workout recommendation. Step 1 covers the logic for this functionality.

Click image to enlarge

Slide7

Continue reading “Using Amazon Machine Learning to Predict the Best Time of Day for Exercise – Pt 3: Automating the Model with Alexa”

Using Amazon Machine Learning to Predict the Best Time of Day for Exercise – Pt 1: Overview

A simple application that uses your Fitbit data to recommend the best time of day to workout.

Best Time of The Day Workout Recommendation[su_note note_color=”#d3d3d3″]Note: This is the first post about using Amazon Machine Learning to predict workout intensity. Part 2 will cover the design of the Machine Learning Model. The third post will cover the Lambda and Alexa code used to automate the model. A working model is available via web and Alexa. Code can be found/downloaded from my Hackster site.[/su_note]

A few months ago, one of my former co-workers1 published a brilliant post on Linked about using machine learning to predict his mood. It got me thinking – with all the data at my fingertips, what could – or should – I attempt to predict?

I ultimately decided to focus my attention on fitness. Specifically, I wanted to determine the most optimal time to workout on a given day.

Why? Well, when it comes to fitness, we live in a world of paradoxes.

We have the best fitness information available, the most knowledgeable doctors, and affordable devices to track our health.

We have the best workout options: gyms in every neighborhood; gyms at our offices; online and DVD courses to support fitness at home.

We even have more flexibility in our schedules. Many people work from home at least once a week. Our gyms open earlier and close later. Our employers support and encourage an active lifestyle.

Yet despite this, people struggle to find time to work out. And when we do get to the gym, we are either rushed or distracted – so our workouts become less impactful to our overall health.

texting-in-the-gym-300x300[1]

I built my app to help myself, and others, find the most optimal time of the day to workout. Are my workouts more efficient in the morning? Or do I get better results by working out at noon?

Each user is different, so I had to build the app so that each user’s prediction model was customized to their activities. This was done by building a custom model for each individual user of the application.

I’ll talk in detail about how I designed the machine learning model and how the app is architected in parts 2 and 3 of this topic. In the meantime, feel free to use the web based version of the app or the Alexa skill.