Motive for this project came to my mind while reading an IFS blog post by Gökhan Kurt which explained a fantastic use of iOT with IFS Applications.
I was thinking of a setup where we can directly connect input from a machine to IFS without going through any cloud based solutions. Currently IFS has a very stable integration solution which supports XML (and SOAP) so we can us the existing web services exposed by IFS to integrate with external applications.
With the recent success of my project with connecting Arduino to FireBase cloud database, I’ve started this with the same approach which explained below.
* Arduino send the data as a HTTP GET to PHP middleman.
* PHP server code reads the data and create the SOAP xml message and POST to IFS Soap Gateway
* In the IFS Application side, incoming message was directed to the correct interface using Routing Rules
IFS has a already defined interface which we can save a measurement for an object. In this example, my attempt is to measure the temperature of an object every minute and report to IFS.
First we need to define test point for an Object
Then we need to define parameter and Unit of Measure. In this example it’s temperature and UoM is Celcius
Then we need to define the routing condition to handle this message. In this example, I’ve just used a tag in the incoming SOAP as the condition.
Next thing is to setup the PHP server code to accept the data from Arduino and post the data to IFS Soap gateway. Here I’ve used the simplest possible solution to try this out.
Logic here is pretty straight forward. If you know the XML request sample, you can define the structure very easily.
Next step is to setup the Arduino to send the temperature readings. I’ve used the same code as in previous WiFi example here as well.
Here’s data received at the IFS backend for 12 hours of readings. This demonstration was done on App 8 and in the new version of IFS Applications you can visualize the data using Lobby dashboards in pretty handy way.
So far this works like a charm and I could get the sensor reading in IFS database without any additional steps. IFS provides interfaces from reading/receiving data to create work order/ fault report so we can fully automate the Service Management industry needs and many other fields.
In the real life, this can be used in many different scenarios including self-monitoring objects to intelligent devices that can autonomously report a fault to IFS based on its measurements.