1 Introduction

The Ubiquitous Computing term was coined by Mark Weiser in 1991 [25]. From that moment on, many problems and opportunities have arisen from that vision of a world rich in information and interaction. Ambient intelligence environments (also called smart environments) are one of the fields where Ubiquitous Computing can be naturally applied. We can define an active environment as a space limited by physical barriers, which is capable to sense and interact with its inhabitants.

These environments range from smart rooms to smart cities [3] and are equipped with different technologies. In the recent years, the society has experience an immersion on these technologies, under the umbrella term of Internet Of the Things (IoT) [13]. The arise of IoT came together with the corresponding use of massive data and analysis for different purposes, such as health [14], education [11], urban design [22] or business [10].

In parallel to the emerge of IoT, data–driven business models [7] arose as a result of the increasing number of data sources, such as social networks or mobile and wearable devices. New services, and their success, relies on deep data analysis of consumers’ preferences and habits. Many of the most popular online commerce portals record user interaction, ask the user directly and rely on users’ comments and valuations to improve their marketing campaigns, product recommendations and cross selling [9].

These examples suggest a direct relation and trend on distributed sensoring and customised services (for example, in health or business opportunities). The more information and more accurate data we have from the users, the more customised services and products we can offer to them.

In this paper we present an example of IoT device to address these different objectives. Particularly, we designed and developed a prototype of an IoT–based shoe cabinet that provides a smart service to help users choose the most appropriate shoes in order to: first, help users in their daily lives basic activities. Second, track users health by means of direct monitoring of their selection and use of different shoes and finally, provide an example of a service for brands to understand and measure users habits, preferences and narrow their targets.

Moreover, these systems, such as smart assistants, are conceived as assistive technologies for people with disabilities in many occasions. For example, dress selection relies on social conventions but, for some collectives, these conventions are not clear and then need support to choose appropriate clothes regarding the occasion. Although it may seem as a trivial task, they are usually trained on them at home but also in education centres, due to the relation of social skills and inclusion. Particularly, this is very important for job training. Being active in the job market and economically independent are key for autonomy [23].

Therefore, there seems to be a fruitful niche in which different collectives may benefit: people with or without disabilities, but also clothing companies, through the study of the data collected. As an example, in this paper we present a smart shoe cabinet that recommend (and register) the most appropriate pair of shoes to the user, regarding different variables.

This paper is organised as follows: in Sect. 2 we review the current state of the art and the related technologies. After that, in Sect. 3 we present the design and development process of the system. Finally, in Sect. 4 we discuss the possibilities that this type of system offer and future implications.

2 Related Work

Do-It-Yourself (DIY) approaches and IoT solutions are becoming popular. Probe of that is the market that arose among these technologies [18]. However, there is still a limited number of studies addressing the challenges and opportunities from different perspectives and for different collectives.

If we focus on smart dress systems, many of the solutions in the market are limited in terms of the technologies involved but also the target population addressed. For example, there are multiple applications for smartphones, such as “I style my self” [1], which allows the user to register her clothes and tag them (colour, occasion, preference). Based on this information, the system provides different outfits to inspire the user. Or “Whatoweather” [2], which provides outfit inspiration based on the weather at the user’s location and current trends. However, it does not take into consideration the available clothes of the user. In contrast, “Stylebook” [4] allows users to register their clothes, but the recommendations are based on previous selections and trends. It also includes a calendar to plan the outfit. Another example was presented in [17]. This system uses advanced computer vision techniques to detect colours and Analytic Hierarchy Process (AHP) to provide intelligent recommendations. Finally, “MyDressRecommender” [19] is a smartphone application that registers user’s clothes and provides recommendations based on them, the weather and the agenda of the user. It was initially designed to help people with cognitive disabilities.

Although the number of smart wardrobes reported in the literature is limited, we can find interesting projects, such as HBar [24], a combination of smart garments and hangers that aim to make the management and maintenance of a smart wardrobe easier. The work provides a great view of the challenges around the topic, such as costs and reliability. These two factors seem to be the most decisive issues to address when developing IoT systems.

Finally, one recent contribution is an assistive technology solution to help people with dementia, presented in [6]. This system helps the user to pick the clothes and guides her to put them on properly. To do that, a special cabinet equipped with different sensors, a Kinect camera and an iPad was designed and developed. Besides, thanks to the use of visual marks, the system can check and help in the dressing process, as it is able to track the user and the clothes.

3 An IoT–Based Smart Shoe Cabinet

