Introduction: Unsafe Noise Level Meter or Sign
I love looking at peoples' creative projects. Modern tools & technology give us so many creative options. I teach hard materials to secondary school students at a high school in New Zealand so I'm always developing & trialing new things. This year (2020) my school moved into a modern open learning environment building so I was keen to know how the sound levels were, particularly in the technology spaces. Ideally, I would have a LED sign that shows whether it is safe or whether we all need to wear earmuffs.
I buy a lot of cheap electronic items from Aliexpress so first up I bought some sound sensors. Turns out they were digital only, giving only high-low output, i.e. green or red LED lights up. So back to Aliexpress and this time I got the KY-037 digital and analogue sensors.
There's a very good Instructable done by Rice University called "Unsafe Noise Level Alert System". This gave me the ideas to build my own system. You can check out their work here: https://www.instructables.com/id/Unsafe-Noise-Level-Alert-System/ . However, their project was a bit too complicated for me, especially the code. My specific requirements were:
Must be easily visible in the workshop
Must mount on the wall
Must look like earmuffs, i.e. a sign
Must be powered by a mobile phone charger
Must be robust & enclosed so idle fingers cannot do damage
Plywood offcuts approx 10mm thick
Clear pastic from an old lunchbox
Slider on/off switch
KY-037 Arduino compatible sound level sensor https://www.aliexpress.com/item/32820988119.html?s...
RGB LED strip (individually addressable LEDs) https://www.aliexpress.com/item/32682015405.html?s...
Hot glue gun & glue sticks
Paint - primer & top-coat (acrylic)
Printer cable to connect to & power the Arduino
Mobile phone charger
Computer with Arduino installed - need to also download and install FastLED.h to the Arduino Library directory from Github https://github.com/FastLED/FastLED
Step 1: Step 1: Making the Front and Back Plates
The diameter of the front plate is 230mm on mine. The back plate has 3 lugs or tabs so that I can later drill & mount the meter on the wall. Cut the pieces using a scroll saw, then use a real earmuff sitting on the front plate to mark its shape. Next drill a hole to place the scroll saw blade through. Then cut out the earmuff shape & sand the edges smooth.
After this, mark where you want the sensor and switch - for me it was at the bottom right. This takes a bit of fiddling with drill bits & coping saw to get the right shape. I also cut a recess on the rear of the front plate for the pins so that the KY-037 sensor sits flat on the surface. In addition, I countersunk the sensor hole in the front so that sound can be received best from all angles.
Step 2: Step 2: Getting the RGB Strip Going
It's useful to practise lighting up your RGB strip. I used 10 LEDs for the meter so this is what I practised with. You cut your strip at the copper join - it's obvious where. I soldered a small 3 pin header which I had from an Arduino starter kit onto the end. Soldering onto the RGB strip copper contacts is quite fiddly so good luck! Notice the arrows on the RGB strip - you must connect so that your power & data signal follow the arrows. You will see the letters DO & Din meaning Data Out and Data In.
This allowed me to plug the strip into a breadboard along with jumpers to the Arduino. In the code you will see that the data pin of the strip is connected to the number 6 digital pin of the Arduino. I set the number of LEDs to 10. The void loop cycles the LEDs on/off up and down the strip, one colour after the other. Note that i goes from 0 to 9, i.e. a total of 10 lEDs.
I omitted the sensor at this stage (unlike the pic) to keep it simple - give yourself some success!
Once you have done this, next challenge is to calibrate and incorporate the KY-037 sensor. There's a great tutorial done by ElectroPeak on the Arduino website that gives you some simple code that outputs numbers to the serial monitor of the Arduino, allowing you to calibrate with the potentiometer screw on the sensor. Here's the link: https://create.arduino.cc/projecthub/electropeak/h... . I've added this code file to this tutorial as you'll see.
Next, connect the RGB LED strip into the circuit as per the circuit diagram you'll see in the accompanying PDF doc (partial thanks to Tinkercad Circuits for this). After this you can upload the code (KY_037_sound_sensor_LEDS_v2) to your Arduino Uno or other board you may be using (a Nano would work too). Bear in mind that you will need the FastLED folder & files added to your Arduino Library folder that will have installed itself when you installed Arduino onto your computer. The library could be in a filepath such as: C:\Program Files (x86)\Arduino\libraries. Download it from the likes of Github: https://github.com/FastLED/FastLED .
Other things to watch out for are to remember to choose the correct board in the Arduino software under Tools...board and make sure the board is talking to your PC's port by clicking Tools...port.
Other than this, you will need to make adjustments to your potentiometer pot on the KY-037 sensor depending on the mobile phone power supply output you have - the amps output will vary across different chargers thereby changing the response of the RGB strip. Calibrate it to your situation or use a separate decibel meter as I do to guesstimate the colour change threshold. I've simplified the code so it no longer incorporates conversions from voltage output from the sensor into absolute decibel level as in the Rice University project.
Step 3: Step 3: Putting It All Together
I primed the back and front plates before assembly, then painted several top coats. You'll need something clear to mount the LEDs on to plus a barrier in my case to stop young fingers from exploring the inner workings. I used a lunchbox cut up & glued with no-more-nails builder's adhesive. It was too thick to cut with a knife so I used a soldering iron to melt 80% through, then finished off with a knife. Hot glue everything else into place. After switching on the LED strip I noticed that the LEDs were too much of a point source & I wanted a more diffuse effect, so....
Step 4: Step 3+: Putting It All Together Take Two...
I wanted a diffuser in front of the LEDs so something opaque and also available during strict coronavirus lockdown in New Zealand was needed. A piece of photocopier paper is a good start. So as can be seen in the pictures, I unpicked the hot-glued RGB strip, cut & glued the paper into place, then re-glued the RGB strip.
Cardboard is easily available and strong when used over shorter distances, so it was perfect for the circular shape to join the front and back plates. Hot glue does the trick nicely.
Finally, finish painting, plug in and don't forget to wear your PPE!
Participated in the
Arduino Contest 2020