Cedar Grove's IoT Wind Chimes Pull Down Weather Data to Synthesize Soothing Sounds
Using local wind speed data to change the volume and tempo of the chimes, this IoT project sounds good in both senses.
Cedar Grove Maker Studios has turned an Unexpected Maker FeatherS2 into an indoor wind chime, but one that goes a step beyond playing soothing sounds: it simulates the actual sounds of real chimes, complete with pulling down wind speed data for accuracy.
"We're used to being able to gauge the outdoor wind speed by listening to the chimes on the patio, but miss that ambience when working in the office," Cedar Grove explains of the project. "[This is] an IoT [Internet of Things] version that simulates all the groovy chime sound physics and wind speed responses. This was made possible by the IoT capabilities and the spectacular synthio module in Adafruit CircuitPython."
The CircuitPython in question runs atop an Unexpected Maker FeatherS2 board, with an Espressif ESP32-S2 at its heart. This is connected to an Adafruit MAX98357A three-watt amplifier board via I2S, and from there to a 40mm speaker. It's the code, though, that makes the project special — simulating how real wind chimes would sound given local weather conditions.
"The Cedar Grove CircuitPython Chime class provides synthio note overtones and envelopes developed from a combination of tubular chime algorithms and empirical models," the maker explains. "Three chime voices are included in the class (Voice.Tubular, Voice.Bell, and Voice.Perfect) as well as selectable chime and striker materials. The Scales class contains a library of common wind chime and bell scales in a collection of Scientific Pitch Notation (SPN) lists."
In the latest version of the project, this class is fed data from OpenWeatherMap.org to change its tempo based on prevailing wind speed in the local area — meaning that, just as with the real chimes in the garden, the speed and volume of the chiming is affected by just how fast the wind is blowing.
Cedar Grove has published the source code for the project on GitHub under the permissive MIT license; in addition to I2S devices, it can output audio via a digital-to-analog converter (DAC) or a general-purpose input/output (GPIO) pin with pulse-width modulation (PWM) support.