...an urban sensing platform that aims to take advantage of the reach and regularity of public transportation to collect data about a city. Using a off-the-shelf microcontrollers for computation, Bluetooth Low Energy for communication, and machine learning for analysis, we created a modular system that can seamlessly integrate arbitrary sensor functions through hardware peripherals.
An IR depth sensor + accelerometer detect potholes and irregularities in roads
A door-mounted IR sensor measures passenger departure and dispersion at each bus stop
Rooftop particle sensors measure air pollution and the existance of toxic chemicals.
A rooftop sound detector captures the noise levels in different parts of the city.
2.4 GHz Wifi
Every piece of sensor data originates at a sensor and is sent over to the Atmega via the specific protocol for that sensor, ADC for IR and sound, and SPI for the accelerometer. From there, the Atmega sends the data to the Rpi via I2C. The reciever on the Pi caches a local copy in Redis as well as offloading another copy to the server. The server then saves it to our time series InfluxDB. The celery jobs then see new data is available and start to stream process it, saving it in Postgres after completion. Lastly, the map and metrics server queries Postgres to finally display the data in a meaningful way.