Social Devices Client for Arduino
Kelloniemi, Jani Akseli
Permanent address of the item is
In the last few decades we have been witnessing great technology advancements regarding smart devices. At the same time we have accepted few social web services, such as Facebook or Twitter, to become a part of our everyday lives. Social Devices takes a step further regarding social services and proposes a new approach where people and devices would form together a new socio-digital system. In this system devices could participate proactively in social situations by enriching them somehow. According to the concept, the devices could, for instance, participate in a conversation or enable certain services that would encourage socialising. This thesis' research question is to find out if a modest embedded system, such as Arduino, is capable of functioning as a Social Device. For a device to function as a part Social Devices, it needs to have a client software that is tried to be implemented in this thesis. In addition, the Social Devices concept is introduced in the literature review part. In the literature review part we discussed about requirements and characteristics of Social Devices. Additionally, we presented two implementations, the Social Devices Platform and OrchestratorJS, and introduced their architecture and components. Furthermore, relating communication protocols and the target platform were presented. In the implementation part, we designed a client software that is compatible with the two implementations of the Social Devices. Additionally, general design paradigms and matters that influenced the design were introduced. Furthermore, the architecture and the components that the client consists of were presented as well. Finally, an example of Social Devices application that demonstrates the client was shown. We concluded that the implemented client functions as a proof of concept for Social Devices. The client fulfils the requirements as it is capable of registering itself to the server and communicating with it. In addition, the client is able to update its state values and informing RSSI values of nearby devices to the server. However, we acknowledged that there are specific circumstances where the client can not respond reliably. Performance-wise we stated that the client is fast enough for certain applications but can not meet the requirements of an application that needs real-time responsiveness.