Monitoring Environmental Noise with a Raspberry Pi

Project requirements

When I arrived at Embecosm, on the first day of my work experience, I was offered a real-world project at a local church, which is being used as a nursery for toddlers. There had been noise complaints surrounding the nursery from the nearby residents. I  was given the task of finding a way to keep track of the noise the children made during the day, to see if the complaints were justified.

I was asked to write a program which recorded the noise levels from 8am until 6pm on a Monday to Friday and create a graph displaying the noise levels during those times. I was asked to display the results in an easily accessible fashion.

Design

I visited the nursery to see what I had to work with.  From this I could figure out which computer was most appropriate. In the end I settled for the Raspberry Pi 3 for the following reasons:

  • it was compact;
  • it had several USB ports;
  • it had WiFi connectivity; and
  • it has sufficient compute power for the job in hand.

I considered various ways of communicating data, given that the location was not readily accessible. I considered implementing a web server, but in the end emailing the graph and its corresponding data set each day to a Google Group proved to be the simplest and most flexible solution.  Having sent the data out, we reused the same filename for the following day, to ensure we didn’t fill up the SD card on the Pi.

Implementation

We ordered a low cost omnidirectional USB microphone to use for our initial implementation. I decided to implement the program using Python 3 and researched suitable programs for recording sound, measuring peak amplitude, creating graphs and sending emails.  When I had completed the program I also provided user documentation, to help others develop the project further.  The full code and documentation is freely available under a GNU General Public License v3 at github.com/CDan72/Noise-Monitor.

Future work

The software is complete and the platform installed and sending data.  There are some practical modifications needed for the project long term.  The microphone needs a USB extension cable to get it closer to the likely sources of noise.  Our cheap microphone is not weatherproof, so we need to upgrade it or improve it’s protection.

Work experience

During my week I have experienced the full product development cycle from product requirements through to platform deployment. I’ve leaned how an engineering office works, and what the office environment is like.  I’d like to thank Jonathan Cook of St Thomas Church for acting as my client and giving me an exciting project to work on.

Danny Holland is a year 10 student at Hounsdown School in the New Forest.