NoxDroid on a ride in the inner city of Copenhagen.
NOxDROID v 0.1
The NOxDROID was presented today to our teachers and fellow students at ITU. The project paper was also handed in and can hopefully be submitted for CHI 2012.
Overall the we are quite content with the outcome, and intend to keep on working on the NOxDROID. It is still in an early alpha version 0.1 with a lot of technical issues to deal with.
First of all we need to look at the recording of data. Currently the locationtracking is using both Skyhook (network and cell towers) and the phoe's own location services (gps, network, cell towers) resuting in redundancy and many identical location readings. Both updateintervals and accuracy need to be tuned to the needs of the application.
A lot can be done to reduce redundancy by tuning parameters but a better dataprocessing and cleaning is also necessary when generating kml data for the map overlay. The amount of kml data that can be rendered by google maps javascript api is limited. Hence we might need to process the data further to fit the web based visualization.
Other challendes of the visualization includes overlay of overlapping data for a given time span. This includes averaging over geospatial clusterings of data. This could possibly be done using the GeoModel of the Google's App Engine to do geospatial queries by proximity or the bounding box model.
NOxDroid in test
The NOxDROID is almost ready. The android app is ready and so is the sensor ingeniously fitted inside a retro bike light along with the IOIO board.

NOxDROID App is alive
Some screenshots from the NOxDROID android app
![]() Main screen |
![]() After pressing the GPS icon |
![]() After pressing the IOIO icon |
![]() After pressing the connectivity icon |
![]() Uploading tracks to the cloud |
![]() Peference screen |
![]() Output from the Logcat |
|
Using the singleton pattern Android
We have three services writing to the SQLite in the NOxDROID android app.
- NOxDroidIOIOThread
- Location tracking
- NOxDroidService
Prototyping the NOxDROID
We held a group meeting trying to brainstorm on the NOxDROID android app and the physical prototype. Stine had a lot of good input and suggested to let the NO2 module be a reference for both the app icon and the gui itself.
The android app

The state of gui thwn neither DATACONNECTIVITY, LOCATION or IOIO are available

When all DATACONNECTIVITY, LOCATION or IOIO available the icons should turn green and the button "Activate NoxDroid" becomes enabled

Overview of the GUI of the differenct states of the gui

Overview of the differenct gui states
The physical prototype
Difference ideas came up for the physical prototype. It had to accomodate a gas sensor, a ioio board and a battery. One idea was to reuse old cans of tomato concentrate.

Different views of the tin can prototype. LED diodes show the current pollution level. The device is attached to the bike's handlebar

A closer look at the tin can prototype.
Dataprocessing
In terms of visualization ideas of the sensor data we want to focus to two aspects. One is the level pollution for the individual NOxDROID user. Each recorded track could be visualized as an overlay on a map. Also multiple tracks could be merged into one representation.
The other focus is the general pollution level for Copenhagenm, where all recorded sensor data should be merged and overlayed on a map. The possibility of choosing specific timespans would be nice.

Dataprocessing and visualization of the raw data
Notes About Air Pollution
About how to estimate air pollution, in NO2, that is unhealthy for humans from measuring NOx.
Estimation of NO2
The estimation of unhealthy NOx gasses must be given as the NOx's NO2 equivalence. The NO2 content in the air along roads is very dependant of how many percent NOx of the cars exhaust is NO2 and furthermore how much O3 (Ozon) there is in the air. The determination of how much NOx is transformed to NO2 is very dependant on how much Ozon that is in the air, and that content is again dependant on other factors such as weather and the NO-content in the air. The way to estimate the O3-content in the air would be to use the measurements made by DMU on a certain location for 13 years ().
Calculation of NO2
What we need now is a formula that can be implemented in our Android/Ardiuno program that knows the time of the year and thereby the estimated O3 content, the approximate distance to the car, the approximate NO2 and NOx content in the exhaust of the cars and the NOx content at the bike and the transformation-factor for NOx to NO2 due to the found O3 content.
Measuring the unhealthiness
To measure how much NO2 should breathe before it is unhealthy the limits given by EU is needed. The limits is that a human must not breathe over 40 my gram pr cubic meter NO2 on average a year, and cannot breathe 200 my gram pr cubic meter NO2 more than 28 hours a year.
The accuracy of the measurements
The accuracy of the measurements can be found by knowing the accuracy on the sensor and by eventually calibrating with with the known and accurate values measured by DMU with station placed at HC Andersens Boulevard and Jagtvej in Copenhagen
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_NOX/NOX_trend_ave.asp
http://www2.dmu.dk/1_Viden/2_Miljoe-tilstand/3_luft/4_Maalinger/5_stationer/copenh.asp
Literature on the subject
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_o3/O3_trend_month.asp
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_o3/O3_generelt.asp -
http://www.dmu.dk/Luft/Stoffer/Graensevaerdier/
http://www.force.dk/da/Menu/Services/Emissioner/Luftforurening/
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/smog.asp
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_NOX/NOX_generelt.asp
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_NOX/NOX_trend_ave.asp
http://www2.dmu.dk/1_Viden/2_miljoe-tilstand/3_luft/4_maalinger/5_niveauer/6_NOX/NOX_trend_ave.asp
http://www2.dmu.dk/1_Viden/2_Miljoe-tilstand/3_luft/4_Maalinger/5_stationer/copenh.asp
NOxDROID on my brain
To get started on the project we did a brainstorm session in lab class. Over several rounds we had to write down ideas and present them for each other. To allow encourage the creative thinking no comments were allowed during the feedback. Only after collecting approximately 50 ideas did we start to categorize, merge and remove.
The result was a mindmap through which which we will hopefully be able to find a viable path to a project.








