Suggestions for Data Collection and Methodology for Results for Vibration Sensor Nodes project

Thread Starter

jpravin13

Joined Jul 27, 2024
3
As part of my final year project in university, I've constructed Vibration Sensor Nodes using ESP32, MPU6050 and SX1278 LoRa for JSON transmission of RMS values in a time-series manner.

I have 3 sensor nodes (ESP32 + MPU6050 + SX1278) and 1 sink node (ESP32 + SX1278) that receives JSON strings from sensor nodes and sends them to a Docker container via MQTT (Mosquitto -> Node-RED -> InfluxDB -> Grafana). I am quite lost on how I should prove the validity of my results as I am not able to test the prototype on industrial machines and I am on a tight deadline as well.

Does anyone have any suggestions on the best way to perform data collection and comparison and also how I could improve upon this existing project? I'd really appreciate any sort of feedback. Thank you in advance.
 

KeithWalker

Joined Jul 10, 2017
3,603
I have a lot of experience with analyzing vibration data from accelerometers, but I am not familiar with any of the hardware you are using. Can you give me an executive overview of what you are trying to measure, a generic description of the hardware you are using and what you want to do with the results? If so, I may be able to offer some suggestions that could be helpful.
 

Thread Starter

jpravin13

Joined Jul 27, 2024
3
I have a lot of experience with analyzing vibration data from accelerometers, but I am not familiar with any of the hardware you are using. Can you give me an executive overview of what you are trying to measure, a generic description of the hardware you are using and what you want to do with the results? If so, I may be able to offer some suggestions that could be helpful.
Thank you for replying, Keith.

For context, the ESP32 is a microcontroller that takes input from the MPU-6050 accelerometer (which measures acceleration in x, y and z axis). The ESP32 would then compute the RMS value of vibration and transmit it via the SX1278 LoRa transceiver module.

From your experience, is RMS values sufficient for vibration measurement? Are there other units of measurement used in the industry instead?

The end goal of the project is to contribute to preventive maintenance of industrial machines, whereby the sensor nodes collect data 24/7 and alerts the maintenance department in case of anomalies in the data.

Thank you in advance, Keith.
 

KeithWalker

Joined Jul 10, 2017
3,603
A single axis accelerometer placed in the right orientation is usually enough to gather meaningful vibration data from a machine. Overall amplitude is an important part of the available data. It can detect things like worn bearings and rotating shafts out of balance, but there is much more useful diagnostic information in the amplitude of the different frequencies contained in the data. That can be used to pinpoint problems in complex machines like worn or chipped gears, worn drive belts, inner and outer ball race problems, etc. An ESP32 is capable of performing fast Fourier transforms on the low frequency data you are collecting.
I suggest that you and read the HP Application note 243-1, Effective machinery measurements using dynamic signal analyzers:
CH00-1V.PM5 (units.it)
 
Last edited:

Jon Chandler

Joined Jun 12, 2008
1,560
Acceleration RMS measurements emphasize high frequency noise, such as caused by deteriorated roller bearings. High frequency noise will mask important mechanical defects such as imbalance (1× rotation), misalignment (1× axial, 2× radial), and vane/impeller tones (5× – 12x).

If the acceleration is integrated to velocity (essentially a 6dB/octave low pass filter), the high frequency noise of bearing deterioration is placed on a more equal footing with lower frequency tones of imbalance/misalignment, etc.

An RMS level can warn of mechanical deterioration, but won't indicate the nature of the deterioration. Spectral analysis is (generally) needed to do this.
 

nsaspook

Joined Aug 27, 2009
16,250
Vibration Sensor Nodes project

Prototype design.
https://forum.allaboutcircuits.com/...nd-sensor-node-for-canbus.189388/post-1765812

I'm doing FFT signature detection from the vibration data on the PIC32 controller board.

https://forum.allaboutcircuits.com/...nd-sensor-node-for-canbus.189388/post-1802267

As has been said, you need really FFT analysis and RMS level detection.
1723396439499.png
It hard to tell what is a trigger event (blue) from background (yellow) just by looking at total signal acceleration amplitudes.
Blue is the 'hit' trigger signal with a high fft 'signature hit' match.
1723401386888.png
 
Last edited:

Jon Chandler

Joined Jun 12, 2008
1,560
As a long-time machinery vibration analyst, if you're going to look at spectral data, integrating acceleration to velocity is your best bet.

Moreover, display spectral data in dB (log scale). That high level at vane or impeller rate may be normal, but in a linear display, a significantly increasing but level level won't be noticeable. For example, vane rate may mask the lower level at rotation rate that's suddenly increased 4x, indicating a balance problem that requires investigation even though the absolute level isn't that high.
 
Last edited:

nsaspook

Joined Aug 27, 2009
16,250
Upgrading a variant of my WFI32 vibration sensor with a new wireless module. The original PCB used at WFI32E01PC. Now there is a new model WFI32E3PC that basically the same module (same footprint and pins) with more memory and a better PIC32 controller.
1723932594208.png
https://www.microchip.com/en-us/product/wfi32e03pc#document-table
1723932620173.png
https://ww1.microchip.com/downloads...0A-WFI32-IoT-Board-Users-Guide-DS50003262.pdf

The new spin will use the same SCL3300 as the sensor. https://www.farnell.com/datasheets/3812754.pdf
Using a DEV board with the new module to add some functionality (software and hardware) to the device.
1723932701851.png
It uses the Wi-Fi module to connect to a MQTT server with JSON formatted data. Using Grafana as the visualization system. Sample rate and number of samples in the JSON data stream.

1723932769503.png
accelerations.
1723933029931.png
Tilt angle.
Full sensor rotations.
1723932915515.png
A few soft taps near the DEV board to test the sensor resolution, noise and sensitivity.
 

nsaspook

Joined Aug 27, 2009
16,250
1724177153956.png
FFT upload timing yellow. Processing time blue.
1724176347343.png
Added a FFT routine and a set of conversion routines to reduce that float sensor data to 8-bit signed numbers and unsigned 8-bit frequency bins. That data is uploaded via MQTT JSON formatted data to the Grafana 'heatmap' visualization plugin.

Various vibration frequency maps (shaking by hand and pounding the desk). White = higher bin numbers/energy at X frequency.
1724177006038.png
1724177725662.png
 
Last edited:

nsaspook

Joined Aug 27, 2009
16,250
Final step, frequency calibration.
Q84 pic controller NCO generated pulses and the NCO interrupt that's used to toggle several GPIO pins to drive a small speaker (a poor low frequency transducer but it works for frequency bin calibration).
1724984597663.png
The NCO pin is monitored by the frequency counter.
1724984643236.png
40Hz readout on the counter.
1724984794635.png
50, 60, 80, 90 and back down to 40Hz on the FFT bin monitor heatmap. At 40Hz and below the speaker causes a lot of spectrum breakup.
1724984847576.png
Sweeps from 40Hz to 100Hz.
https://github.com/nsaspook/q84_wsled/tree/fft_gen/pic18f47q84-ws2812-.X
https://github.com/nsaspook/q84_wsled/blob/fft_gen/pic18f47q84-ws2812-.X/mcc_generated_files/nco1.c
 
Top