The integration between data and devices: the Snap4City solution

Author: Paolo Caressa, February 12, 2019

Originally published on: https://www.codemotion.com/magazine/the-integration-between-data-and-dev...

It is commonly understood that we are living in a “data era”: in the past we had the “commodity era”, when raw materials were the basis of economies and the only goods to be commercialized, next the “energy era”, when industrial productions emerged and energy was the key ingredient for profit, and finally the “information era”, where the new gold is data and the new electricity is technological innovation. In particular, during the last few decades, the amount of produced and available data increased exponentially, and it will continue to increase, mainly due to the growth of interconnections among people, societies, devices, etc.

Cities have always been shaped by these economic and technological changes occurred during human history: from the pre-industrial world, when cities emerged after agriculture was discovered, through the industrial world, when cities enlightened by means of oil, gas and electricity and were connected by cars, buses, trains and airplanes, down to the post-industrial world, when cities produce and consume huge amount of data.

Therefore it is not surprising that cities are the testbed of the new technologies involving data production, elaboration and consumption. But, how does a city produce and consume data? Of course its inhabitants do it, be they aware or not. Indeed data are just produced by people behavior and interaction with devices (and with other people, which is done mainly through devices such as mobile phones).
Therefore cities are inherent to IOT and the fact that half of the people in the World live in a city (or in a suburb somehow) implies that the potential of interaction and communication by means of things through the Internet is unimaginable.

Snap4City, a 100% open source platform, fits into this general and big picture in several different ways, but it is noteworthy here to stress how IOT applications are easily integrated and used through this framework. The concept of a sentient city is very interesting and we have published an in-depth article on this topic. Indeed, Snap4City offers methods and tools to create and manage smart city applications, allowing for high degree of integration of IOT devices and solutions.

https://about.codemotion.com/app/uploads/2019/02/caressa101.png
Img.1: Snap4City dashboard as a “virtual map” to IOT devices in a urban scenario

The main tool which Snap4City provide to manage IOT applications is a GUI wizard acting as a dashboard which enable to define, create and monitor several devices and applications: the dashboard is not just a BI application but a sort of graphical programming system which allows to look for data and devices and to connect them in a very flexible way.

https://about.codemotion.com/app/uploads/2019/02/caressa103.jpg

Img.2: Dashboard wizard

Basically, Snap4City allows to create and manage IOT applications which make use of IOT devices previously registered into the system: the dashboard wizard let the user to create dashboard from scratch starting from a set of dashboard templates, which support the creation of dashboard based both on IOT broker connections and on IOT applications. Within the dashboard widget can be assembled and connected to show data, to let those data to automatically update and to set up alert triggered by events and sent to people or devices. Also metric data may be arranged in a dashboard.

https://about.codemotion.com/app/uploads/2019/02/caressa104.jpg

Img.3: Adding a new widget to a dashboard

IOT devices and sensors may be searched in an integrated archive in the IOT directory of Snap4City, and they are recorded in the knowledge base along their status, the measures and the actuators provided by the device (of course also position in the different city areas is available).

https://about.codemotion.com/app/uploads/2019/02/caressa105.png

Img.4: Locating devices on a dashboard map

Of course new personal devices may be registered and used, and public and personal devices may be managed by each single user in his/her page of the Snap4City web site. Custom device model can be defined as well by each single user, who have to provide all the basic information needed to properly integrate the device : typically, each IOT device is identified by a name, and a couple of keys (K1, K2) allow it to authenticate to the IOT broker (the IOT data collector).

https://about.codemotion.com/app/uploads/2019/02/caressa106.jpg

Img.5: Registering and maintaining devices on a dashboard

It is worth to stress that the connections from IOT devices and dashboards are end-to-end encrypted and secure, and that the data storage is GDPR-compliant.
The next step is to define IOT application through the dashboard: actually those applications are written, or perhaps drawn, in a graphical language where programming structures are connected both to devices and to dashboards, so to be able to perform data analytics, to invoke external services, to execute machine learning algorithms, etc. The logic by which such applications are built is just a sort of flow-diagram which connects blocks, having input and output which may be interconnected to create complex logics and to execute different tasks.

https://about.codemotion.com/app/uploads/2019/02/caressa107.png

Img.6: Developing IOT application via the dashboard GUI

Those block are actual microservices which are provided as black box to be connected among them: the set of such available microservices is quite large and they cover all the main functionalities which may be used inside an IOT application.
For more complex and structured task, more functionalities and tools, are available, addressed to designers and developers.

 Snap4City platform and solutions are available at Snap4city.org website, you can register and start exploring its features. But if you want to really challenge your skills and propose your innovative solutions for connected cities, you can join the upcoming Snap4City Hack, the big online hackathon on the topics of Smart City and IoT.

Snap4City launched a big online Hackathon on Ecological Watch, Social and Service Evolution, Stimulating Business Growth, City Aware

Using Snap4City tools to manage IoT, Big Data, and analytics, the hackathon challenges will cover different themes — Ecological Watch, Social and Service Evolution, Stimulating Business Growth, City Aware — and real data from cities such as Helsinki or Antwerp.

Further information on the Hackathon is available on the on Snap4City.org/hackathon website