Sonic Anemometer
Most of the sensors in a weather station now use miniature electronic components to measure the environment. Light, pressure, temperature and humidity can all be quantified with sensors costing a few cents. The one last remaining element is wind speed and direction. Over the last few centuries, the rotating cup anemometer has reigned supreme. Three or four cups spin in the breeze to give an indication of air speed, granted there have been improvements in detecting the spin speed but the basic principal remains the same.
Wind speed may also be measured by detecting the change in the speed of sound caused by the air flow. The earliest attempt I found of applying this method comes from this article in Electronics, 1950. There are now appearing on the market, at a cost of hundreds or thousands of dollars, ultrasonic anemometers that measure wind using similar principles. The challenge of this Instructable was to make a sonic anemometer using hobbyist components costing only a few dollars.
There have been many questions relating to the operation of this anemometer. As such, the expired patent which describes the theory is listed below.
Supplies
The main components needed to make the ultrasonic anemometer are:
4 transducers removed from HC-SR04 ultrasonic range finders
3 CD4046B phase lock loop ICs
1 Piece of strip board
Various resistors and capacitors, see circuit diagram
1 2N2222 transistor or similar
1 Arduino Uno or similar
Arduino IDE for flashing and monitoring wind
Wood to make anemometer body
Sundries like wire, solder, screws, wood etc.<
Wind Speeds
Proposed Design
The speed of sound increases at higher temperatures which makes the sound waves spread out faster and so there will be fewer waves between the transducers. As this design relies on a fixed number of waves between the transducers, the north receiver is phase locked to the sender. Any change in temperature will alter the sender frequency to keep the wavelength the same.
How Does It Work
A similar situation happens for a westerly wind. The sound waves are compressed on the west side of the transmitter and expand out to the east. With a phase locked north sensor, we can estimate the wind speed from the difference between the east and west sensor phase.
By measuring the change in wavelength or phase at the E and W sensors, we can work out the north and west components of wind velocity. With a little arithmetic, we can then calculate the wind speed and heading.
Construction
A conical lid was added to protect the electronics from the weather and dissuade birds from using it as a perch.
Transducers
Circuit Diagram
Three phase lock loop 4046 ICs are used to set the sender frequency to 40 kHz and measure the received signal from the sensors. One 4046 is used in the phase lock loop and the other two ICs measure the phase from the remaining two receivers. The phase detectors output a string of pulses where the mark space ratio is proportional to the phase shift. These pulses are averaged by the RC filter and the voltage measured by a microcontroller to find the wind speed and direction. The circuit must be powered from a stable regulated power supply because the phase detector output is power supply sensitive.
Downloads
Circuit Board
Setup
Now we need to measure the signal on the receiver transducers and fine tune the frequency for maximum output corresponding to the resonance frequency of the sensors. The reflector plate spacing can also be adjusted for the highest signal, about 10 mm is a good starting point.
Once there is a good signal from all three sensors, the phase lock loop can be reinstated. Check the output from the phase detectors to see if the mark space ratio is symmetrical, if not, the system can be adjusted by altering the reflector spacing or the sensor depth in the fibre board.
As a final operational test, blow some air into the anemometer with a cold hair dryer and make sure the two phase detectors give a change in output voltage.
Calibration
We need 3 sets of readings. The first measurements are the E and W sensor voltages in still air. Next we take the anemometer outside with the N sensor pointing into the wind and take another set of readings. Finally, we turn the anemometer anti-clockwise 90 degrees and take calibration measurements for the east direction.
To a first approximation, we can treat the design as orthogonal where the north wind component is proportional to the difference between the still air and sensor voltages in the wind. The east wind component is proportional to the difference between the two sensor voltages. Scaling factors and voltage offsets can now be calculated from the calibration points.
The final wind speed can be worked out using Pythagorus on the N and E vectors. Wind direction can be estimated using the atan2 function.
These rather tedious voltage measurements and calculations can easily be handled by a small microcontroller such as an Arduino.
Arduino Monitor
Measuring the two output voltages and converting them into wind speed and direction is a convenient job for a microcontroller such as the Arduino. The internal ADC in the Arduino can be used to read the anemometer output although a separate module like the ADS1115 would make a more accurate job of the conversion.
The next step is to remove offset voltages and scale the readings using the calibration points to give the N and W components of wind speed. Finally, the readings are combined using Pythagorus for the wind speed and the arctan2 function for direction. The sketch listed below will use the calibration readings and calculate wind speed and direction from the anemometer output voltages.
When running the sketch, the serial monitor will display the raw ADC output as well as the calculated wind speed and bearing. These raw readings are useful when taking the calibration points.
Finally, the anemometer needs siting in the wind with the N sensor pointing north.
Downloads
Conclusions
I hope you enjoyed looking at this Instructable and may even feel inspired to make your own sonic anemometer 😊