Sensor Web, Geoprocessing, Security & GeoRM, Geostatistics, Semantics, 3D, Ilwis, Earth Observation

Contextual Button – Measuring User Interactions with a Contextual One-Button-Interface

October 25th, 2017 @ 11:27 by Jan van Zadelhoff
Posted in 52°North, Innovation Challenge, Sensor Web

This year’s 52° North Student Innovation Challenge focused on connecting the Internet of Things with Sensor Web technologies. My entry into the challenge was inspired by the Amazon Dash button, a small internet enabled device that allows Amazon customers to order refills for their consumable goods (e.g. razor blades, detergent, etc.). When it is pressed, it connects to Amazon and places an order for the respective item.
What fascinates me is the idea of replacing the process of deliberately going online with a physical action that is directly integrated in the user’s current context. For example, when the user has just used the last of their detergent, they can directly press the button attached to the washing machine to order a refill. The whole interaction takes place in the context of washing clothes.

For the 52° North Student Innovation Challenge 2017, I proposed the idea of the Contextual Button that adds physical interactions to different contexts. I believe this could provide an unobtrusive way of interaction that effortlessly connects to whatever the user is currently doing. To enable the storage and further usage of the collected data, I furthermore proposed to register the buttons as sensors in a Sensor Observation Service (SOS) and to treat the single button presses as Observations made by these sensors.

In addition to the ability to reach users in a context that is appropriate to whatever interaction one wants to measure, I believe that a dedicated physical interface provides further advantages. The biggest one is that the user does not need to use their own device, as is the case with barcodes that have to be scanned with a smartphone. This allows us to reach users without these kinds of devices and also to provide the user with more privacy, as no personal information can be collected.

Intended use cases are situations in which we want to collect information about a condition that cannot easily be measured by conventional sensors. These conditions could, for example, be something that is a lot easier to detect for a human than it is to measure with a sensor. For example, observing the occurrence of a certain kind of bird. Given a picture or a detailed description, a human can differentiate between two species of birds, while this still poses a challenge for a computer.

A second condition that can only be measured through explicit interactions are people’s feelings. A concrete example, in which the Contextual Buttons could be used, would be to measure people’s perception of security. In this use case, a number of buttons would be placed around the city. People would be asked to press the closest button whenever they are feeling insecure outside. The data collected can be used to identify geographic and temporal hotspots, thus providing the authorities with the exact locations to focus their efforts to provide a more secure environment.

The results of this project consist of two parts: a hardware prototype of a Contextual Button and a small interface that allows one to feed the registered button presses as observations into a Sensor Observation Service.

The Contextual Button is, like the “Dash” Button, a small button that connects to the internet when pressed. The difference is that it is based on readily available hardware components and open software. This allows it to be modified to make requests to any website. In this case, the request is made to the interface to the SOS.

contextual button

Prototype of the Contextual Button

The interface is a small Flask application that provides an API to register new buttons and to post observations. The API communicates with the transactional API of an underlying SOS, transforming the incoming requests to their matching representation in the SensorML and Observations&Measurements standards. The Flask application additionally provides a small frontend, where new buttons can be registered and the collected data can be explored.

One of the biggest challenges was the simplicity of the collected data. The buttons register only occurrences, which, by themselves, provide little information. The only way to gain insights here is to place the occurrences in a bigger context. In the exemplary use case above, this is done by deploying multiple buttons to compare the number of presses at different geographic locations and by additionally considering the temporal context to detect at which times people felt insecure.

A next step in this project could be to further develop the hardware prototype. Currently, it is quite bulky and does not have its own power supply. The next iteration could be built with the smaller ESP-01 module and battery. Furthermore, a different way of transferring data could be considered to reduce the dependence on a stable Wi-Fi connection. A possible candidate for this could be the LoRaWAN protocol.


The code of this project can be found on GitHub and the presentation held at the Geospatial Sensor Webs Conference 2017 can be found here.


No comments yet.

RSS feed for comments on this post.

Leave a comment

Time limit is exhausted. Please reload CAPTCHA.