Jashan Bhoora | blog

Posted: 30/04/2016

Last weekend was NASA's International Space Apps Challenge - a global hackathon hosted by NASA, that poses a range of challenges affecting the world today and gives teams 48-72 hours to solve them. These teams are by no means just engineers. Scientists, designers, writers and all those with a drive to solve problems are welcome to participate.

York has been a Space Apps Centre for the past 3 years. Participants are welcomed to the Computer Science Department to work in their teams for the duration of the competition. At the end of the competition, entries are judged by a local panel, and the winners of the local round are put forward for global judging by NASA. I hadn't participated in Space Apps before this year - or any hackathon at all for that matter - so this was going to be a first on multiple fronts. My team made the trip up from Cambridge to arrive at York in time for the start at 9:00.

Each year, there is a large variety of challenges to choose from, spanning multiple disciplines, from app design to fashion design. The challenge my team chose to do was called AirCheck. To summarise, the problem set out by AirCheck is to create a platform to collect air pollution data, and a service that allows users to input their air/breathing related health problems. The platform must then use this data to output something useful to the user, such as plotting symptom frequency and intensity on a map, or showing pollution hotspots.

Our solution to the problem is called airLert, and is twofold. Firstly, we realised that the biggest hinderance in plotting such data on a map is that realtime, robust data for these variables doesn't exist. Our first step was to design a sensing platform that can take these important readings and upload them to the cloud. For the hackathon, we decided that the pollutants we wanted to focus on for our demonstration were carbon monoxide, methane, general particulate concentration, temperature, and humidity. We were able to find cheap sensors for these that could potentially be used to create a low cost sensing platform on a large scale. All these sensors were to be connected to a Raspberry Pi 3, which has built-in WiFi(!), and for our demo would be able to push data to the cloud in realtime. (Note that only the research and purchasing was done prior to the hackathon. Implementation is to be done solely during the live event!)

The key to getting this data was where we put the sensors.We reasoned that in order to achieve what the brief was asking, we needed to sense over as large an area as possible, and as often as possible. Yet, the sensing cannot be too expensive, otherwise it would not be viable to implement.We decided that we would combine the sensing system with a GPS module, and mount it onto hybrid buses(and potentially other forms of route - based public transport). This would provide us with a robust dataset over areas frequented by buses, which could be used to identify trends and anomalies over time, and maybe forecast future trends.

The second part of our solution was the software.We created a webapp called in which users can sign up, and inform us of their health concerns. The service would then be able to display collected data pertaining to your locality, send you customised air alerts(or "airLerts") when the level of a pollutant you are sensitive to is particularly high on e.g. you commute, and suggest an alternative route that avoids the pollution. The app will also allow users to input their current symptoms, if they are feeling anything unusual.

In practice, not everything described was fully implemented, since there just isn 't enough time in a hackathon. By the end of it however, we had a working sensor platform that could push relative air readings to the cloud with GPS coordinates in near real-time. We were even able to take the sensors for a drive, and get some real data plotted on the map in our webapp (pictures below). In addition, our webapp was quite usuable, updating periodically with the latest sensor readings, and providing some dynamic journey planning functionality.

Our presentation to the local judges went very well, and we managed to win 2nd place in the local round, meaning we were through to the global judging round! (Also check out 1st place and 3rd place!)

At the time of writing, global judging is still in progress.The global round is judged based on short video each qualifying team submits, which you can see below.We are looking forward to the results!

The nature of the Challenge is that everything is free and open.You can find all of our code on Github, if you'd like to take a look!