Shoe selection is influenced by different factors, such as the weather, the activities that will take place during the day (and the social conventions around it) and personal preferences. In order to facilitate users to make the decision, we designed and developed a prototype of a smart shoe cabinet. Following the idea of the “Ambient Umbrella” [20], that provides visual–light feedback in case of rain, we augmented a regular shoe cabinet by including sensors and actuators, as well as a recommender system. The experience is based on subtle interaction [12] and DIY technologies.

3.1 System Architecture

The system is modular and easily expandable. It is based on a client–server architecture and communication with third party services. A sketch of the architecture is included in Fig. 1. The server is unique in the system, while clients can be a varied number of shoe boxes that are organised in show cabinets.

Fig. 1.
figure 1

System architecture schema.

All the modules communicate over a regular WiFi network, so no extra infrastructure nor wiring is needed, rather than the power cord.

  1. 1.

    Server: it is the main component of the system. It has different modules in order to address the different tasks, including the management tool, the recommendation engine, connection to third party services and communication with the shoe boxes.

  2. 2.

    Shoe cabinet: understood as a piece of furniture to store shoes. It is composed of one or more shoe boxes. This logic level in the architecture allows the server to arrange the shoe boxes for different users or locations.

  3. 3.

    Shoe box: it is the unit of the system, either from the logic point of view and also from the physical. Each box is autonomous, this is, contains all the hardware to sensor the user interaction, provide the feedback and communicate with the server.

  4. 4.

    Third party services: the weather forecast and calendar events are outsourced to popular external services.

3.2 Hardware Components

One of the main problems related to the acceptance of new technologies is the price. In order to address this possible limitation, we opted to use open and low cost components, such as Arduino and Raspberry Pi.

Therefore, we developed the server using a Raspberry Pi Model 3. This small computer has enough computational capabilities to execute all the modules and store the data. Its reduced price, but its varied possibilities and ports, turned it into a popular computer for different purposes. It is widely used in different contexts such as education [15], making [8] and even assistive technologies [5].

On the other hand, shoe boxes are based on commercial systems to storage shoes, augmented with technology. Every one contains the minimal hardware to operate. A picture of the prototype and the different technology pieces added to it can be found in Fig. 2. As can be seen in the Figure, all the hardware and wiring has been hidden as much as possible and installed so shoe boxes can be piled.

Fig. 2.
figure 2

Front and back view of the augmented shoe box.

  • NFC reader: shoes are identified by a NFC tag stuck on them. These stickers are cheap, can be stuck inside the shoe, under the insole without disturbing the user and allows the system to identify which shoe ID is stored in the box. This way, users can put any pair of shoes on any empty box, without registering additional information or keeping an order. The NFC reader is hidden on the bottom part of the box, so there is no risk of breaking it when putting the shoes inside.

  • Distance sensor: a distance sensor installed on the top of the box allows the system to detect user interacting with the box. This is, when the user is getting a pair of shoes or putting them inside, and trigger the recommender system if necessary.

  • RGB LED–strip: the recommendation is provided by means of a subtle and straightforward notification system, based on light colours. Red is to notify the user that the shoes she is taking are not recommended. Yellow, when the pair of shoes are not the best according to the context and green to notify her about the most appropriate ones. To provide these different notification colours, and RGB LED–strip is installed on the top of the box.

  • Switch sensor: one of the boxes of the cabinet is equipped with an additional sensor (switch type) to detect user intention of interaction. It can be a light sensor or a magnetic switch that detects when the door of the wardrobe is opened. It is used as the trigger of the system.

  • Microcontroller: every shoe box is autonomous thanks to the microcontroller with network capabilities installed on each one. It is in charge of all the tasks related to the box, this is, detecting using interaction and informing the server, turn on and off the LED strip according to the server’s instructions and reading the shoes ID through the NFC reader and tag.

3.3 Data Model

In order to provide a functional and extendable example of system, both users and shoes were modelled in the system as related entities. Moreover, data registries, past recommendations and user actions are also modelled and stored in the database, so future analysis may be possible, in order to extract user preferences and patterns of usage.

The most important feature of users is the location. With that information the system can query weather services to provide an accurate recommendation. Besides, users configuration is also stored. Apart from user name and password, the system stores a “proactivity” flag for each user. This is, if the flag is active, the system will show the recommendation as soon as the user triggers the system (for example, by opening the door of the wardrobe where the shoe boxes are stored). In contrast, if the flag is not active, the system will wait for the user to interact (put the hand into one of the boxes to take a pair of shoes) to provide the feedback with the recommendation.

