{"id":2840,"date":"2018-12-01T21:50:56","date_gmt":"2018-12-01T16:20:56","guid":{"rendered":"http:\/\/navveenbalani.dev\/?p=2840"},"modified":"2019-12-18T21:54:31","modified_gmt":"2019-12-18T16:24:31","slug":"connected-elevator-solution-using-ibm-iot-stack","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/","title":{"rendered":"Connected Elevator Solution using IBM IoT Stack"},"content":{"rendered":"\n<p>This article is part of IoT Architecture Series &#8211; <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/\">https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/<\/a><\/p>\n\n\n\n<p>In the <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ibm-iot-platform\/\">previous article<\/a>, we went through the IBM IoT stack. In this article, we will implement the connected elevator solution.<\/p>\n\n\n\n<h4><a>Hardware and Connectivity<\/a> <\/h4>\n\n\n\n<p>In this section,\nwe would discuss the hardware and connectivity approach for the elevator use\ncase. The elevator manufacturer has already invested in Maximo (IBM Asset\nManagement solution) for managing the physical assets and workflows and now\nwants to start the journey towards a smarter connected solution. We described\nthe set of phases in the second chapter and how can a manufacturer use each of\nthese phases to incrementally implement an IoT\nsolution. We will realize the elevator use case using IBM IoT stack\nthrough the following phases viz. monitoring (which includes asset management),\ncondition maintenance and finally predictive maintenance.&nbsp; <\/p>\n\n\n\n<p>We would not go into the details of each\nphase again but only talk about the\nimplementation steps. The manufacturer as part of a connected design adds\nvarious new sensors to the existing elevator control unit. The elevator\nmanufacturer as a first step leverages\nits existing investment and tries to keep the connectivity and communication\nprotocol between elevator control unit and rest of components same and builds\nup the device connectivity code using the\nWatson IoT Platform Embedded C Device library and converts the non-proprietary\nprotocols to MQTT and deploys it in the elevator control unit.&nbsp; The elevator control unit device is provisioned with secure access as part of\nthe device registration process using Watson IoT Platform dashboard (or Watson\nIoT Platform APIs). <\/p>\n\n\n\n<p>The control unit can be thought of as a gateway that connects to Watson\nIoT Platform and does local processing\nand conversion. It collates the data from various sensors and maintains the\ncommunication and wraps the sensor data into JSON data and sends it over MQTT\nprotocol to Watson IoT Platform.&nbsp; <\/p>\n\n\n\n<h4><a>Software Implementation Overview<\/a><\/h4>\n\n\n\n<p>The following are the high-level steps that needs to be performed in Bluemix<\/p>\n\n\n\n<ol><li>Create Watson IoT Platform\nservice<\/li><li>Register devices and get access\ncredentials<\/li><li>Provision devices (elevator\ncontrol device)<\/li><li>Create storage (database for\nstoring raw data from devices, asset mapping)<\/li><li>Create Node-RED flow&nbsp;&nbsp; (end to end execution flow)<\/li><li>Create Push Notification\nService (mobile notifications)<\/li><li>Create ML model (anomaly and\npredictive maintenance)<\/li><\/ol>\n\n\n\n<p>The above step is just one of the\napproaches to building end-to-end IoT application. Instead of Node-RED flow we\ncould also use IBM Streaming Analytics or Apache Spark service. As mentioned\nearlier, this service does not have seamless integration with Watson IoT\nPlatform.&nbsp; As part of the solution, we\ncan create separate Node-RED flows as it\u2019s easier to maintain and replace the\nflow by Streaming Analytics services for high throughput cases where complex\nrequirements like correlating and working with multiple data sources are required. <\/p>\n\n\n\n<p>Following shows the connected elevator solution using Watson IoT Platform and Bluemix services.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"704\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5-1024x704.jpg\" alt=\"\" class=\"wp-image-2841\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5-1024x704.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5-300x206.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5-768x528.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5.jpg 1724w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The Watson IoT Platform service receives\nthe data from the connected elevator over MQTT protocol.&nbsp; A Node-RED flow is created which receives the connected elevator device data from\nthe corresponding topic. To map the runtime data\nfrom devices to physical asset in Maximo, a database (MongoDB) is used\nto store the mapping. <\/p>\n\n\n\n<p>We create multiple Node-RED flows as shown below;\nthey all listen to events from specified MQTT topic.<\/p>\n\n\n\n<ul><li>A Node-RED flow stores the data\nin MongoDB<\/li><li>A set of Node-RED flows works\non data directly and evaluates the required monitoring and condition-based\nrules.<\/li><li>A Node-RED flow for predictive\nmaintenance which creates the abstract data model and calls the predictive\nanalytics service via the REST API<\/li><li>A\nNode-RED flow for\nanomaly detection. Note this is bidirectional in the implementation diagram\nabove, as the response from anomaly is send to the mobile operator using push\nnotification.<\/li><li>Based on the outcome, the\nrequired action item is executed by the above flows (SMS via the push service\nor invoking a work order in Maximo through REST call).<\/li><\/ul>\n\n\n\n<p>We have not covered the details of building\nthe predictive model as it was already discussed\nas part Microsoft IoT solution.&nbsp; The\napproach of building a machine model, whether using Microsoft or IBM tools or\nopen source options remains the same. You build the model and train the model\niteratively using the raw data from the connected devices, asset metadata and\nhistorical maintenance records. The real challenge in building the model is\nchoosing the right features, cleaning and\naggregating the data, applying algorithms, training the model and continuously\niterating it to reasonably predict the outcome.\n<\/p>\n\n\n\n<p>&nbsp;We\nuse the SPSS Modeler, which provides the\ncapabilities to prepare the data and build models, similar to Azure ML that we\ndiscussed earlier. We use the SPSS Modeler to build predictive models and\ndetect anomaly.<\/p>\n\n\n\n<p>Once the model is developed, it is deployed in Bluemix through the predictive maintenance dashboard and can be accessed through the Node-RED flow through the HTTP\/REST API connector node. This completes the connected elevator implementation using IBM Watson IoT Platform and Bluemix.<\/p>\n\n\n\n<p>In the next article, we would implement the IoT Solution using Amazon AWS Stack <\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is part of IoT Architecture Series &#8211; https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/ In the previous article, we went through the IBM IoT stack. In this article, we will implement the connected elevator solution. Hardware and Connectivity In this section, we would discuss the hardware and connectivity approach for the elevator use case. The elevator manufacturer has already [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2841,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,156],"tags":[287],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Connected Elevator Solution using IBM IoT Stack - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"Connected Elevator Solution using IBM IoT Stack - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connected Elevator Solution using IBM IoT Stack - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"Connected Elevator Solution using IBM IoT Stack - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T16:20:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-18T16:24:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1724\" \/>\n\t<meta property=\"og:image:height\" content=\"1186\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"4 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/navveenbalani.dev\/#website\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Current and Future Technology Trends by Navveen Balani\",\"description\":\"Current and Future Technology Trends by Navveen Balani\",\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/navveenbalani.dev\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/ibm-iot-solution5.jpg\",\"width\":1724,\"height\":1186},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\",\"name\":\"Connected Elevator Solution using IBM IoT Stack - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#primaryimage\"},\"datePublished\":\"2018-12-01T16:20:56+00:00\",\"dateModified\":\"2019-12-18T16:24:31+00:00\",\"description\":\"Connected Elevator Solution using IBM IoT Stack - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/\",\"name\":\"Connected Elevator Solution using IBM IoT Stack\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"Connected Elevator Solution using IBM IoT Stack\",\"datePublished\":\"2018-12-01T16:20:56+00:00\",\"dateModified\":\"2019-12-18T16:24:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-ibm-iot-stack\/#primaryimage\"},\"keywords\":\"iot-guide\",\"articleSection\":\"Articles,IOT\",\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\",\"name\":\"Navveen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/07\/navveen_balani.jpeg\",\"width\":200,\"height\":200,\"caption\":\"Navveen\"},\"logo\":{\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\"},\"sameAs\":[\"http:\/\/naveenbalani.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2840"}],"collection":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/comments?post=2840"}],"version-history":[{"count":1,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2840\/revisions"}],"predecessor-version":[{"id":2842,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2840\/revisions\/2842"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media\/2841"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2840"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=2840"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=2840"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}