Check it out at https://youtu.be/5RZvoLa8Rhk
I walk into my room with a girl I have a big crush on - we're working on homework together.
"Alexa, tell Aria to impress the lady". Spotify plays You're Beautiful by Maroon 5, and turns on ambient lighting on the light strip that goes along my entire room. My heart stops beating for a second as she smiles at me. I'm grinning like an idiot. Today's going to be a beautiful day.
I wake up from my day dream. I switch on my lights from the switchboard and wait patiently for my phone to connect to my speakers. Well those days are over.
Smart home technologies have not been growing at the speeds as we expect them to. With the number of services, fast internet speeds, and reduced cost of technology we have at this date, smart home needs to be much more integrated. Sure, the Nest Thermostat can control the temperature and send you notifications when it drops too low - but we want to move to a more integrated system where all these different services can work in unison and give you a wholesome experience. You shouldn't need five ecosystems to control one home. Clearly, just pink-purple transitioning lights wouldn't have impressed any girl just by itself.
What it does
Aria takes existing smart home devices and ecosystems and merges them all into one. Currently powered by an Amazon Alexa, Aria takes in voice input and turns it into commands for various smart home devices. With IFTTT integration, Aria can do even more. IFTTT allows Aria to control most current smart home products seamlessly, as well as utilize any webhook service or api. Aria is here to make your life easier, and to bring the smart home a reality for many.
"Alexa, tell Aria its party time"
"Alexa, tell Aria to turn on the blue lights"
How we built it
Your voice <-> Alexa Skill <-> AWS Lambda <-> AWS IoT <-> Node Red <-> Raspberry Pi <-> Your devices
Our Alexa skill takes in your commands and sends the processed information to AWS Lambda.
Based on the intent and your current conversation with the Alexa, Lambda sends a request to AWS IoT and controls the Alexa replies.
AWS IoT connects the devices to the Lambda function for near-instantaneous transmission of intents to the Raspberry Pi. The Pi runs an instance of Node-Red which takes in the raw intent information and converts that into GPIO signals which control the hardware connected to the Pi.
In addition, some controls of the Pi run through Node-Red, for example, when the lighting is low, the Pi automatically turns on its night lights.
Challenges we ran into
One of our largest challenges was setting up the entire integration between our devices and AWS. We initially had issues transferring data from the AWS IoT to the Raspberry-Pi, and then after that we ran into a large road block with sending information from our code in the AWS Lambda to the Raspberry-Pi. A few hundred google queries later and tens of man-hours later, we finally overcame those issues. From then on out, we've been setting up multiple integrations and brainstorming ideas as we go!
Accomplishments that we're proud of
- We learnt a lot from the stack we used to create this project and from each other.
- We worked as a team cohesively through the 24 hours, learning from each other, each exploiting their core skill set to make immense contributions to the team and our project.
- We were able to setup the immensely complicated infrastructure in a relatively short period of time.
What we learned
- We all learnt to work with a Raspberry Pi
- We learnt how to make Alexa Skills
- We learnt Node.js and worked with it to create the skills and write the backend code to connect AWS Lambda to AWS IoT.
- We learnt to setup servers on AWS and create a multi-stage communication channel between the Alexa and the hardware components
What's next for Aria
- Support for other smart home devices (like the Philips Hue, Wemo switches, Nest thermostat) to connect to our hub and make it easy for everyone to transition to Aria.
- APIs to allow users to create IFTTT Applets using Aria
- Kickstarter campaign to get funding to manufacture the first round of devices for beta testing and allowing third-party developers to build with Aria
"Alexa, tell Aria to impress the lady - and the judges of course."