How to get stable distance readings from HC-SR04 with Arduino in noisy/outdoor conditions?

Has anyone here used the HC-SR04 ultrasonic sensor with an Arduino and managed to get consistently reliable distance readings outdoors or in difficult environments? I was following a clear tutorial on interfacing the HC-SR04 with Arduino (https://www.theengineeringprojects.com/2017/08/ultrasonic-sensor-arduino-interfacing.html) and it covers wiring and timing, but my readings jump around with wind/temperature changes.
I’ve seen Arduino forum threads recommending filtering/averaging and Raspberry Pi projects that combine multiple sensors or use time-of-flight modules for better accuracy. For people who built robust systems: which practical fixes worked best hardware (shielded cabling, temperature compensation, separate power), software (median/kalman filters, debounce logic), or sensor fusion (combining IR/ToF + ultrasonic)? Short, actionable tips would be great.