HomeCenter

Max DeVos Mason Timmerman Thomas Powell


The smart TV system controlled by the TV in your pocket- your phone!

Inspiration

Our inspiration for this project came from our own needs in our apartment life. We decided we have too many files of all kinds scattered over far too many devices. We had been wanting a system to collect our files in one place for easy and safe storage and viewing.

We also find the Internet of Things very fascinating and wanted to try connecting our phones with our TVs which is something (except for mirroring) you don't see very often. The concept of controlling the TV with your phone was even cooler, so we set off on this adventure to learn and create a useful piece of software.

What we learned

The biggest life lesson we learned this weekend was patience. We had a weekend full of frustrating setbacks, but persevered through them.

As far as programming goes, a specific new skill we learned was creating a native iOS app. Swift is a very different programming language than languages we are well versed in so it proved a challenge. It was brand new to all three of us, so we learned a lot during the course of this weekend.

How we built HomeCenter

HomeCenter is a node application running with a socket.io network to provide real time updates. We originally planned to use C# and .net core but we ran into issues getting web sockets workings. The client is a webpage that is loaded on a raspberry pi.

Challenges

Our challenges consist of, but are not limited to the following:

  1. The first challenge we faced was traversing our UI with basically only the arrow keys and the ability to enter into a region and exit a region. It still isn't as perfect as we would like, but it's not too difficult to get to any certain part of the interface.

  2. The second hurdle was getting XCode and Swift updated and setup. Never having setup a project like this we struggled getting our assets in place and dependencies taken care of.

  3. The third thing we struggled through was socket connections between the Swift client and the Node.js server. We had received data with Node before, but never sent data with Swift, so that was an adventure. Swift's looseness with types was confusing at times and XCode's unclear error messages were misleading.

Share this project:

Updates