As part of the Urban Nature Project we will be building and deploying a large, dense, network of acoustic and environmental sensors based on Raspberry Pi computers connected using power-over-Ethernet. What do we need to consider when deploying a long-term sensor network?
Any network of devices will become heterogeneous given sufficient time. The two primary drivers of this shift to heterogeneity are continuous technological innovation and changes in the purpose and scope of the network over time. In this post the focus will be on the first of these challenges.
“Technology is stuff that doesn’t work yet.”
-Bran Ferren.
Technology is not static. When it comes to sensor networks the rise of smartphones, the Internet of Things, wearable tech and the Quantified Self have led to a huge number of sensors coming onto the market. As with any technology there is a desire for sensors with additional functionality, that respond more quickly, and consume less power. Of course, over time some of the deployed sensors will fail and need replacing. The constant advances of technology mean obsolescence is part of the sensor lifecycle. At some point a like-for-like replacement will not be possible.
Other considerations may require that even the initial deployment of sensors may have a heterogenous nature. When it comes to deploying acoustic capabilities across a network of Raspberry Pi based devices there are several sound devices that can be used, and there is often a strong case for an initially heterogenous deployment. An example of this might be a network node that records into the ultrasound to detect bats and some orthopterans. Ultrasound recordings place a higher computational burden on the node, so will typically be limited to stereo. Other nodes might be near water and capture airborne audio, but also be attached to hydrophones, requiring more channels of audio. At another extreme directional microphone arrays capture multiple (e.g. six) channels of audio to allow source separation. It should come as no surprise that all of these devices require different installation and configuration processes, and are subject to the same obsolescence cycle as any hardware.
The solution to these challenges is an abstraction layer that allows the network nodes to each communicate with their attached sensors, while presenting a standard interface to the network itself.
So how do you protect the abstraction layer from the challenge of technological obsolescence it is meant to protect us from? Use something that is old, stable, proven, and (for most people) not that exciting. The solution to the challenges of fast-tech is slow-tech.
The solutions we are building to provide this abstraction layer are bash scripts. Not trendy. Not exciting. Functional. Stable.