On Thursday evening, I got my first taste of this hip and happening Internet of Things (IoT) by attending a workshop at the Ottawa IBM campus organized by Hacking Health Ottawa. The workshop was centered on getting folks ready for a hackathon coming up in April where we will focus on the use of IoT technology and cloud services to improve health care services. I had little knowledge of this stuff and had no idea what to expect…
Jim’s Internet of Things
The evening started with IBM’s Jim Boland giving a quick overview of IoT along with some tie-ins to potential health care benefits. Obviously, we’re all familiar with the various wrist-wearables, but I hadn’t heard about the smart shoes before. Those are pretty nifty, and our Nonlinear group discussed potential benefits for the blind. Apparently the inventors had the same idea based on my subsequent reading on the Lechal site.
Time for some Pi
Following Jim was the main event of the evening. Groups around the room were being provided their own networked Raspberry Pi with a thermometer sensor. A quick walk-through had us loading up Node-Red to do some basic programming for our flow. The final step of our flow would have us piping our temperature data out to the IBM Bluemix cloud and viewing it in realtime graphs.
Node-Red is an interesting concept, allowing non-programmers to hook devices and systems up together with minimal knowledge of any programming language. You are basically drawing flowcharts which, under the hood, are executing the real power.
The IBM Bluemix catalog was enormous and allowed us to work with so many things, but we were focused on IoT this evening. I found it a little overwhelming the steps required to hook up my device, create credentials, tie that into Node-Red, and then make sure everything was connected correctly. There are a lot of variables when you first start digging into this and the number of points of failure make it a little difficult to debug. Here are some things that went wrong for us. Hopefully it helps you out if you start trying out BlueMix:
- You can’t get your device credentials back. For security reasons, once you setup your device password for connectivity to the IoT platform, you cannot get it back again. Once that dialog closes, you better have saved it somewhere. Otherwise, you need to create a new device definition and get new credentials. These credentials are how your IoT Watson device in Node-Red will authenticate to the cloud service, so it’s kinda important.
- Your code might be wrong (said Captain Obvious).We ran into a lot of problems where it seemed we had everything set up right but no data was coming into the IoT platform graphs. Turns out, we had empty strings being sent as values. Use the Node-Red ‘debug’ nodes so you can see your output at various stages in your flow. This will help you track down your point of failure.
- Sharing is not always caring. In our setup, we had multiple developers building flows in Node-Red and deploying to shared Raspberry Pi devices. Turns out, this is not so good. People were overwriting each other constantly and it seemed like only the last flow deployed was actually running and everybody would see that flow running in their ‘current flow’ debug windows.
- You might not be connected. I had multiple times where I thought I had everything set up but somehow my final IoT Platform node kept losing its credentials. Node-Red is nice and tells you about the connectivity error with a little status check next to the node so watch out for that warning. Re-entering credentials and re-deploying usually fixed this.
On to Part 2!
There’s a second session coming up soon that I’m going to attend and try to learn some more. This first foray was very basic and overall I’m impressed with the possibilities of the technology. My one negative from first impressions was the ‘change in UX’ that occurs throughout the process. If you’re setting up the Raspberry Pi, you’re at the command line doing SSH and installing stuff at a very low level. If you’re in Node-Red, you have a browser-based app that is pretty decent but does require some technical knowledge and has some UX gaps. And then you transition to IBM Bluemix which has a totally different feel and seems very abstract. It would be nice if there was some way to make the whole end-to-end experience feel more consistent.
I’m hoping that next time I’ll feel a little more comfortable with it all and will be able to dig deeper into all the pieces involved.