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?
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)
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.
- 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.
- 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.
- 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.
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!