Plotting Air Quality Egg data using R
I recently got an Air Quality Egg. The Air Quality Egg is a open source hardware project to measure air quality hyper-locally. My egg is located on the balcony of my flat in Brixton, London. The Air Quality Egg device has sensors which read NO2, CO, humidity & temperature and posts the data to Cosm. You can view readings and simple graphs on the Cosm feed page.
Plotting sensor data using R
I wanted to see the trends in the data so I wrote a script in R to curl the data from the Cosm API and plot it using GGPlot.
Here is the script:
Here are some example graphs of NO2 over a single day and several days. (Note I don’t have the latest sensor updates so the readings may be a bit off)
The Internet of Things creates joy and happiness
I’m a member of Brixton Energy, a cooperative in South London that installs solar panels on social housing. The projects are crowd-funded by community members, with some of the profits used to support energy efficiency in the community. We are transparent about what we do and we want our investors to able to see the impact of their investments. One way we are doing this is by sharing how much electricity the panels are generating to anyone who is curious.
Opening up solar generation data
The solar generation data is logged to a website called solar log which came with the solar panel system. I wanted to integrate the data more closely with our website so I hacked together a really nasty script to scrape it from the solar log website and post the generation data to Cosm, the Internet of Things platform. In Cosm you can easily set up automated tweets based on changes to the data. I did just that and created a new twitter account @BES_Generation that tweets when electricity generation for the day exceeds 20, 50, 100, 150, 200 and 250kWh.
It’s a lovely day in Brixton! Brixton Energy Solar 1 has generated 154.723kWh of electricity so far. #solar #brixton
— BES Generation (@BES_Generation) March 14, 2013
An unexpectedly emotional response
I set up the auto tweeting for my own use. First, to make sure that the data was posting successfully to Cosm and second, to get push notifications of how the solar panels were doing without having to visit the solar log website.
I was surprised by how cheerful and happy the tweets made me feel.
It might have been because it was March and winter was finally ending but the combination of sunshine, being involved in a cool environmental project and knowing my investment was doing well was a real buzz!
But then I was even more surprised that other people liked it too:
I love that the solar panels on the housing estate at the end of my street tweet to tell us how much energy they have just generated.
— zenlan (@zenlan) March 17, 2013
The real world causes real emotions
Usually data and websites themselves don’t produce an emotional response.
The Internet of Things seems different. It connects us to the physical world which is full of emotions.
In this case each tweet connected me to a community project that I am really proud to be part of and to the instinctive cheerfulness caused by a sunny day.
Brixton Hill’s not so local by-election candidates
Candidates are currently campaigning for the by-election to Lambeth council in the Brixton Hill ward where I live. Previously, council elections have just passed me by, but this one has caught my attention a lot (perhaps because its January and not much else is going on).
I have been following some of the candidates on twitter and UKIP candidate Elizabeth Eirwen Jones especially stood out. Her policies in support of cars seemed totally out of touch with the area I live in. It was like she was from another planet. After checking Lambeth’s council website which lists the addresses of each candidate it turns out she does live on another planet – planet Clapham.
Not so local candidates
In fact out of the 7 candidates only the two front runners Andrew James Child (Green party) and Martin Tiedemann (Labour) live in the ward. Three of the others live in Clapham and one lives in Vauxhall. But at least they live in Lambeth – one candidate Daniel Lambert (The Socialist Party) lives many miles away in Chislehurst.
Visualising the data
I built a little website to visualise the candidate addresses using the leaflet.js javascript library that runs on top of OpenStreetMap. I got borough and ward overlays from MySociety’s MapIt project. The code is on github.
How to export your data as a CSV from Solar Log
It is always a little bit sad when you have to write a instruction about how to use software. We are using Solar log to monitor our energy generation for Brixton Energy. Its really ace to see how much energy the solar panels are generating (check out our solar log page).
I read in the documentation that it was possible to export the data as a CSV, but it baffled me for half an hour on how to do os. I eventually figured it out and thought I would share how to do it so other can avoid the pain.
Exporting daily figures
- Click the arrow beside Overview daily and select Overview monthly
- Tick the values box on the right hand side of the page
- Click the magnifying glass on the left hand side of the page
- A popup window then appears with a table of values
- On the bottom right of the table is the CSV link
- You can use the arrows to either side of the magnifying glass to get data for the previous months
Note that the CSV is actually semi-colon (;) separated. You will need to use the import option in Excel to open it correctly. On one of the screens in the Excel wizard you can unselect commas as the separator and select semi-colons instead.
My guest blog post for Brixton Energy
I wrote a guest blog post for Brixton Energy about why I am investing in the scheme. Its a really great idea. If you have any money lying around or stuck in a bank please consider putting it to good use by investing in some shares in the scheme.
Read my guest post here and please spread the word to anybody you think might be interested!










leave a comment