Visualising light

Back in January we purchased a LoRaWAN mote from Leeds-based Farnell. The mote is a simple device that consists of a temperature sensor, light sensor, and a radio chip that can talk to LoRaWAN gateways in The Things Network. We set it up in a fixed location in our space at Munro House. It has been running since January 18th aside from some periods where we forgot to replace the batteries or when the gateway went down briefly.

I've been plotting graphs of recent data for a while but I decided to make some more long-term visualisations. The first thing to note is that the mote is slightly erratic at the gap it leaves between samples. So I decided to bin the data into 15 minute bins and take an average. I then plotted these in a two-dimensional grid where the vertical axis shows the time within a specific day and the horizontal axis is used to separate days. January 18th is on the left and today is on the right. The brightness of each bin directly represents the light sensor reading.

Light as measured by our IoT mote.

The first thing to notice is the way the daylight hours are increasing as we head from winter to summer. We should expect that but it becomes pretty obvious. There are some interesting bright spots in March at sunrise and sunset. We aren't entirely sure what these are due to but could be sunlight directly illuminating the mote through specific windows in our space.

I happened to look at this visualisation side-on and it reminded me of another, more famous, image; the cover of Joy Division's Unknown Pleasures album. Joy Division had found the chart in the Cambridge Encyclopedia of Astronomy and it actually shows radio pulses from each rotation of pulsating neutron star PSR B1919+21. The star rotates every 1.3373 seconds and was originally referred to as "little green men 1" when astronomer Jocelyn Bell first found in 1967!

Realising that our IoT sensor was recording the light output of our nearest star (the Sun), I decided to make our own version of a stacked pulse plot. I wrote some code to read in the data file and generate an SVG image. The first problem was missing data. Entirely missing days didn't matter but gaps within a day meant my first attempt had some annoying diagonal lines joining up the gaps. My second attempt looked for gaps of an hour or more and made sure to leave the spaces rather than just join-the-dots. I also had to draw each day from the most recent to the oldest so that the "hills" look as if higher (recent) ones are behind lower (older) ones.

Album cover
"IoT Precision: Known Measures (light)"

The image will update once a day so we'll slowly build up an interesting shape as the year progresses. It is an ever-changing piece of data art.