11.007 Urban Air Quality Sensor Network

September – December 2018

Under Prof. David Hsu and TA Nelson Lee, with the students of 11.007

11.007, Urban and Environmental Technology Implementation Lab, is a class at MIT in which students investigate a real-world environmental issue by developing and deploying sensor technologies. I took the class the fall of my senior year (the first time it was taught!) because while I had experience with engineering projects, I had much less experience working on the urban studies and planning issues that I found interesting and meaningful, and so I wanted to learn more about the application of technology and engineering to urban and environmental issues.

Over the course of the semester, our small class worked together to develop the hardware and software for a low-cost and portable air quality sensor. The sensor was based on an Arduino MKR GSM 1400 microcontroller board, managing a Plantower PMS5003 laser scattering particulate matter sensor and a DHT22 temperature and humidity sensor. Also in the sensor enclosure were a Neo 6M GPS chip, a lithium battery with solar panel, and a small computer fan for air circulation. This sensor package was thus capable of reporting PM1, 2.5, and 10 concentrations, temperature, humidity, and location over GSM networks, and could operate on battery power for one or two days. All components were readily available and low cost.

Much of the first half of the class focused on solving the hardware and software challenges involved in getting the sensors to work reliably, with power and data consumption constraints. A particularly interesting part of the project for me was optimizing the Arduino code for these constraints. By measuring or estimating the power draw of different components, I was able to reduce the total power draw of the system to the level where it would be able to run indefinitely on the small solar panel. Unfortunately, I was never able to fully test this out, as other issues caused the sensors to stop reporting data correctly after a couple of days of deployment, and we did not have enough time in the class to resolve these reliability bugs. To reduce data consumption, I also worked with our TA, Nelson, to implement data reporting via the MQTT protocol – this reduced data usage from 8 kB (on the previous REST protocol) to just 400 bytes per transmission.

After we had a reasonably reliable working design, we then built a class fleet of sensors to deploy across the MIT campus area. The second half of the class focused on using R to analyze and display the data from our sensor fleet, and culminated in a class bike ride in which we gathered data from all around Cambridge. Our final project involved mapping our bike ride data using Shiny and Leaflet in R to create an interactive webapp.

Lab Reports

We submitted three lab reports over the course of the class, and I’m making mine available here in case they are useful as writing samples or for anyone interested in what we learned:

Lab Report 1 details the hardware and software design decisions I made in building the first iteration of my sensor.

Lab Report 2 details using data scripts in R to clean, analyze, and visualize data from different sensors recorded during Thanksgiving break.

Lab Report 3 discusses the interactive Shiny map and the data from our class bike ride.