Shoes are modelled including the features that the recommender system needs to make the suggestion: the appropriate weather conditions to wear the shoes such as temperature (a range) and the weather (rainy/snowy/sunny, etc.) and the type of events in which the shoes can be worn, such as sports, formal events, work, etc. In this case, this attribute is a 3–tuplet, as there can be stored up to three different type of events (a list of priorities) for which the shoes are appropriate. Besides, the shoes’ model also include a short description (for example, to provide the brand and the model or the colour), the NFC ID saved on the sticker and the availability.

To make the management task easier, a web–based interface is provided to users. Through this tool, they can add, remove or edit the shoes registered in the system, as well as analyse the system’s logs.

3.4 Recommender System

The recommender system provides feedback to the user regarding the most appropriate pair of shoes for the day, considering the weather and the events on the user’s agenda. Besides, every recommendation include, when possible, two pairs of shoes that fit the requirements, so we provide an extra variable to take part in the recommendation: user’s preferences.

The engine is based on a decision tree and penalties. In this scenario, only shoes with active available flags are computed, and they are assigned a starting value of 0. After that, and according to the criteria, they receive different penalties. Once the criteria is applied, the shoes are sorted and the ones with lower values are selected. This schema is extracted and adapted from [19].

The first characteristic to evaluate is the event tag. With this computation we evaluate to what extend does the shoes fit the social conventions for the event, if the user has any on the day’s agenda. The following penalties are applied in this case:

  • +0 if the type of the agenda event matches the 1st on the shoe’s events list.

  • +4 if the type of the agenda event matches the 2nd on the shoe’s events list.

  • +10 if the type of the agenda event matches the 3rd on the shoe’s events list.

  • +25 if the type of the agenda event is not listed on the shoe’s events list.

The second characteristic included in the computation is the temperature. In this case, the penalty depends on the difference between the suitable temperature range for the shoe and the expected temperature during the day:

  • +0 if the temperature is in the range of the shoes.

  • +5 if the temperature is in the range of the shoes ±1 °C.

  • +7 if the temperature is in the range of the shoes ±2 °C.

  • +11 if the temperature is in the range of the shoes ±3 °C.

  • +25 if the temperature is in the range of the shoes ±4 °C.

The third criteria is the weather. In this case we try to penalty wrong decisions, such as wearing summer shoes in a snowy day. Therefore, the scoring system is:

  • +0 if the weather is the weather of the shoes.

  • +2 if the weather is “rainy” and the shoes are for “snowy” weather.

  • +2 if the weather is “snowy” and the shoes are for “rainy” weather.

  • +4 in other case.

4 Challenges and Opportunities

As mentioned before, DIY technologies are opening a market to new customers and services. Besides, they usually offer customisation options, as users are the end point of the fabrication process. This may arise interest on users who need some adaptation or customisation, but they can not afford ad–hoc developments.

In this sense, a system like the smart shoe cabinet presented in this paper would help people with special needs, by providing them cues to dress appropriately for the weather and the social conventions related to their events. This additional level of independence may impact on their daily lives and contribute to self–realisation, as it is usually trained in the family and labour training centres. This distributed assistance, in combination with registries and analysis may increase the autonomy of the user to levels that were difficult to reach previously, due to the need of continuous supervision of the caregiver.

On the other hand, this system can also impact on the health of the user. It is widely known and reported the need of wearing the appropriate shoes and change them often. Wearing the same shoes every day may produce inflammation, injuries, feet pain, shoe deformation and shoe–life decrease. Therefore, a proactive system that include historical usage on their recommendations may lead to a healthier use of the shoes.

Finally, accurate user profiling and usage patterns discovery are two of the most important topics in marketing nowadays. Therefore, a sensor that would provide precise user preferences and habits may be also interesting for companies in order to target an specific population and run market studies.

Regarding the challenges, one of the most important issues that may arise is the privacy of the user. As long as technologies evolve, users are more aware of their privacy and, thus, Governments try to protect them with new laws and standards. In this sense, data has to be anonymised from the core of the system and shared information should be restricted. Moreover, users rights to read, edit or erase their information have to be granted. However, this collecting data on shoe preferences and usage is not a new issue. Mobile apps such as Nike+  [16] or Runtastic [21] already offer the option to record this information and they use it also as an input for rewards.

5 Conclusions and Future Work

In this paper we have presented the opportunities that IoT developments present to the e–Society, by means of an example of a smart shoe cabinet system. These approaches, based on open and reduced price technologies, as well as being conceived as Do-It-Yourself projects, illustrate the opportunities that may arise to help, know and improve people lives. Additionally, the collection of massive data may produce a valuable source of information for brands to study and know users’ preferences and habits, opening another window to provide personalised market strategies (marketing, offers, etc.).

However, the paper only include the conception and development of a first prototype. For further iterations, a participatory design process and evaluation will take place, addressing the open questions that arose in this work.