As hackers, makers and tinkerers we are always excited to build exciting new projects. And now with the advent of the world of IoT devices it has never been easier or more accessible to start such a project. However we don't all have the knowledge, experience or even desire to spend time and effort on building dashboards and tools to interact with our IoT devices, sensors and other hardware. So we wanted to provide a way for any IoT project to get set up with a quick web/mobile visualisation as easily as possible.
What it does
We have built a cloud based IoT platform which provides a fully customisable plug and play solution for makers and hackers to create dashboards and interaction tools for their hardware projects. Now anyone can build a web front end for their electronics project and see data being collected and displayed in real time thanks to the magic of Meteor. No longer will you need to learn about web development, frameworks and methodologies or spend money hiring other people with this knowledge to finish your IoT projects. With a flexible web front end widget based GUI tool anyone can build their own layer of data visualisation and manipulation to their clients and customers. In addition this app provides a great way to prototype, inspect and debug any and all kinds of data being collected from all types of IoT devices.
How I built it
We worked as team with each member focussing on their strengths and stronger areas of knowledge. We decided to write our code using as many of the newest features as possible with Meteor. This meant choosing Angular for the front end dashboards which now has excellent support in Meteor. In addition we made a conscious effort to write all code in as much of an 'es6/ecmascript2015' style as possible with the new support in the framework. For our first proof of concept we used a Particle (previously known as Spark) Core IoT device which was in turn connected up to a temperature sensor for real time data capture. The intention was to add more devices and sensors as quickly as possible.
Our application design implemented a user flow for adding new devices to their accounts and profiles. Once a device and it's authentication details had been added to the platform our IoThingies application can immediately start querying this device for any methods, variables or data sets which may be available for collection and inspection. So in our first iteration we collected sensor temperature data using the Thermocouple connected to the Particle Core microprocessor.
- meteor-base # Packages every Meteor app needs to have
- mobile-experience # Packages for a great mobile UX
- mongo # The database Meteor supports right now
- blaze-html-templates # Compile .html files into Meteor Blaze views
- session # Client-side reactive dictionary for your app
- jquery # Helpful client-side library
- tracker # Meteor's client-side reactive programming library
- standard-minifiers # JS/CSS minifiers run for production mode
- es5-shim # ECMAScript 5 compatibility for older browsers.
- ecmascript # Enable ECMAScript2015+ syntax in app code
- autopublish # Publish all data to the clients (for prototyping)
- insecure # Allow all DB writes from clients (for prototyping)
- spark/particlejs (npm)
Challenges I ran into
We had a number of challenges we had to overcome as a team. Firstly our hardware IoT devices were not behaving very well when being connected to the cloud. This did delay our efforts on the hardware side at the start. Another challenge was to make sure that all the developer machines were up to date and could be used for development. As we had a mixture of operating systems this caused some issues. Finally the challenge of staying awake enough to try and develop as much of the application as possible was an obvious difficulty we did our best to cope with.
Accomplishments that I'm proud of
At the end of the hackathon we had a working prototype of our app. We had some parts working in all areas of the application from the hardware IoT side to the Meteor server to the front end angular charting. We each overcame many difficulties to ensure this happened.
What I learned
We learned that there is always some preparation that can be done for a hackathon. This covers things like making sure all our machines are development ready as well as testing and knowing all our hardware devices and interfaces as best as possible so we can minimise the time spent learning during the hackathon.
What's next for Internet of Thingies
We hope to brainstorm further on how to take the Internet of Thingies to the next level and we will be trying to maybe get a working prototype out to test the market appetite for this product. We are sure it will be very much appreciated by the hacker and IoT community.