In the previous posting in this series on making a noise monitor for environmental journalists, I mentioned that my early prototype facilitated discussions about how journalists might make noise measurements, and how noise data could be shared among journalists around the world. Email and conference calls also served to refine the requirements for the monitor.
In this posting I describe the parts that I sourced to create the open source noise monitor, and the rationale for selecting certain parts (Figure 1). The main components of the noise monitor are (links take you to supplier sites and datasheets):
- Arduino Pro Mini 3.3V $9.95 (all USD)
- Breakout for ADMP401 MEMS Microphone $9.95
- OpenLog $24.95
- DeadOn Real Time Clock $19.95
- Power from 5V DC to DC Step Up - 2xAA $10.95
- Electric Imp Breakout $12.95
- Electric Imp $29.95
- Grove OLED Display 128x64 $19.00
The Arduino is currently one of the most popular open source electronics platforms. The large community of Arduino users could potentially benefit from this project, and if they’re inclined to contribute, would be welcome to provide technical refinements to the noise monitor. Moreover, Arduinos can be easily obtained either from many online vendors. Even local brick and mortar stores, such as RadioShack carry Arduinos.
The Arduino I’ve chosen is Sparkfun’s Pro Mini, which is small, and thus works well for a portable battery-operated monitor. I also chose the 3.3V version of their Pro Mini because it interfaces well with the 3.3V sound sensor I’ve chosen. To power the system I chose to use 2 AA batteries (available just about everywhere in the world). The Arduino isn’t perfect though because it is too slow to do much audio signal processing.
Photo: Sparkfun Arduino Pro Mini, 3.3V (Photo credit: Sparkfun.com)
The sound sensor
For simplicity, I chose to use the ADMP 401. Sparkfun sells a breakout board that makes it easy to integrate the ADMP into an Arduino project. The ADMP is powered by 3.3V and produces an analog signal that can be read by one of the Arduino’s analog pins.
No sensor is perfect. In fact the ADMP401 is quite limited in its ability. Looking at the spec sheet, the frequency response falls off considerably for sounds lower than 100 Hz. There’s also some, but not as much fall off at the high end for sounds higher than 15 kHz. Thus, this particular sensor will have problems detecting really low or high frequency noise.
There are probably better microphones and sound processing circuits. This is an aspect of the project that others can definitely contribute to improve on this initial design.
Photo: ADMP 401 Mems Microphone Breakout Board (Photo credit: Jaycon Systems LLC)
Saving the data locally
It would be a good idea for the noise monitor to be able to store data locally to a memory card. This would allow journalists to deploy the monitor overnight in a location, pick up the monitor the next day, and download the data from the memory card to observe how noise levels changed throughout the day. Although I discussed with EJN that it would be nice if the data could be streamed to the “cloud” from the Internet, we also appreciated that some journalists might be working in remote areas, where the monitor might not have access to the Internet. For this reason, I equipped the monitor with an OpenLog SD memory logger. This logger simply logs serial data sent by the Arduino into files on a micro SD card. I also attached the DeadOn RTC from Sparkfun to the prototype so that each measurement could be date and time stamped.
Displaying the data
To display noise measurements, I attached a digital display, the Grove 128x64 segment OLED. The display has an easy to use I2C interface, which the Arduino can send data to, separate from the serial interface. That way I can send simple data logging messages to the serial interface for data logging, while sending more detailed messages to the display.
Numerous Internet interfaces exist for Arduino platforms. I could have gone with a Bluetooth modem to connect the noise monitor to a mobile phone (but I didn’t want to rely on a separate phone), a dedicated GPRS modem, or wired or wireless Internet. In the end, I chose to use the Electric Imp to provide the monitor with WiFi connectivity. The Electric Imp is an extremely powerful platform for the Internet of Things.
It offers a lot of interesting future possibilities to add more features to the noise monitor, particularly because of the ability to push new code to remote Imps over the Internet. I chose it mainly for its simplicity though. Its WiFi settings can be specified using a free smartphone app (without any programming whatsoever) which makes it easy to connect the noise monitor to the Internet “in the field”. The other reason I chose the Electric Imp is because increasingly Internet sensor cloud services are supporting this platform, and code libraries already exist to send data from the Imp to services, such as Xively. The other nice thing about the Electric Imp is that it is completely optional. If a journalist doesn’t have the need for WiFi connectivity, the entire module could be unplugged from the monitor, which would save cost and battery life.
If you bothered to tally up the cost of the parts listed above you’d end up with $137.65 USD. This is not bad for a battery-operated, portable, Internet-enabled, data-logging, and real-time data displaying noise monitor. It could be cheaper with parts purchased in larger quantities or educational discounts. However, you might need some miscellaneous wires, switches, headers to hook up these components (most electronics DIY’ers have already have these in their toolboxes though). A plastic enclosure would also be useful. I’m using a Hammond 1591XXCBK case ($6.00), though those with access to a 3D printer could easily design their own custom case for the noise monitor.
I haven’t described the circuitry that connects all these components together yet. That’s in the next blog post, in which I describe the circuit board I created for this project (which is show in Figure 1).
Figure 1. Main Parts for Noise Monitor
Next: Part 3. Prototyping – Schematic for circuit
Related Blog Postings