The Internet of things is a set of physical objects that use network support to exchange data. These objects can be sensors, software, boards, and so on. This is an interesting ecosystem where the software can be connected directly to real hardware or devices. The most known boards that can be used for IoT project are Arduino (with its several versions) and Raspberry Pi.
Integrating these devices with cloud platforms is possible to collect and analyze data and create "smart" objects that can be controlled remotely. One way to control such devices is by using smartphones like Android and iOS devices. Boards like Arduino or Raspberry are cheap and everyone can experiment with IoT projects.
Cloud IoT platforms help developers and makers build and test IoT projects fast and easily.
IoT Platforms Analysis
Cloud IoT platforms provides several kind of services that can be very useful in IoT project:
- Cloud data store
- Event logic
- Platforms integration
Cloud data stores enable developers to store data sent from different boards (like Arduino or Raspberry Pi). For example, it is possible to store values read from a sensor. This information can be visualized using graphs or analyzed with other tools.
Event logic is web based programming logic that can be used to trigger some action when an event occurs. Using these kinds of platforms is possible to implement some "business logic" using just a web interface without knowing much about the board we are using for the project. Usually the logic is like "IF-THEN," for example, if an event occur then do this action. An event can be a signal read from a sensor, and the action can be an email or a SMS.
Platform integration is a set of "adapters" that implements specific protocols so that it is possible, without writing a line of code, to mix different internet services to make a chain of actions. For example, using Arduino with Ethernet shield is possible to send an alert via SMS when a value read from a sensor is higher than a threshold level.
IoT Platform Descriptions
Below is a list of IoT Cloud platforms that can be useful to create IoT projects with a brief description:
Temboo: This is a very interesting platform that provides services to integrate Arduino, Raspberry Pi, and other platforms with differnt internet services (like SMS, Email, and so on). This platform uses choreos that are connectors toward external services, so that events in Arduino, like sensor signals, can be transformed in different kind of events. Moreover, it provides some logic like IF-THEN.
Carriots: This is another interesting plaftorm that enables smart devices to store data. It uses the data stream concept to enable devices to send data. This platform has a rule management system so that you can implement custom logic directly on the web. It can moreover send Email, SMS, and Twitter messages
NearBus: This proposes a different approach in contrast to other platforms. Usually the basic concept that stands behind IoT platforms is connecting the device (Arduino, Raspberry Pi, and so on) to the cloud so that these boards can send data. NearBus provides a different way: it maps the device to the cloud so that it gets a part of the cloud itself. It uses an Agent to accomplish this task and it is possible to control this agent directly from the web using a set of API.
Ubidots: This platform supports several kinds of boards and can be used to store data in the cloud. It offers data capture, data visualization with a built-in dashboard, and rules management (or event management). With the built-in dashboard, it is possible to see the graph built on the data sent by the device in real time. It supports several kinds of visualization.
|Plaftorm||Data store||Services integration||Data visualization||SDK API||Event/rule mngt||Free account|
|Temboo||No||Yes (about 2000 choreos)||No||Yes||Yes||Yes|
|Carriots||Yes||Yes(Email, SMS, Twitter)||No||Yes||Yes||Yes|
|Ubidots||Yes||Yes(Email, SMS, Twitter, Webservvice)||Yes||Yes||Yes**||Yes|
*Nearbus offers a different approach so it is quite difficult to categorize it.
**It offers a set of easy-to-use APIs.
The table above summarizes some of aspects of these platforms that I think are important. The aim of this comparison is to provide some high-level information about existing IoT platforms, and I invite you to carefully read all platform features directly on their respective websites before using them.
The are other platforms that can be mentioned here, like Xively or Sensorcloud, that can provide interesting services even if I still haven't had time to use them.
As you can notice, there are several types of platforms with different services. Every platform has its unique aspects, and it's up to developers and makers to choose the right one according to the project needs.
If you find an error please report it to me. Help me increase the list to provide better information.