Post on 16-Apr-2017
Building Enterprise IoT Projects Iteratively
By: Vui NguyenIntel Software Innovatorwww.sunfishempire.com
@sunfishgurl
Talk Overview
How to start doing IoT
How to grow
Use Case Example: Save the Water Pipes
Very hackathon-centric, but some of the principles can be applied to commercial applications as well
Always ask: who is my customer and what is the immediate need? Where and when it’s possible: how can I design this so there’s room to grow while still meeting the immediate need and deadline?
Won’t go too deep technically, describe the process of improvement
In the Beginning
April 2016, the “Blue Team” enters the Intel IoT Roadshow in Denver
We win first place with our freezing water pipe detection and prevention system
Detects when water in a pipe is about to freeze
When temp gets into “red” zone, stepper motor opens a valve to release water
When temp gets into “yellow” or safe zone, stepper motor closes the valve
Technologies Used
Intel Edison board
Intel XDK: IoT Edition
Javascript-based IDE to build IoT applications
Intel libraries: Javascript wrapped Arduino
Grove shield and Grove sensors
What Was Missing?
Notice there is no pipe, water temp sensor is placed directly into bucket to simulate “freezing water temp in pipe”
Water temp sensor is taken out of the bucket and placed between our fingers to “warm up the water temperature”
Another trick: water temp sensor measures voltage, not temperature. We had to adjust our algorithms to get the results that we want
What Was Missing? (cont.)
All sensor data displayed to console and LCD
There is no website, mobile app, any software other than JavaScript-wrapped Arduino code (Intel hardware libraries)
Used sample sensor code within the IDE to get started
Why Did We Win?
Strength and simplicity of our idea
we focused on 1 problem and demonstrated its solution well
Strong hardware and sensor demo
We told a compelling story during our presentation
We tried not to do too much at once - only had 2 days to work on project start to finish & first time working with Edison board and Intel IDE and technologies
The point of hackathons is to show a concept is possible, NOT to build a market-ready product. We saw some teams fail because they lose sight of this
China US Young Maker Competition
Fresh from our success at the Roadshow, we entered the China-US Young Maker Competition on hackster.io, also sponsored by Intel
A couple of weeks after the Roadshow, we got back to work
We only had a handful of weekends to work together as a team
Submission deadline: mid-June 2016
What Was Added
Used an Intel sample application to get started:
https://software.intel.com/en-us/creating-an-application-to-communicate-using-web-sockets
Challenge: how to get the data “out” from the IDE console and into a useful application
Asked: what did we want our “useful application” to do?
Local web server hosted on Intel Edison board used to communicate between sensors and display results on website
How we worked together
Version Control: Git and Bitbucket
Project Management: Trello
Schedule in person team meetings and used communication tools as needed: Hipchat
I filled the role of software lead and architect
Selected and largely modified the Intel sample application for the foundation of our project
As team lead, ensured that we completed our project in time for submission by the deadline
Selected To Go To China
Mid-August 2016, the “Blue Team” went to Beijing China to compete in final rounds of competition
Project EnhancementsSimulate monitoring water pipes for multi-unit system instead of single unit
Solenoids replace stepper motors to power valves
Relay Shield added to power multiple solenoid valves
Project EnhancementsWebsite has additional page to show status of all units in real time, plus existing page to show status of single unit in real time
Requires refactoring of JavaScript code in back end (used JS objects)
Competition Results
Successful in implementing improvements to system
Placed 11th out of 64 teams overall
Great experience!
To learn more:
https://sunfishempire.wordpress.com/2016/08/27/save-the-water-pipes-project-wins-excellence-award-in-iot-china-contest/
Conclusions
We didn’t get to where we are today overnight, we did it in steps. You should too!
Phase 1: Start with controlling sensors and displaying sensor data to console
Phase 2: Use sample application to start building real software application that displays data outside of IDE
Phase 3: Refactor code as needed to scale system
Conclusions Part II
DO Start Small, and add one feature at a time
DON’T Think you must begin with an Enterprise-level IoT system right off the bat
DO Use version control, project management, etc., as soon as feasible
DON’T Stay in “Hack-a-Thon Mode” forever!
DO Keep project requirements and scope in mind
DON’T Spend time you don’t have on features you don’t need
Thanks! Questions?
Vui Nguyen, Intel Software Innovator
IoT Software Engineer
www.sunfishempire.com
@sunfishgurl