I would like to have a summary here and talk about what I have learned during this project. Before that I would like to say that I really appreciate this opportunity that is given to me by element14 and Kemet. I enjoyed and learned a lot. Thanks again. And also I would like to thank anybody who read my blogs and watch my videos with my terrible English.
What I learned
FFT is very important in vibration analysis
I enjoyed a lot playing with data. Calculating FFT of the measured signals and study the signals. This was the first time I was using FFT for some real world project that is really working. It is not the best but as the prototype, I am really happy. FFT seems to be very important on working with vibration and vibration sensor. I watched quite a lot of videos about Vibration Diagnostics. I found this YouTube playlist very informative and amazing about vibration diagnostics.
Vibration Analysis in Buildings
I had a conversion with a friend who has PhD about vibration in buildings and earthquakes. I would like to add some part of that conversion here.
He described when it is needed to analyse a building or structure and study its behavior against earthquake one important parameter is natural frequency of the building, which is usually in range of 0.5 Hz to 2 Hz. This frequency is different from what I needed to measure for this project. 0.5 to 2 Hz is the natural frequency of the complete building. But natural frequency of different part of the building, for example, a single beam is higher, probably in few tens of hertz?
There are different methods to measure the natural frequencies of the structure. They mount few sensors on different location of the building. For example when they are interested on only the 1st natural frequency, they mount one sensor on top of the building. If they are interested in 2nd natural frequency, they mount a second sensor in a distance of a fourth of the length of the building from the top.
In one method they rely on the vibrations that are created by the environment (called ambien vibrations), for example heavy vehicles or even they wait for a natural earthquake and then they measure frequencies, with the same FFT. But they do not need to program it themselves They usually use expensive tools that does all of that.
In other method, they apply a known vibration at the bottom of the building and measure the response of the building from the mounted sensors. To measure natural frequency, "Bump Test" is a common approach, This video is showing what the bump test is: https://youtu.be/FI9w3B1GouE .
What their tool does is to measure the voltage and convert it to physical value. Depending on the sensor it can be position, speed or acceleration and then it does bunch of processing like FFT. For example in the datasheet of this Kemet sensor it specifies the sensitivity of 17 to 32 mVms2 which seems to be a kind of parameter to convert the voltage to acceleration. I did not try to do that because I guess I would have needed a proper calibration method. Since they only specified a range in the datasheet.
Bluetooth Low Energy (BLE)
I learned a lot about BLE. I spent a good amount time to learn about the BLE stack. I did not know it is so complicated and we just use it easily everyday.
What I can do better or more.
The first thing that I would change is gonna be the sensor mount. The current sensor mount is too tall which makes it a bit unstable and easy to vibrate side to side which is causing undesired changes in the measured signal. So a mounting with a larger distance between the legs would make it more stable and also easier to mount the other hardware on top of it. I can think of mounting the Nucleo board and the battery bank on the mount as well. The weight of the battery would help to push the sensor to the ground for a better transfer of vibration to sensor through the carpet.
The second thing would be to measure the noise created by vibration of the floor with microphone and to relate these two measurements together to find a better logic to find annoying vibrations for neighbors. Finding a proper "too much vibration" threshold is not easy. It needs a lot of manual testing.
Third would be to change the FFT calculation on the Nucleo board to calculate on a circular buffer and on arrival each single sampled data. I think this would give a better criteria specifically for very short vibrations in terms of time.
And the last, (for now) to measure the vibrations in different location of the apartment and study and compare them.
Summary
The sensor is very sensitive as you probably read by now in other blogs in this Design Challenge. It can do really good job in any application, involving vibration measurement. I can easily measure the the vibrations that we are creating when we are jumping in the Apartment. Even from distance of few meters. I defined a logic to detect if the vibration is too much or annoying. And in that case a notification sent via BLE and telegram Bot to our smartphone. The prototype worked as shown in previous blog and I am very happy with the results. It took me a lot of work to learn about FFT, STM32 development environment, the Nucleo board and how Bluetooth low energy can be integrated in an embedded system. It was an amazing learning experience. Thanks again for giving me this opportunity.
Related Links
- My Blogs
- About Vibration Diagnostics:
- My GitHub repository including all C codes for the Nucleo board and the python scripts.