Over a million developers have joined DZone.

Drag n' Drop Cisco DevIoT Solutions

Wanting to work with IoT but don't know where to start? Check out Cisco's intuitive DevIoT IDE and see if it can help you to design, test, and operate your IoT solutions.

· IoT Zone

Access the survey results 'State of Industrial Internet Application Development' to learn about latest challenges, trends and opportunities with Industrial IoT, brought to you in partnership with GE Digital.

Every so often, enterprise teams begin with a deep dive on a specific business problem and then map the potential of using the right technology to deliver the complete solution. Given the uniqueness of the Internet of Things (IoT), it is impossible to build out the entire solution with a particular vendor. This is because the solutions usually span multiple eco-systems. For example, there may be traditional non-Ethernet sensors, gateways that connect these, Cloud-based backend systems, big data and analytics systems, and finally, tools and other applications that all make up one solution.  

We often hear questions or statements (especially in the case of IoT) such as:

  • Where does one start?
  • What can one leverage?
  • I don’t want my data to leave my campus.
  • Can one start with something now?
  • What can we show quickly?

Businesses and their developers often straddle these kinds of questions while thinking about leveraging IoT.  Another set of questions we often hear include: How does one use Cisco Technology? Or: Cisco and API?

Here at Cisco’s DevNet, we have listened to these questions and tried our best to deliver an easy-to-use (drag-and-drop) Integrated Development Environment (IDE) Platform to help developers kick-start their efforts on IoT with the ability to use various technologies not just limited to Cisco. The IDE itself is pure HTML5/JavaScript and uses Cisco’s own NeXt UI Toolkit. Here's what it looks like:

Image title

Once we had these probing questions, we took a step back and thought: What makes up an IoT Solution? Simply put, it consists of a set of:

  • Inputs (sensors, network, etc.)
  • IoT Infrastructure (connectivity, security, edge computing, cloud, etc.)
  • Actions – where some actions need to be done (store events and data, visualize, actuate, or even sometimes act as inputs to other systems)

Simple IoT App

We have made the life of IoT developers much easier. The developers can start using the IDE without any hardware or even knowledge of any IoT technologies or protocols.

Now, let’s dive a little bit deeper into these options:

  • Inputs. We broke down inputs into "Real" and "Virtual." Real sensors consist of physical hardware (light, temp, IR etc.) which are typically connected to a gateway such as a Raspberry Pi or Arduino (or even Cisco Gateways.) They may have their proprietary protocols but they eventually will communicate over IP via the Gateways. Virtual sensors are sensors that users can define or choose from a catalog—ones that don’t really exist but can be simulated such that they can be used in your application. We have several SDKs that developers can download so that they can bring their Raspberry Pi or Arduino online.Image title
  • IoT Infrastructure. This is where one can access Cisco’s infrastructure components such as Fog Nodes, IoT Cloud, Collaboration tools, Cisco Location services (such as CMX and Meraki), and other Fog services such as Cisco Data-in-Motion (DMO), Cisco Streaming Analytics Engine, etc. Other infrastructure services like Apple Homekit and video analytics have been integrated here and there are many more in the pipeline.Image title
  • DevIoT Rules Engine. Another interesting concept is the DevIoT rules engine. It is the brain behind DevIoT, which can understand and support IoT protocols such as MQTT as well as HTTP. One can write event rules such as: If the value from this sensor is greater than something, then take this action.Rules Engine
  • Actions. Once the data has been processed like above, actions such as visualizations, alerts, messaging, or even sending data to other cloud services such as Cisco Zeus, Amazon Cloud, Azure, etc. need to be done. The IDE allows the developer to very easily drag and drop a connector to instantly see the data in a visualization widget or punt data to a Hadoop store in the cloud.Image title

Once you have built your application using the drag-and-drop canvas (in the logical view), you can also visualize the placement of the various sensors or even see the values from the sensors in real-time in what we call the map view.

Now that we have gone through the DevIoT building blocks, let's walk through a real-life use case. The use-case that we will build out has to do with a building management system. Let's assume that the buildings are set up with various sensors which monitor different environmental sensors such as smoke detectors, carbon monoxide, etc. With DevIoT we will build out a solution which will monitor the carbon monoxide levels on the floor. If the levels go above the threshold, three actions will be taken:

  • send out text messages to the building manager
  • send out a Cisco Spark Message to the Building Response team to take corrective action
  • Change the connected cCeiling light color to "red" to alert employees 


In summary, Cisco DevIoT is a very intuitive and easy to use IDE to design, test, and operate your IoT solution.  You can give it a spin today. Simply point your browser to https://developer.cisco.com/site/devnetlabs/deviot/ and give it a go.

Log in using some of the test accounts or even your GitHub account. Enjoy the ride!

The IoT Zone is brought to you in partnership with GE Digital.  Discover how IoT developers are using Predix to disrupt traditional industrial development models.

iot app development,iot apps,cisco,deviot ide,drag and drop,interface,industrial iot,sensors,iot platform

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}