HacksterIO recently launched a competition with Google & NXP to explore new AndroidThings IoT concepts. Here we run through the Novoda entries and get some insights from the authors.

Novoda wanted to explore the AndroidThings platform and understand what it could offer in terms of its space in the IoT ecosystem and all the connected products in the cloud that could be leveraged to create an interesting connected IoT solution.

Google, Hackster, and NXP are inviting you to submit a project that showcases your use of Android Things and Google technology. Android Things lets you build professional, mass-market products on a trusted platform without previous knowledge of embedded system design. We’d love to see what you can build with our latest release.

Office meeting room hot seats

This project is about highlighting the use of seats and meeting rooms. I wanted to bring to peoples attention how rooms are used and how often seats are sat upon. I also wanted to bring a bit of psychology into the picture so that people are conscious about the seat they are choosing to sit in and what the history of that seat is. To then perhaps see if this influences future choices.

Key technologies involved include:

  • AndroidThings
  • i2c protocol
  • Google Cloud IoT Core
  • Google Pub/Sub
  • Firebase

I really enjoyed investigating weight sensors for this project. I think the most interesting thing about the final product, is now we have a lot of data about our meeting rooms and seats. It leaves the door open for others to use Data Science to infer new things from the dataset.

A companion app is used to show the layout of the meeting room and a heat map of the most active seats for that room over the last 8 hours. With each seat glowing from a range of dark blue (not sat on recently) to white (someone has just left that seat).

The companion app shows a blueprint of our office, and although it is a proof of concept, it has a lot of potential to really engage users in the meeting room use. Future ideas include being able to select meeting rooms or filter by the least used room/seats.

You can see the full project details (and how to make your own!) here.

Android Things Word Clock

What about a clock that speaks the user own language? Here it is!

The core concept of this clock is that during the day, only the letters needed to create the current time in words will be on, while the others will be off.

This project is a perfect example of Smart Home device, providing smooth integration with the Google Assistant which allows a natural interaction using voice commands, all in a final package that it is nice looking and can be placed in any living room.

Key technologies involved include:

  • AndroidThings, Arduino
  • UART protocol
  • Actions on Google
  • Google Smart Home
  • Firebase

While working on this project I was able to reuse technologies and components I already knew with previous IoT platforms, like Arduino, and have them work with Android Things. Doing so I could use languages and tools I'm more comfortable with (like Kotlin and Android Studio) while at the same time being able to create a more tested and clean project code.

When developing, we talk about the "happy path" to get a feature working. It's always important to think of the things that can go wrong. In case of missing internet connection after a reboot, an appropriate error state will be displayed. The "sad path".

The integration with the Google Assistant through Smart Home was probably the most interesting part of the project. It allowed me to create a device that can be controlled directly from the phone, or other Assistant-enabled devices like a Google Home, in a natural way using voice interaction.

You can see the full project details (and how to make your own!) here.

Smart Dog Bed

The idea of this project is to use weight sensors and put them under your dog's bed, then using an Android Things board we're able to measure the data from the sensors and we can analyse it to measure the sleep quality of your dog, as well as how often did your dog get up during the night and how much does your dog sleep during the day.

I use an activity tracker which helps me understand the quality of my sleep and I wanted to take this idea and apply it to the life of my dogs, so I decided to create this smart dog bed that can do all of that for my dogs.

Key technologies involved include:

  • AndroidThings, Espruino for initial tests
  • I2C protocol
  • Firebase Database

Bella knows there's something funny going on with the bed

I've learnt a lot while working on this project, I had the chance to use the Firebase Database on Android (which I had never done before), as well as understanding all the different hardware components involved – load cell gauge, analog to digital converter, op-amp, you have to really understand what each component does individually first to be able to put it all together.

As an initial step for simplicity, we can use an ESP32 running Espruino for a quick prototype. it's essentially an Arduino board that can be programmed with javascript. It includes a 12-bit ADC so it was very easy to write a quick test to ensure the wiring was correct. Once that was confirmed I could include the AndroidThings board and wire it up to the ADC and the Load gauge like below.

Schematics for the Android Things device

The project could be extended to record more data and use the Google Cloud Functions for Firebase to be able to collect more insights from the hardware readings, such as tracking the weight of the dog, showing a timeline view of the events captured, etc. It's an area with a lot of potential.

You can see the full project details (and how to make your own!) here.

We create the projects to explore the uses of AndroidThings, it was great fun to create IoT projects. All three ended up using Firebase and it really showed us the power of having a connected IoT board that can easily leverage Googles cloud infrastructure. Hold tight to see what we make next.